Executando o SSH na porta diferente (instância RHEL EC2)

1

Então eu fiz isso algumas dezenas de vezes em uma caixa 'normal' (não no EC2) e parece bastante simples. Eu estava tentando rodar o ssh na porta 22 e 80, mas eu não pude, na minha vida, descobrir por que não posso me conectar através da porta 80, mas posso conectar bem usando a porta 22. Então, aqui está o que eu fiz :

  1. Crie uma nova instância (usei uma instância RHEL menor desde que eu estava tentando implementá-la para uma instância RHEL HVM)
  2. SSH na máquina e atualize /etc/ssh/sshd_config e adicione as linhas Port 22 e Port 80
  3. Adicionada uma nova regra ao iptables: iptables -I INPUT 3 -s 0.0.0.0/0 -d 0.0.0.0/0 -p tcp --dport 80 -m state --state New -j ACCEPT then sudo service iptables restart
  4. executar services sshd restart

A reinicialização diz 'OK' e eu consigo conectar usando a porta 22. Mas não consigo me conectar pela porta 80. Então eu instalo o nmap mas não vejo nada em execução na porta 80 (a porta 22 está lá!). Tenho 200% de certeza de que meu grupo de segurança está correto. Eu até tentei em uma nova instância apenas no caso de os grupos de segurança não atualizarem em tempo real.

Algumas coisas que observei:

  1. parar o serviço iptables e ip6tables não tem efeito
  2. se eu remover a porta 22 do sshd_config, não posso mais fazer novas conexões
  3. Se eu fizer as mesmas etapas (menos a regra iptables) em uma AMI do Ubuntu, posso conectar com sucesso!

ATUALIZAÇÃO: Eu ainda não encontrei o problema, mas é provavelmente causado pelo meu ISP (talvez eles estejam bloqueando o tráfego da porta 80 que não é tráfego HTTP). Não é segredo que Singapura está fazendo um monte de filtragem de tráfego, então não é impossível. Eu tentei executar o SSH de uma porta diferente e isso funciona. Além disso, a conexão com o SSH na porta 80 de outra instância do EC2 de uma região diferente funciona. De qualquer maneira, eu marquei a resposta mais votada.

    
por Mel 16.09.2013 / 14:37

4 respostas

2

Você tem a porta 80 definida no grupo de segurança ao qual a instância pertence? Abaixo está um exemplo de como isso pode parecer:

A propósito, eu faço de maneira um pouco diferente. Talvez você ache útil. Eu uso o iptables e o DNAT target para encaminhar o SSH sem tocar na configuração do servidor SSH:

iptables -t nat -A PREROUTING -m tcp -p tcp --dport 80 -j DNAT --to-destination INSTANCE_IP:22

Além disso, você precisa adicionar outra regra para permitir o tráfego para a porta 80.

iptables -A INPUT -m tcp -p tcp --dport 80 -j ACCEPT
    
por 16.09.2013 / 14:58
1

Esta é uma configuração do SELinux no RHEL que não permitirá que você adicione portas como quiser. Usando netstat -ntlp , você verá que sshd não está sendo executado na porta 80, como você pensaria com base em sshd_config . Além disso, uma rápida verificação de seu /var/log/secure mostrará as tentativas fracassadas de vincular a porta 80. O que você precisa fazer primeiro é modificar sua configuração do selinux:

semanage port -m -t ssh_port_t -p tcp 80

Uma verificação rápida:

semanage port -l | grep ssh

confirmará que a porta 80 foi adicionada.

Agora você pode editar seu sshd_config e recarregar sshd .

    
por 10.05.2014 / 12:47
0

Por que rodar o sshd em duas portas? E especialmente as portas 22 e 80. Por favor, considere usar a porta "30000" para "63000" para pelo menos ser ignorada por scanners de porta simples. Mas rodar o SSHd em duas portas ao mesmo tempo não faz sentido (a exceção é se você for conectar de dentro de um firewall corporativo muito restritivo - nesse caso, seu firewall também deve ser mais restritivo) Se você insistir em usar a porta 22 e 80, coloque em / etc / ssh / sshd_config :

Port 22
Port 80

Então:

# service sshd restart
# service iptables restart               (to clean any experiments you did lately)
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT
# iptables -A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
# service iptables save                  (to save your config)

Eu não estou prevendo abrir essas portas para o mundo inteiro, você deve ser mais restritivo como:

# iptables -A INPUT -p tcp -m state --state NEW -m tcp -s 1.2.3.4 --dport 80 -j ACCEPT

Onde 1.2.3.4 é o ip do qual você vai se conectar.

    
por 16.09.2013 / 15:03
0

Parece que a porta 80 não está aberta no seu grupo de segurança

    
por 02.10.2013 / 00:50