Опишу простые приёмы, которые повышают безопасность ssh. Не обязательно применять именно все рекомендации (некоторые вообще могут не подходить для ваших целей), но желательно как можно больше
– использовать openssh, вместо системного sshd.
Он чаще обновляется, быстрее исправляют баги.
– перенос порта:
Причём не просто перенос на 222 или 2222, так как такие порты злоумышленники тоже сканируют, а например, на такой: 9753. Запоминается легко.
– аутентификация по ключам
Вообще, в идеале – запретить парольную аутентификацию и разрешить только по ключам, причём ключи генерировать с паролем! Даже если у вас их и похитят, всё равно не смогут воспользоваться
– Protocol 2
Откажитесь от старых протоколов.
– PermitRootLogin no
Запретить вход root’y
– LoginGraceTime 1m
Ограничить время простоя при логине
– StrictModes yes
Строгий режим, который сверяет владельца, режим доступа к файлам. Будь-те внимательны, при включении этого режима, так как при одном неправильном выставленном chmod’e на файлы, можете не зайти обратно на сервер
– MaxAuthTries 4
Количество попыток аутентификации
– AllowUsers johndoe
Разрешите доступ только тем, кому нужно
– PermitEmptyPasswords no
Запрещаем пустые пароли
– X11Forwarding no
На сервере это вообще не нужно
– UsePrivilegeSeparation yes
Для предотвращения инкапсуляций привилегий создаётся новый непривелегированный процесс.
– VersionAddendum
Отключаем вывод версии ssh
Один коментар до “Повышаем безопасность ssh”
От себя добавлю, что стоит заменить заново сгенерированные private.key и public.key на такие же, как в системе (при условии, что не используется ECDSA). У меня ключики скопированы в %kippodir%/ssh_keys и соответственно: private.key -> ssh_keys/ssh_host_rsa_key public.key -> ssh_keys/ssh_host_rsa_key.pub При таком хаке абсолютно не палится факт смены фингерпринта ssh, т.е. со стороны клиента не виден факт подмены оригинального ssh-сервера на фейковый.