Jak odzyskać dostęp do SSH po zablokowaniu przez iptables?


10

TL: DR

Wprowadziłem zmiany w konfiguracji iptables i teraz SSH odrzuca wszystkie połączenia. Czy mogę to naprawić bez skontaktowania się z moją firmą hostingową?


Długa wersja

Ok, to najprawdopodobniej w 100% moja wina ...

W ramach przygotowań do przeniesienia strony internetowej na serwer dedykowany otrzymaliśmy nową hostowaną maszynę z systemem CentOS 5.6. Maszyna ma dość zablokowane iptables, zezwalając tylko na ssh (22) i http (80), ale potrzebowaliśmy go także do akceptowania FTP przez port 20 i 21.

Tego popołudnia dodałem do linii do iptables, aby zaakceptować połączenie przychodzące do portów 20 i 21. Na początku to nie działało, ponieważ była reject alllinia nad liniami dodanymi dla ftp. Więc przesunąłem tę linię na dół, zapisałem i zrestartowałem iptables, a ftp działało.

2 godziny później, kiedy próbuję się połączyć ponownie, to port 22: Connection refused samo dla http.

Więc nie mogę dostać się do serwera przez SSH, czy jest jakiś sposób, aby to naprawić bez skontaktowania się z moją firmą hostingową?

Odpowiedzi:


13

Niestety nie. Nie, chyba że masz jakiś inny interfejs zarządzania, taki jak zdalna konsola szeregowa, iDRAC, iLO, itp. Zachęcamy do doświadczenia i pamiętaj o przetestowaniu ustawień przed następnym wylogowaniem;)


12
Lub jeśli eksperymentujesz z iptables, upewnij się, że tymczasowo ustawiłeś zadanie cron, które resetuje zestaw reguł co 15 minut.
mailq

1
Lekcja wyciągnięta :)
Jan Henckens,

Jak włączyć port SSH 22 za pomocą kontrolera iDRAC?
terrid25

@ terrid25 zalogowałbyś się za pomocą konsoli szeregowej nasłuchując na porcie szeregowym, do którego dostęp daje iDRAC. następnie możesz naprawić iptables i być na wesołej drodze. oczywiście, jeśli twoje rzeczy poza pasmem nie są skonfigurowane ze zdalną konsolą i takie będą utknąć jak twój przyjaciel bez zdalnego zarządzania.
Michael Lowman,

7

Zakładając, że nadal możesz ftpować na serwer i możesz zalogować się jako root za pomocą ftp (mało prawdopodobne i zwykle odradzane) w środowisku bez chrootowania (itp.):

Umieść plik w /etc/cron.d z następującą zawartością:

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

Pomogło mi to, ponieważ mogę zdalnie podłączyć obraz odzyskiwania i uzyskać dostęp do systemu plików.
Daniel W.

0

Zgodnie z tymi instrukcjami możesz także dołączyć:

scripts2/doautofixer?autofix=iptablesflush

... na twój adres URL WHM. Zrobiłem to i skończyłem z adresem URL:

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

Zresetował moje iptables i wszystko znów było dobrze na świecie. :)


0

W CentOS masz plik, /etc/sysconfig/iptablesjeśli go tam nie masz, możesz go utworzyć, po prostu iptables-savezrzucając bieżący zestaw reguł do pliku.

iptables-save > /etc/sysconfig/iptables

Aby załadować plik, nie musisz ponownie uruchamiać komputera, możesz użyć iptables-restore

iptables-restore < /etc/sysconfig/iptables
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.