Просто полезности для того, чтобы спать спокойно. Даже для домашнего компьютера весьма невредно. И да, это для Debian/Ubuntu, легко адаптируется для других линуксов и FreeBSD.
- Первым делом:
Port 2345
- Обязательно:
PermitRootLogin no
Еще: AllowUsers eniky beniky vareniky
илиAllowGroups developers administrators
- Не забываем и про
DenyUsers bad ass
илиDenyGroups justUsers
- Авторизацию делаем покороче, чем дефолтные 2m:
LoginGraceTime 1m
- При наличии нескольких сетевых интерфейсов не обязательно давать допуск на всех, ограничиваем: ListenAddress
192.168.0.13
- Ограничиваем время бездействия клиента до разрыва соединения параметрами
ClientAliveInterval
иClientAliveCountMax
- Авторизуемся только по ключу. Имя пользователя и пароль хороши везде, кроме авторизации на компьютере.
- Ключ должен быть обязательно с паролем (
passphrase
). Это может чуть добавить неудобства, но ключ без пароля — все равно что без ключа вовсе.
P.S. Ну и дополнительно к SSH
в плане безопасности:
- Установить fail2ban. Это musthave. И регулярно смотрим логи.
- Каждому пользователю, которому нужно, настроить
sudo
. Никакихsudo all
без пароля. Обязательно достаточно короткий timeout, не больше чем минут 5-10. - Ну и банальности — ставим
firewall
, отключаем неиспользуемые сервисы, мониторим и анализируем логи.
P.P.S. Еще можно настроить Two-factor authentication
с использованием, например, Google Authenticator
, но это уже на ваше усмотрение.