1 votes

Exécution de SSH sur un port différent (instance RHEL EC2)

J'ai fait cela quelques dizaines de fois sur une machine "normale" (pas dans EC2) et cela semble assez simple. J'essayais d'exécuter ssh sur les ports 22 et 80, mais je n'arrivais pas à comprendre pourquoi je ne pouvais pas me connecter par le port 80 alors que je pouvais le faire par le port 22. Voici donc ce que j'ai fait :

  1. Créer une nouvelle instance (j'ai utilisé une instance RHEL plus petite car j'essayais de l'implémenter pour une instance RHEL HVM).
  2. Se connecter en SSH à la machine et mettre à jour /etc/ssh/sshd_config et a ajouté les lignes Port 22 y Port 80
  3. Ajout d'une nouvelle règle à l'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 puis sudo service iptables restart
  4. courir services sshd restart

Le redémarrage indique "OK" et je peux me connecter en utilisant le port 22. Mais je ne peux pas me connecter via le port 80. J'installe alors nmap, mais je ne vois rien s'exécuter sur le port 80 (le port 22 est là !). Je suis sûr à 200% que mon groupe de sécurité est correct. J'ai même essayé dans une nouvelle instance au cas où les groupes de sécurité n'auraient pas été mis à jour en temps réel.

J'ai fait quelques observations :

  1. l'arrêt des services iptables et ip6tables n'a aucun effet
  2. si je supprime le port 22 de la configuration sshd, je ne peux plus établir de nouvelles connexions
  3. Si je fais les mêmes étapes (moins la règle iptables) sur une AMI Ubuntu, je peux me connecter avec succès !

UPDATE : Je n'ai toujours pas trouvé le problème, mais il est probablement causé par mon fournisseur d'accès (peut-être bloque-t-il le trafic du port 80 qui n'est pas du trafic HTTP). Ce n'est pas un secret que Singapour fait beaucoup de filtrage de trafic donc ce n'est pas impossible. J'ai essayé d'exécuter SSH à partir d'un port différent et cela fonctionne. De même, la connexion à SSH sur le port 80 à partir d'une autre instance EC2 d'une région différente fonctionne. En tout cas, j'ai marqué la réponse la plus votée.

2voto

dsmsk80 Points 5707

Le port 80 est-il défini dans le groupe de sécurité auquel appartient l'instance ? Voici un exemple de ce à quoi cela peut ressembler :

enter image description here

D'ailleurs, je procède d'une manière un peu différente. Peut-être que cela vous sera utile. J'utilise iptables et la cible DNAT pour transférer SSH sans toucher à la configuration du serveur SSH :

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

En outre, vous devez ajouter une autre règle pour autoriser le trafic vers le port 80.

iptables -A INPUT -m tcp -p tcp --dport 80 -j ACCEPT

1voto

j.doe Points 11

Il s'agit d'une configuration SELinux dans RHEL qui ne vous permettra pas d'ajouter des ports à votre guise. L'utilisation de netstat -ntlp vous verrez que sshd ne s'exécute pas sur le port 80 comme on pourrait le penser en se basant sur les données de l'application sshd_config . Une vérification rapide de votre /var/log/secure vous montrera les tentatives infructueuses de liaison sur le port 80. Ce que vous devez faire en premier lieu est de modifier votre configuration selinux :

semanage port -m -t ssh_port_t -p tcp 80

Une vérification rapide :

semanage port -l | grep ssh

confirmera que le port 80 a été ajouté.

Vous pouvez maintenant modifier votre sshd_config et recharger sshd .

0voto

Oduvan Points 1039

Pourquoi faire fonctionner sshd sur deux ports ? Et surtout les ports 22 et 80. Pensez à utiliser des ports de plus de "30000" à "63000" pour qu'ils soient au moins ignorés par les simples scanners de ports. Mais faire fonctionner SSHd sur deux ports en même temps n'a aucun sens (sauf si vous vous connectez depuis l'intérieur d'un pare-feu d'entreprise très restrictif - dans ce cas, votre pare-feu devrait lui aussi être plus restrictif). Si vous insistez pour utiliser les ports 22 et 80, ajoutez les éléments suivants /etc/ssh/sshd_config :

Port 22
Port 80

Ensuite :

# 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)

Je ne suis pas favorable à l'ouverture de ces ports au monde entier, vous devriez être plus restrictifs :

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

1.2.3.4 est l'adresse IP à partir de laquelle vous allez vous connecter.

0voto

Alex Points 246

Il semble que le port 80 ne soit pas ouvert dans votre groupe de sécurité.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X