Популярность оправдана - высокая защищенность от взлома благодаря мощному шифрованию, высокая скорость, возможность организации защищенных туннелей и многое другое.
Хотя вероятность подбора пароля к SSH хакерами при условии выбора надежного пароля крайне низка, однако в Интернете находится множество любителей подобрать пароль к вашему серверу, в чем легко убедиться, заглянув в лог /var/log/secure, а также в ежесуточных отчетах logwatch, высылаемых сервером по email, в которых можно увидеть множество попыток брутфорса и других атак.
Рекомендаций по защите SSH достаточно много, с некоторыми из них можно ознакомиться в Приложении, мы же сосредоточимся на п.3. - смена его дефолтового порта 22 на что-нибудь эдакое, непонятное и непредсказуемое.
Методика
Если вы не хотите столкнуться с "сюрпризами", рекомендуется придерживаться данной последовательности действий.
1. Первым придумаем себе новый порт для SSH.
Поскольку, как известно, хакеры обычно тусуется на портах с низкими номерами, выискивая там незащищенные сервисы, лучше выбрать номер порта выше 1024. Некоторые онлайновые сканеры, например, Nmap Online по умолчанию сканируют диапазон до 5000, поэтому есть смысл выбрать значение еще выше.
Например, 47539
2. Второй шаг, очень важный - заранее разрешить новый порт в файрволе.
Иначе можно попасть в коварную ловушку - когда SSH-сервер заработает на новом значении порта, файрволл вас не пустит к нему, и вы потеряете доступ к своему серверу. И если он еще и удаленный - кто знает, может быть, и навсегда
Для этого в конфиг-файл /etc/sysconfig/iptables после строки
Код: Выделить всё
:RH-Firewall-1-INPUT - [0:0]
Код: Выделить всё
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
Код: Выделить всё
COMMIT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 47539 -j ACCEPT
При этом строку с дефолтовым значением порта SSH пока не удалять - если фокус с новым портом не удастся, останется шанс поработать на старом.
* Потом, когда новый порт заработает, дефолтовую строку можно удалить или закомментировать.
3. Перезапускаем сервис файрвола:
Код: Выделить всё
# service iptables restart
4. Теперь пришла пора изменить порт SSH-сервиса.
Для этого в конифг-файле /etc/ssh/sshd-config раскомментируем строку с дефолтовым портом:
Код: Выделить всё
#Port 22
Код: Выделить всё
Port 47539
Код: Выделить всё
service sshd restart
Код: Выделить всё
ssh -p47539 king@myserver.com
Код: Выделить всё
king@myserver.com:47539
Если нет - спросить себя: и для чего я только все это затеял?
* Примечание
Еще раз по поводу удаления дефолтовой строки:
- если ее удалить или закомментировать, то при обращению к серверу по дефолтовому порту 22 будем получать сообщение
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).
Еще дополнение: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).
1.Чтоб не потерять доступ по SSH при перестройке портов, имеет смысл указать в sshd_config, чтоб sshd слушал по двум портам. Когда все настроишь, старый порт можно закомментировать.
Запрещение удаленного root-доступа.
Код: Выделить всё
#PermitRootLogin yes
PermitRootLogin no
источник http://poplinux.ru/node/113 (внешка)