Повышение безопасности SSH в Debian (key / otp / 2fa)
Рано или поздно возникает вопрос защиты удалённого доступа к серверу. В текущих реалиях Интернета недостаточно только одного рубежа защиты. По этой причине большинство системных администраторов используют несколько средств обеспечения безопасности.
Настройка SSH-сервера
Настройка SSH-сервера осуществляется через конфигурационный файл /etc/ssh/sshd_config
.
Port
. Большое количество сканеров и ботов пытаются работать через порт 22, т.к. он указан по умолчанию. Изменение порта позволяет скрыть службу от перебора паролей, но не защитит вас если по серверу пройдутся сканером портов по полному диапазону.PermitRootLogin
. Данная опция контролирует возможность подключения под пользователем root.
without-password - позволит подключиться если способ авторизации не требует ввода пароля (например, по ключу).
no - запрещает вход по SSH пользователю root. Наиболее безопасный вариант работы.- Доступ по ключу. Наиболее популярная на текущий момент мера. Позволяет не вводить пароль к учётной записи. Из минусов: компрометация приватного ключа учётной записи (украли, передали).
Настройка Firewall'а
- Firewall. Жёстко и сурово. Доступ разрешается только для определённых адресов. Один из эффективных способов борьбы с несанкционированным доступом. Из минусов: слишком широкие диапазоны IP-адресов или IP-сетей сводят защиту на нет, а слишком короткие списки и диапазоны не позволят подключиться, например, от друзей или из другого города. Часто данный способ не подходит для внешних серверов, доступ к которым есть у большого количества человек из разных мест с динамическими диапазонами.
- Port knocking. Разновидность защиты firewall, которая позволяет по определённым критериям и действиям разрешить доступ к SSH-порту. При слишком высокой настройке безопасности доступ будет невозможен без специализированного программного обеспечения.