Задача: В виду того факта что ушел системный администратор из компании в которой черт-что творилось в плане инфраструктуры порой не все узнаешь что и где и вот найдя его учетку на одном из множества сайта возникает задача: нужно заблокировать ему удаленный доступ на сервер. Т.к. руководитель порой просит что его сделать, а не меня. Я хочу пресечь данное действо дабы раз я работаю, то все задачи были ко мне. А то как администрировать если кто-то не устроенный уже что-то делает и не говорит.

В роли сервера буду рассматривать, что это 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.