CentOS 6.4 e porta SSH alternativa não funcionando

1

Eu tenho uma máquina CentOS 6.4 e gostaria de alterar a porta SSH padrão e seguir estas instruções:

CentOS Wiki

Depois de fazer essas alterações (incluindo a "porta semanage -a-ssh_port_t -p tcp 2345") e reiniciar o SSHD, ainda não consigo me conectar por meio da nova porta alternativa.

Vejo que o host está escutando na nova porta:

# netstat -antp | grep 2345 | grep LISTEN
tcp        0      0 0.0.0.0:2345                0.0.0.0:*                   LISTEN      6998/sshd           
tcp        0      0 :::2345                     :::*                        LISTEN      6998/sshd 

E vejo que a política do SELINUX parece estar correta:

# /usr/sbin/semanage port -l | grep ssh
ssh_port_t                     tcp      2345, 22

E eu vejo os IPTABLES parecem estar corretos também:

# iptables -L -v
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:domain 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:domain 
    0     0 ACCEPT     udp  --  virbr0 any     anywhere             anywhere            udp dpt:bootps 
    0     0 ACCEPT     tcp  --  virbr0 any     anywhere             anywhere            tcp dpt:bootps 
 179K  145M ACCEPT     all  --  any    any     anywhere             anywhere            state RELATED,ESTABLISHED 
  185  7200 ACCEPT     icmp --  any    any     anywhere             anywhere            
    2    99 ACCEPT     all  --  lo     any     anywhere             anywhere            
   39  2028 ACCEPT     tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh 
29763   11M REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
    0     0 ACCEPT     all  --  any    virbr0  anywhere             192.168.122.0/24    state RELATED,ESTABLISHED 
    0     0 ACCEPT     all  --  virbr0 any     192.168.122.0/24     anywhere            
    0     0 ACCEPT     all  --  virbr0 virbr0  anywhere             anywhere            
    0     0 REJECT     all  --  any    virbr0  anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  virbr0 any     anywhere             anywhere            reject-with icmp-port-unreachable 
    0     0 REJECT     all  --  any    any     anywhere             anywhere            reject-with icmp-host-prohibited 

Chain OUTPUT (policy ACCEPT 118K packets, 24M bytes)
 pkts bytes target     prot opt in     out     source               destination         

Por fim, posso fazer telnet na porta localmente:

# telnet localhost 2345
Trying ::1...
Connected to localhost.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3

Mas não é possível fazer telnet ou SSH para a nova porta alternativa de fora.

Não estou atrás de um firewall de qualquer tipo.

Alguma ideia, sugestão? Estou perplexa.

Dan

    
por Dan 19.09.2013 / 23:04

2 respostas

1

Parece que seus iptables não estão configurados para permitir na porta 2345, apenas no 22, que é passado com a regra

tcp  --  any    any     anywhere             anywhere            state NEW tcp dpt:ssh

Você vai querer uma regra que faça o mesmo para a porta 2345, e você pode conseguir isso com

iptables -A INPUT -p tcp --dport 2345 -m conntrack --ctstate NEW -j ACCEPT

e você desejará essa regra exatamente onde estava sua regra SSH antiga. Isso tudo está assumindo que você está usando o iptables simples para configurar seu firewall e não algum wrapper para ele. Se este último caso, você provavelmente desejará usar o programa wrapper para alterar a porta de 22 para 2345.

Para referência futura, se você puder se conectar a uma multa de serviço por meio do host local, mas não de fora, o problema está na sua rede (por exemplo, firewall). O localhost terá um comportamento diferente porque o tráfego passará pelo dispositivo de loopback, que no seu sistema está configurado para aceitar todo o tráfego.

    
por 19.09.2013 / 23:12
0

O que eu fiz no final foi usar o GUI Firewall para abrir a porta 2345, salvar e recarregar o firewall, e agora estou pronto.

Eu vejo que isso fez uma mudança no arquivo / etc / sysconfig / iptables, mas por alguma razão minhas tentativas de linha de comando não funcionaram.

Em suma, o que precisava ser feito era o seguinte:

1) adicione uma porta alternativa ao / etc / ssh / sshd_config:

Port 2345 # the additional SSH port
Port 22 # just in case

2) Instale "semanage" para fazer alterações no SELinux:

# yum -y install policycoreutils-python

3) Adicionar nova porta à política do SELinux:

# semanage port -a -t ssh_port_t -p tcp 2345

4) Reinicie o SSHD:

# service sshd restart

5) Dentro do CentOS Firewall GUI, em "Other Ports" adicione 2345 como TCP (ignore o fato de que ele acha que o serviço é DBM), Apply, Reload

Concluído

    
por 21.09.2013 / 01:48