Узелок на
память, как я настраивал доступ к серверу
(VDS/VPS) через SSH.
Основные идеи
были такие:
- обеспечить
админам доступ к серверу;
- защитить
вход исходя из разумной степени
параноидальности.
Что вылилось
в конфигурацию, где TCP port SSH закрыт
правилом файрволла
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --update --seconds 55 -j DROP -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -m recent --set -j ACCEPT
Это означает, что за одну минуту к телу
пропускается только одна попытка
коннекта. Тут есть огромный подводный
грабель — вредитель с легкостью
устраивает атаку DOS, просто повторяя в
цикле попытки коннекта. В этом случае
никто, даже легитимный админ, не сможет
открыть сессию SSH. Это можно исправить,
применив что-то вроде Fail2Ban.
Чтобы вредителей вносили в черный список
после нескольких попыток, и блокировка
файрволлом по списку должна быть раньше
правила минутной паузы. Но, для начала,
и так сойдет.
Затем админам
выдаются ключи и SSH настраивается так,
чтобы доступ получали только по ключам.
И, конечно, root забанен.
На сервере
предварительно создается пользователь
valik с домашней папкой и папкой ~/.ssh. Затем
на станции генерим ключ
ssh-keygen -t rsa -b 2048 -f valik.key ssh-copy-id -i valik.key valik@123.45.678.24
Обратно на
сервере, правим конфиг
cp /etc/ssh/sshd_config /etc/ssh/sshd_config.orig nano /etc/ssh/sshd_config ... Protocol 2 ListenAddress 0.0.0.0 LoginGraceTime 30 MaxStartups 3:50:10 PermitRootLogin no PasswordAuthentication no ChallengeResponseAuthentication no PubkeyAuthentication yes ... # EOF service ssh restart
Значения всех
этих параметров смотри в документации.
Потом я еще
добавил logwatch
и легкие
приступы паранои отступили.
Источники:
original post http://vasnake.blogspot.com/2015/01/ssh.html
Комментариев нет:
Отправить комментарий