Брутят SSH доступ

Статус
В этой теме нельзя размещать новые ответы.
Обращаемся на определённые порты(в определённом порядке), включается ssh, ну а дальше как хочется, {passwd,rsa-key}
Так такое реализовано, просьба со ссылками, и другими плюшками. Ну очень интересно.

Эта технология называется Port knocking, детали реализации легко найдете с помощью поисковиков.
 
Расслабьтесь, даже если ссш будут брутить сотни ботов, существенной нагрузки это не даст, да и брут AES в SSH2 (надеюсь, все используют ссш2?) дело бессмысленное чуть больше, чем полностью, при длине пароля больше 8 символов (буквы, цифры, спецсимволы). Главное поправьте
Код:
PermitRootLogin no
и юзайте su/sudo
 
Проброс портов через файервол сделайте и о портах знаете только вы и все. Хер пробьются.
 
Защита через iptables:
Код:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set --name SSH
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 600 --hitcount 5 --rttl --name SSH -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

Также можно уменьшить количество попыток авторизации в файле /etc/ssh/sshd_config:
Код:
MaxAuthTries 3
 
Проскакивала тема подключения к ssh по принципу кодового замка.
Обращаемся на определённые порты(в определённом порядке), включается ssh, ну а дальше как хочется, {passwd,rsa-key}
Как такое реализовано, просьба со ссылками, и другими плюшками. Ну очень интересно.
Код:
cd /usr/ports/security/knock && make install clean
cat > /usr/local/etc/knockd.conf
[options]
#Куда пишем лог файл
        logfile = /var/log/knockd.log
#На каком интерфейсе слушаем
        interface = vlan1
#Секция описывающая открытие
#и закрытие определенного порта
[opencloseSSH]
#последовательность стука
        sequence      = 8060:udp,12233:tcp,9000:udp
#таймаут соединения с портами
        seq_timeout  = 5
#Флаги установленные в tcp пакетах
        tcpflags      = syn
#Комманда выполняемая при успешном стуке:
        start_command = /sbin/ipfw add 1250 allow tcp from %IP% to me 22 via vlan1 in
#Через какое время(секунды) будет выполнена stop_command после start_command
        cmd_timeout  = 100
#Комманда выполняемая после таймаута
        stop_command  = /sbin/ipfw delete 1250
^d
echo knockd_enable=\"YES\" >> /etc/rc.conf
/usr/local/etc/rc.d/knockd restart
Для "стука" по портам есть готовая утилита под винду. Сохраняется ярлык с нужной последовательностью, который при запуске будет выполнять действие через knockd.
Последовательностей в [] в конфиге можно задать сколько угодно.
 
Еще можно закрыть парольную авторизацию в sshd вообще и подключаться по ключу. Если с винды то в составе Putty есть для этого утилиты - puttygen (сгенерить приватный и публичный ключ) и pageant (имеет смысл если много серверов - транслирует приватный ключ при подключении).
 
кроме fail2ban посмотрите также на denyhosts
 
Перевесьте sshd:
Код:
% grep -i '^port' /etc/ssh/sshd_config
Port 38
это отсечет 90% ботов, используйте сертификаты, защищенные паролем.
Дальше portknocking или разрешение доступа с "белых" адресов, rate-limit с помощью pf.
 
Конечно, если пароль нормальный, то брут не страшен, но, морально напрягает - "а вдруг???".
У меня на каждом сервере подсетка /64 IPv6.
Посадил SSH на один из IPv6. Также поступил и с FTP.
Просканить биллион айпишников - жизни не хватит.
О бруте забыл навсегда.
Рекомендую.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху