TL: DR
Я внес изменения в конфигурацию iptables, и теперь SSH отказывается от всех подключений. Могу ли я исправить это, не связываясь с моей хостинговой компанией?
Длинная версия
Хорошо, это, скорее всего, 100% моя вина ...
В рамках подготовки к переносу веб-сайта на выделенный сервер мы получили новую размещенную машину под управлением CentOS 5.6. На машине iptables довольно заблокирован, разрешены только ssh (22) и http (80), но нам также нужно, чтобы он принимал FTP через порт 20 и 21.
Сегодня днем я добавил несколько строк в свой iptables, чтобы принимать входящее соединение с портами 20 и 21. Сначала это не сработало, потому что был reject all
над строками, которые я добавил для ftp. Поэтому я переместил эту строку вниз, сохранил и перезапустил iptables, и ftp заработал.
2 часа спустя, когда я снова пытаюсь подключиться, port 22: Connection refused
То же самое для http.
Итак, я не могу получить доступ к серверу через SSH, есть ли способ исправить это, не связываясь с моей хостинговой компанией?
К сожалению нет. Нет, если у вас нет другого интерфейса управления, такого как удаленная последовательная консоль, iDRAC, iLO и т. Д. Расскажите об этом на собственном опыте и не забудьте проверить настройки перед выходом из системы в следующий раз;)
Предполагая, что вы все еще можете подключиться к серверу по ftp, и вы можете войти в систему как root через ftp (маловероятно и обычно не рекомендуется) в среде без chrooted (и т. Д.):
Поместите файл в /etc/cron.d с таким содержимым:
* * * * * root /sbin/service iptables stop
Согласно этим инструкции, вы также можете добавить:
scripts2/doautofixer?autofix=iptablesflush
... на ваш URL-адрес WHM. Я сделал это и получил URL:
https://mysite:2087/SESSION_ID/scripts2/doautofixer?autofix=iptablesflush
Он сбросил мои iptables, и с миром снова все стало хорошо. :)
В CentOS у вас есть файл /etc/sysconfig/iptables
если у вас его там нет, вы можете создать его, просто используя iptables-save
для сохранения текущего набора правил в файл.
iptables-save > /etc/sysconfig/iptables
Чтобы загрузить файл, вам не нужно перезагружать машину, вы можете использовать iptables-restore
iptables-restore < /etc/sysconfig/iptables