SSH-доступ - самый популярный вид управления сервером.
Популярность оправдана - высокая защищенность от взлома благодаря мощному шифрованию, высокая скорость, возможность организации защищенных туннелей и многое другое.
Хотя вероятность подбора пароля к SSH хакерами при условии выбора надежного пароля крайне низка, однако в Интернете находится множество любителей подобрать пароль к вашему серверу, в чем легко убедиться, заглянув в лог /var/log/secure, а также в ежесуточных отчетах logwatch, высылаемых сервером по email, в которых можно увидеть множество попыток брутфорса и других атак.
Рекомендаций по защите SSH достаточно много, с некоторыми из них можно ознакомиться в Приложении, мы же сосредоточимся на п.3. - смена его дефолтового порта 22 на что-нибудь эдакое, непонятное и непредсказуемое.
Методика
Если вы не хотите столкнуться с "сюрпризами", рекомендуется придерживаться данной последовательности действий.
Например, 47539
2. Второй шаг, очень важный - заранее разрешить новый порт в файрволе.
Иначе можно попасть в коварную ловушку - когда SSH-сервер заработает на новом значении порта, файрволл вас не пустит к нему, и вы потеряете доступ к своему серверу. И если он еще и удаленный - кто знает, может быть, и навсегда
Для этого в конфиг-файл /etc/sysconfig/iptables после строки
При этом строку с дефолтовым значением порта SSH пока не удалять - если фокус с новым портом не удастся, останется шанс поработать на старом.
* Потом, когда новый порт заработает, дефолтовую строку можно удалить или закомментировать.
3. Перезапускаем сервис файрвола:
4. Теперь пришла пора изменить порт SSH-сервиса.
Для этого в конифг-файле /etc/ssh/sshd_config раскомментируем строку с дефолтовым портом:
и вписываем в нее новый порт
5. И наконец, перезапускаем SSH-сервис:
6. Теперь можете попробовать законнектиться по новому порту:
И если все получилось - можете себя поздравить!
Если нет - спросить себя: и для чего я только все это затеял?
ssh: connect to host 213.155.20.56 port 22: No route to host
- если ее оставить работать, то сообщение будет иное
ssh: connect to host 213.155.20.56 port 22: Connection refused
Второй вариант может быть полезнее, являясь для хакеров приманкой и вводя их в заблуждения относительно "найденного" открытого порта..
Приложение
1. Запрещение удаленного root-доступа.
2. Запрещение подключения с пустым паролем или отключение входа по паролю.
3. Выбор нестандартного порта для SSH-сервера.
4. Использование длинных SSH2 RSA-ключей (2048 бит и более). По состоянию на 2006 год система шифрования на основе RSA считалась надёжной, если длина ключа не менее 1024 бит.
5. Ограничение списка IP-адресов, с которых разрешен доступ (например, настройкой файервола).
6. Запрещение доступа с некоторых потенциально опасных адресов.
7. Отказ от использования распространенных или широко известных системных логинов для доступа по SSH.
8. Регулярный просмотр сообщений об ошибках аутентификации.
9. Установка детекторов атак (IDS, Intrusion Detection System).
10. Использование ловушек, подделывающих SSH-сервис (honeypots).
Чтоб не потерять доступ по SSH при перестройке портов, имеет смысл указать в sshd_config, чтоб sshd слушал по двум портам. Когда все настроишь, старый порт можно закомментировать.
Спасибо, хороший совет
А как это реализуется?
Запрещение удаленного root-доступа.
В тот же /etc/ssh/sshd-config внести правку:
Разрешить соединение только определенным пользвателям:
AllowUsers user1 [user2] [user3] ...
Не помешало бы еще denyhosts добавить, чтобы угомонить брутфор серов.
Я очень вежливый, если я вас пошлю - то обязательно вечером перезвоню и спрошу как вы добрались!