Як відновити доступ до SSH після відключення iptables?


10

TL: DR

Я вніс зміни в конфігурацію iptables і тепер SSH відмовляється від усіх з'єднань. Чи можна це виправити, не звертаючись до своєї хостингової компанії?


Довга версія

Гаразд, це, швидше за все, на 100% моя власна вина ...

Готуючи переміщення веб-сайту на спеціалізований сервер, ми отримали нову розміщену машину під управлінням CentOS 5.6. Машина має iptables досить заблоковані, дозволяючи лише ssh (22) та http (80), але нам також потрібен був, щоб прийняти FTP через порт 20 en 21.

Сьогодні вдень я додав рядки до своїх iptables, щоб прийняти вхідне з'єднання до портів 20 та 21. Спочатку це не спрацювало, оскільки reject allнад рядками, які я додав для ftp, була лінія. Тому я перемістив цей рядок донизу, зберег і перезапустив iptables і ftp працював.

Через 2 години, коли я намагаюся знову підключитися, port 22: Connection refused Те саме для http.

Тож я не можу потрапити на сервер через SSH, чи є спосіб виправити це, не звертаючись до своєї хостингової компанії?

Відповіді:


13

На жаль, немає. За винятком випадків, коли у вас є інший інтерфейс управління, наприклад віддалена послідовна консоль, iDRAC, iLO і т.д.


12
Або якщо ви експериментуєте з iptables, переконайтеся, що ви тимчасово встановили завдання cron, яке скидає набір правил кожні 15 хвилин.
mailq

1
Урок засвоєний :)
Ян Хенкенс

Як би ви включили порт SSH 22 за допомогою iDRAC?
terrid25

@ terrid25 ви б увійшли за допомогою прослуховування послідовної консолі на послідовний порт, до якого iDRAC надає вам доступ. Ви можете потім виправити iptables і стати веселим. Звичайно, якщо ваші позадіапазонні речі не налаштовані на віддалену консоль, і ви будете настільки ж застряглі, як і ваш друг без віддаленого управління взагалі.
Майкл Лоуман

7

Якщо припустити, що ви все ще можете ftp на сервер, і ви можете увійти як root через ftp (навряд чи, як правило, недобросовісно) в середовище, яке не входить до системи (тощо):

Помістіть файл у /etc/cron.d із цим вмістом:

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

Це допомогло мені, оскільки я можу віддалено підключити зображення відновлення та отримати доступ до файлової системи.
Даніель В.

0

Відповідно до цих інструкцій , ви також можете додати:

scripts2/doautofixer?autofix=iptablesflush

... до вашої URL-адреси WHM. Я це зробив і закінчив URL-адресу:

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

Він скинув мої iptables і знову все було добре зі світом. :)


0

У CentOS у вас є файл, /etc/sysconfig/iptablesякщо у вас його немає, ви можете створити його просто за допомогою iptables-saveскидання поточного правила, встановленого у файл.

iptables-save > /etc/sysconfig/iptables

Щоб завантажити файл, який вам не потрібно перезавантажувати, ви можете використовувати iptables-restore

iptables-restore < /etc/sysconfig/iptables
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.