Comment retrouver l'accès SSH après avoir été verrouillé par iptables?


10

TL: DR

J'ai apporté des modifications à ma configuration iptables et maintenant SSH refuse toutes les connexions. Puis-je résoudre ce problème sans contacter mon hébergeur?


Version longue

Ok, c'est probablement à 100% ma faute ...

En préparation du déplacement d'un site Web vers un serveur dédié, nous avons obtenu une nouvelle machine hébergée exécutant CentOS 5.6. La machine a des iptables assez verrouillés, n'autorisant que ssh (22) et http (80) mais nous en avions également besoin pour accepter FTP sur le port 20 et 21.

Cet après-midi, j'ai ajouté des lignes à mes iptables afin d'accepter la connexion entrante aux ports 20 et 21. Au début, cela ne fonctionnait pas car il y avait une reject allligne au-dessus des lignes que j'avais ajoutées pour ftp. J'ai donc déplacé cette ligne vers le bas, enregistré et redémarré iptables et ftp fonctionnait.

2 heures plus tard, lorsque j'essaye de me reconnecter, port 22: Connection refused Idem pour http.

Je ne peux donc pas accéder au serveur via SSH, est-il possible de résoudre ce problème sans contacter mon hébergeur?

Réponses:


13

Malheureusement non. Sauf si vous avez une autre interface de gestion disponible comme une console série distante, iDRAC, iLO, etc.


12
Ou si vous expérimentez avec iptables, assurez-vous de définir temporairement un travail cron qui réinitialise l'ensemble de règles toutes les 15 minutes.
mailq

1
Leçon apprise :)
Jan Henckens

Comment activer le port SSH 22 à l'aide d'iDRAC?
terrid25

@ terrid25 vous vous connecteriez à l'aide de la console série en écoutant sur le port série auquel iDRAC vous donne accès. vous pouvez ensuite réparer iptables et être sur la bonne voie. bien sûr, si vos trucs hors bande ne sont pas configurés avec une console distante et que vous serez tout aussi coincé que votre ami sans aucune gestion à distance.
Michael Lowman

7

En supposant que vous pouvez toujours ftp sur le serveur, et vous pouvez vous connecter en tant que root via ftp (peu probable et généralement mal avisé) dans un environnement non chrooté (etc.):

Mettez un fichier dans /etc/cron.d avec ces contenus:

* * * * * root /sbin/service iptables stop 

Cela m'a aidé, car je peux connecter à distance une image de récupération et accéder au système de fichiers.
Daniel W.

0

Selon ces instructions , vous pouvez également ajouter:

scripts2/doautofixer?autofix=iptablesflush

... à votre URL WHM. Je l'ai fait et je me suis retrouvé avec une URL:

https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush

Cela a réinitialisé mes iptables et tout allait bien avec le monde. :)


0

Dans CentOS, vous avez le fichier /etc/sysconfig/iptablessi vous ne l'avez pas là, vous pouvez le créer simplement en utilisant iptables-savepour vider le jeu de règles actuel dans un fichier.

iptables-save > /etc/sysconfig/iptables

Pour charger le fichier dont vous n'avez pas besoin pour redémarrer la machine, vous pouvez utiliser iptables-restore

iptables-restore < /etc/sysconfig/iptables
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.