Come riottenere l'accesso SSH dopo essere stato bloccato da iptables?


10

TL: DR

Ho apportato modifiche alla mia configurazione di iptables e ora SSH sta rifiutando tutte le connessioni. Posso risolvere questo problema senza contattare la mia società di hosting?


Versione lunga

Ok, probabilmente è colpa mia al 100% ...

In preparazione dello spostamento di un sito Web su un server dedicato, abbiamo ottenuto un nuovo computer host con CentOS 5.6. La macchina ha iptables piuttosto bloccato, consentendo solo ssh (22) e http (80) ma ne avevamo anche bisogno per accettare FTP sulla porta 20 en 21.

Questo pomeriggio ho aggiunto delle linee al mio iptables per accettare la connessione in entrata alle porte 20 e 21. All'inizio non ha funzionato perché c'era una reject alllinea sopra le linee che ho aggiunto per ftp. Quindi ho spostato quella linea in basso, salvato e riavviato iptables e ftp funzionava.

2 ore dopo, quando provo a ricollegarmi, lo port 22: Connection refused stesso vale per http.

Quindi non riesco ad accedere al server tramite SSH, esiste un modo per risolvere il problema senza contattare la mia società di hosting?

Risposte:


13

Sfortunatamente no. A meno che tu non abbia qualche altra interfaccia di gestione disponibile come una console seriale remota, iDRAC, iLO, ecc. Ricalca per provare e ricorda di testare le impostazioni prima di disconnetterti la prossima volta;)


12
Oppure, se si sperimenta iptables, assicurarsi di impostare temporaneamente un processo cron che reimposta il set di regole ogni 15 minuti.
mailq,

1
Lezione imparata :)
Jan Henckens,

Come abiliteresti la porta SSH 22 usando iDRAC?
terrid25

@ terrid25 accedi utilizzando la console seriale in ascolto sulla porta seriale a cui iDRAC ti dà accesso. è quindi possibile correggere iptables ed essere sulla buona strada. ovviamente, se le tue cose fuori banda non sono configurate con la console remota e così rimarrai bloccato come il tuo amico senza alcuna gestione remota.
Michael Lowman,

7

Supponendo che sia ancora possibile ftp sul server e che sia possibile accedere come root tramite ftp (improbabile e normalmente sconsigliato) in un ambiente non chrooted (ecc.):

Inserisci un file in /etc/cron.d con questi contenuti:

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

Questo mi ha aiutato, perché posso connettere in remoto un'immagine di ripristino e accedere al filesystem.
Daniel W.

0

Secondo queste istruzioni , puoi anche aggiungere:

scripts2/doautofixer?autofix=iptablesflush

... al tuo URL WHM. L'ho fatto e ho finito con un URL:

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

Ha ripristinato il mio iptables e tutto è andato di nuovo bene con il mondo. :)


0

In CentOS hai il file /etc/sysconfig/iptablesse non lo hai lì, puoi crearlo semplicemente usando iptables-saveper scaricare il set di regole corrente in un file.

iptables-save > /etc/sysconfig/iptables

Per caricare il file non è necessario riavviare la macchina, è possibile utilizzare iptables-restore

iptables-restore < /etc/sysconfig/iptables
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.