Задача: В виду того факта что ушел системный администратор из компании в которой черт-что творилось в плане инфраструктуры порой не все узнаешь что и где и вот найдя его учетку на одном из множества сайта возникает задача: нужно заблокировать ему удаленный доступ на сервер. Т.к. руководитель порой просит что его сделать, а не меня. Я хочу пресечь данное действо дабы раз я работаю, то все задачи были ко мне. А то как администрировать если кто-то не устроенный уже что-то делает и не говорит.
В роли сервера буду рассматривать, что это Ubuntu 18.04 Server's
Шаг №1:
Вот есть учетная запись на вход по SSH
и доступом на повышение прав до уровня суперпользователя:
ekzorchik@srv-bionic:~$ sudo useradd -m -s /bin/bash alektest ekzorchik@srv-bionic:~$ sudo passwd alektest Enter new UNIX password: Aa1234567 Retype new UNIX password: Aa1234567 ekzorchik@srv-bionic:~$ sudo usermod -aG sudo alektest
На заметку: Правильнее будет при добавлении в группу использовать соответствующую утилиту: ekzorchik@srv-bionic:~$ sudo vigr
Обязательно используем команду visudo
иначе может случиться как у меня здесь:
ekzorchik@srv-bionic:~$ sudo visudo alektest ALL=(ALL) NOPASSWD: ALL ekzorchik@navy:~$ ssh -l alektest 172.33.33.7 alektest@srv-bionic:~$ alektest@srv-bionic:~$ id uid=1001(alektest) gid=1001(alektest) groups=1001(alektest),27(sudo) alektest@srv-bionic:~$ sudo su - root@srv-bionic:~# id uid=0(root) gid=0(root) groups=0(root) root@srv-bionic:~#
Шаг №2:
Я хочу создать группу на доступ по SSH:
ekzorchik@srv-bionic:~$ sudo addgroup --group sshusers Adding group `sshusers' (GID 1002) ... Done. ekzorchik@srv-bionic:~$ ekzorchik@srv-bionic:~$ sudo usermod -aG sshusers ekzorchik ekzorchik@srv-bionic:~$ sudo usermod -aG sshusers alektest
На заметку: Все необходимые пользователи должны быть в группе sshusers
, а если необходимо применяем ниже DenyUsers
.
ekzorchik@srv-bionic:~$ sudo nano /etc/ssh/sshd_config Port 22 ListenAddress 172.33.33.7 SyslogFacility AUTH LogLevel INFO LoginGraceTime 1m PermitRootLogin no MaxAuthTries 6 MaxSessions 10 PasswordAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server AllowGroups sshusers ekzorchik@srv-bionic:~$ sudo systemctl restart ssh
Шаг №3:
Создам еще одну учетную запись и не включу ее в группу sshusers
, после произведу подключение дабы определить что выдается на консоль и лог в момент ее подключения:
ekzorchik@navy:~$ ssh -l alektest2 172.33.33.7 Warning: Permanently added '172.33.33.7' (ECDSA) to the list of known hosts. alektest2@172.33.33.7's password: Permission denied, please try again. alektest2@172.33.33.7's password: вот лог sudo tail -f /var/log/auth.log Apr 13 10:59:00 srv-bionic sshd[1015]: User alektest2 from 172.33.33.16 not allowed because none of user's groups are listed in AllowGroups Apr 13 10:59:06 srv-bionic sshd[1015]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=172.33.33.16 user=alektest2 Apr 13 10:59:08 srv-bionic sshd[1015]: Failed password for invalid user alektest2 from 172.33.33.16 port 60864 ssh2
Отлично не пускает.
Шаг №4:
А как запретить удаленное подключение по SSH
если в группе данная учетная запись есть, но запретить подключение с определенной системы:
ekzorchik@srv-bionic:~$ sudo nano /etc/ssh/sshd_config Port 22 ListenAddress 172.33.33.7 SyslogFacility AUTH LogLevel INFO LoginGraceTime 1m PermitRootLogin no MaxAuthTries 6 MaxSessions 10 PasswordAuthentication yes PermitEmptyPasswords no ChallengeResponseAuthentication no UsePAM yes X11Forwarding yes PrintMotd no AcceptEnv LANG LC_* Subsystem sftp /usr/lib/openssh/sftp-server AllowGroups sshusers DenyUsers alektest2 ekzorchik@srv-bionic:~$ sudo systemctl restart ssh ekzorchik@srv-nas:~$ ssh -l alektest2 172.33.33.7 alektest2@172.33.33.7's password: Permission denied, please try again. alektest2@172.33.33.7's password: Apr 13 11:38:54 srv-bionic sshd[1395]: User alektest2 from 172.35.35.4 not allowed because listed in DenyUsers
учетная запись содержится в группе sshusers
и одновременно следующей строкой запрещена на подключение под этой учеткой.
Шаг №5:
Чтобы запретить удаленное подключение с определенного адреса (172.35.35.4
) и под указанным пользователем (alektest2
):
AllowGroups sshusers DenyUsers alektest2@172.35.35.4 ekzorchik@srv-bionic:~$ sudo systemctl restart ssh Apr 13 12:06:57 srv-bionic sshd[1546]: User alektest2 from 172.35.35.4 not allowed because listed in DenyUsers
Шаг №6:
Чтобы запретить удаленное подключение отовсюду из сети 172.35.35.0/24:
AllowGroups sshusers DenyUsers alektest2@172.35.35.* ekzorchik@srv-bionic:~$ sudo systemctl restart ssh
Шаг №7:
Запретить удаленное подключение от следующих систем под указанным пользователем:
ekzorchik@srv-bionic:~$ sudo nano /etc/ssh/sshd_config AllowGroups sshusers DenyUsers alektest2@172.35.35.4<ПРОБЕЛ>alektest2@172.35.35.8 ekzorchik@srv-bionic:~$ sudo systemctl restart ssh
Шаг №8:
Запретить удаленное подключение от alektest2
с системы 172.35.35.4 & 172.35.35.8
: Эквивалентно «Шаг №7
«:
ekzorchik@srv-bionic:~$ sudo nano /etc/ssh/sshd_config AllowGroups sshusers DenyUsers alektest2@172.35.35.4,172.35.35.8 ekzorchik@srv-bionic:~$ sudo systemctl restart ssh
Шаг №9:
Запретить удаленное подключение вообще отовсюду для учетной записи или отовсюду *:
ekzorchik@srv-bionic:~$ sudo nano /etc/ssh/sshd_config AllowGroups sshusers DenyUsers alektest2@* ekzorchik@srv-bionic:~$ sudo systemctl restart ssh
Итого заметка работоспособна. На этом у меня всё, с уважением автор блога Олло Александр aka ekzorchik.