Запрещаем пользователю доступ по SSH в Debian 7
Вчера ко мне обратился один из читателей моего блога с вопросом: «Как ограничить отдельным пользователям доступ по SSH?». Автор вопроса прочитал мои заметки о настройке серверных компонент в Linux и не нашел в них информации о принудительном запрете пользователям подключаться по SSH. Напомню, по умолчанию, каждый созданный пользователь имеет возможность подключаться к серверу по SSH. Необходимость в такой возможности нужна не всегда (еще бы, ведь это лишняя дверь для хакера), поэтому смысл в отключении SSH доступа есть.
Как НЕ нужно отключать доступ к SSH
На различных форумах, посвященных администрированию unix-like систем, некоторые системные администраторы рекомендуют просто менять пользователю shell на несуществующий. По умолчанию, в качестве шелла каждому пользователю устанавливается bash. Чтобы поменять его нужно выполнить команду:
usermod -s /bin/false <user>
Команда usermod с ключом “s” изменит пользователю /bin/false
. Доступа по ssh он сразу же лишиться, но вместе с ним потеряет возможность подключаться к серверу по FTP. Например, если ее применить к пользователю и попробовать подключиться к установленному vsftpd, то ничего не выйдет. После прохождения аутентификации сервер будет отбрасывать соединения. Так, что рекомендую не спешить следовать таким «полезным» советам. К тому же, ограничить доступ по SSH можно вполне «легальным» способом.
Как правильно запретить доступ по SSH в Debian
Я придерживаюсь максимально гибкого подхода при вводе ограничений. Одним пользователям доступ к SSH нужен, другим нет. Чтобы проще рулить этим процессом, я обычно создаю группу no-ssh. Все, кто в нее входит, будут лишаться доступа по SSH. Напомню, создать группу можно так:
groupadd no-ssh
После этого добавляем в нее пользователей, которым доступ к SSH не нужен. Например:.
usermod –G no-ssh username
Хорошо, пользователь username добавлен в группу np-ssh. Теперь внесем корректив в конфигурационный файл ssh-демона. Открываем файл с настройками:
nano /etc/ssh/sshd_config
Перемещаемся в самый конец файла и добавляем одну единственную строчку:
DenyGroups no-ssh
Сохраняем изменения (ctrl+o) и закрываем файл (ctrl+x). Одной простой строчкой мы установили запрет на подключение пользователей, входящих в группу no-ssh. Чтобы изменения вступили в силу, остается лишь перезапустить службу SSH:
/etc/init.d/ssh restart
Все, теперь пользователь username доступа к SSH решился раз и навсегда.