Ограничить пользователей ldap и linux только использованием ssh?

Фон

По определению все в статусе D:

D uninterruptible sleep (usually IO)

Ожидание в части кода ядра, которая не может быть прервана. Такие вещи, как дисковый ввод-вывод. Это не означает, что вы не можете отправить ему сигнал с помощью команды kill, это просто означает, что он не будет воздействовать на него, пока он не выйдет из этой части ядра.

Таким образом, намек здесь на ввод-вывод. Если эти соединения действительно ожидают дискового ввода-вывода, я бы посмотрел на них, используя lsof -p <pid>, чтобы увидеть, есть ли какой-то путь к жесткому диску, на котором они заблокированы.

Сортировка

$ lsof -p 3499
COMMAND  PID    USER   FD   TYPE             DEVICE SIZE/OFF     NODE NAME
sshd    3499 vagrant  cwd    DIR              253,0      239       64 /
sshd    3499 vagrant  rtd    DIR              253,0      239       64 /
sshd    3499 vagrant  txt    REG              253,0   853040 33982191 /usr/sbin/sshd
sshd    3499 vagrant  mem    REG              253,0    15480 33565594 /usr/lib64/security/pam_lastlog.so
sshd    3499 vagrant  mem    REG              253,0    15632 33565575 /usr/lib64/libpam_misc.so.0.82.0
sshd    3499 vagrant  mem    REG              253,0   309280 33801011 /usr/lib64/security/pam_systemd.so
sshd    3499 vagrant  mem    REG              253,0    19600 33565595 /usr/lib64/security/pam_limits.so
sshd    3499 vagrant  mem    REG              253,0    11152 33565593 /usr/lib64/security/pam_keyinit.so
sshd    3499 vagrant  mem    REG              253,0    40784 33565922 /usr/lib64/security/pam_namespace.so
sshd    3499 vagrant  mem    REG              253,0    11200 33565598 /usr/lib64/security/pam_loginuid.so
sshd    3499 vagrant  mem    REG              253,0    19760 33565930 /usr/lib64/security/pam_selinux.so
sshd    3499 vagrant  mem    REG              253,0    44600 33565499 /usr/lib64/libcrack.so.2.9.0
sshd    3499 vagrant  mem    REG              253,0    23832 33565556 /usr/lib64/libpwquality.so.1.0.2
sshd    3499 vagrant  mem    REG              253,0    11232 33565557 /usr/lib64/security/pam_pwquality.so
sshd    3499 vagrant  mem    REG              253,0     6984 33565924 /usr/lib64/security/pam_permit.so
sshd    3499 vagrant  mem    REG              253,0    11144 33565597 /usr/lib64/security/pam_localuser.so
sshd    3499 vagrant  mem    REG              253,0    11176 33565923 /usr/lib64/security/pam_nologin.so
sshd    3499 vagrant  mem    REG              253,0     6872 33565583 /usr/lib64/security/pam_deny.so
sshd    3499 vagrant  mem    REG              253,0    15408 33565935 /usr/lib64/security/pam_succeed_if.so
sshd    3499 vagrant  mem    REG              253,0    57728 33565941 /usr/lib64/security/pam_unix.so
sshd    3499 vagrant  mem    REG              253,0    11168 33565587 /usr/lib64/security/pam_faildelay.so
sshd    3499 vagrant  mem    REG              253,0    15552 33565585 /usr/lib64/security/pam_env.so
sshd    3499 vagrant  mem    REG              253,0    15496 33565932 /usr/lib64/security/pam_sepermit.so
sshd    3499 vagrant  mem    REG              253,0    62184 33558009 /usr/lib64/libnss_files-2.17.so
sshd    3499 vagrant  mem    REG              253,0    68192 33565404 /usr/lib64/libbz2.so.1.0.6
sshd    3499 vagrant  mem    REG              253,0    99944 33565444 /usr/lib64/libelf-0.170.so
sshd    3499 vagrant  mem    REG              253,0    19896 33565252 /usr/lib64/libattr.so.1.1.0
sshd    3499 vagrant  mem    REG              253,0    15688 33565266 /usr/lib64/libkeyutils.so.1.5
sshd    3499 vagrant  mem    REG              253,0    58728 33565394 /usr/lib64/libkrb5support.so.0.1
sshd    3499 vagrant  mem    REG              253,0    11464 33557778 /usr/lib64/libfreebl3.so
sshd    3499 vagrant  mem    REG              253,0   251776 33565174 /usr/lib64/libnspr4.so
sshd    3499 vagrant  mem    REG              253,0    20040 33565177 /usr/lib64/libplc4.so
sshd    3499 vagrant  mem    REG              253,0    15744 33565178 /usr/lib64/libplds4.so
sshd    3499 vagrant  mem    REG              253,0   194944 33565179 /usr/lib64/libnssutil3.so
sshd    3499 vagrant  mem    REG              253,0  1249544 33574183 /usr/lib64/libnss3.so
sshd    3499 vagrant  mem    REG              253,0   164288 33565958 /usr/lib64/libsmime3.so
sshd    3499 vagrant  mem    REG              253,0   323664 33565980 /usr/lib64/libssl3.so
sshd    3499 vagrant  mem    REG              253,0   470360 33565368 /usr/lib64/libssl.so.1.0.2k
sshd    3499 vagrant  mem    REG              253,0   121320 33574189 /usr/lib64/libsasl2.so.3.0.0
sshd    3499 vagrant  mem    REG              253,0   144792 33565153 /usr/lib64/libpthread-2.17.so
sshd    3499 vagrant  mem    REG              253,0    88720 33554537 /usr/lib64/libgcc_s-4.8.5-20150702.so.1
sshd    3499 vagrant  mem    REG              253,0   297360 33800995 /usr/lib64/libdw-0.170.so
sshd    3499 vagrant  mem    REG              253,0    19384 33565450 /usr/lib64/libgpg-error.so.0.10.0
sshd    3499 vagrant  mem    REG              253,0   535064 33565460 /usr/lib64/libgcrypt.so.11.8.2
sshd    3499 vagrant  mem    REG              253,0    85952 33574789 /usr/lib64/liblz4.so.1.7.5
sshd    3499 vagrant  mem    REG              253,0   157424 33565398 /usr/lib64/liblzma.so.5.2.2
sshd    3499 vagrant  mem    REG              253,0    44448 33565157 /usr/lib64/librt-2.17.so
sshd    3499 vagrant  mem    REG              253,0  1139680 33557999 /usr/lib64/libm-2.17.so
sshd    3499 vagrant  mem    REG              253,0    20032 33565257 /usr/lib64/libcap.so.2.22
sshd    3499 vagrant  mem    REG              253,0   402384 33565268 /usr/lib64/libpcre.so.1.2.0
sshd    3499 vagrant  mem    REG              253,0    23968 33565452 /usr/lib64/libcap-ng.so.0.0.0
sshd    3499 vagrant  mem    REG              253,0   117680 33558001 /usr/lib64/libnsl-2.17.so
sshd    3499 vagrant  mem    REG              253,0  2173512 33557991 /usr/lib64/libc-2.17.so
sshd    3499 vagrant  mem    REG              253,0    15848 33565175 /usr/lib64/libcom_err.so.2.1
sshd    3499 vagrant  mem    REG              253,0   210840 33565386 /usr/lib64/libk5crypto.so.3.1
sshd    3499 vagrant  mem    REG              253,0   963576 33565392 /usr/lib64/libkrb5.so.3.3
sshd    3499 vagrant  mem    REG              253,0   320408 33565382 /usr/lib64/libgssapi_krb5.so.2.2
sshd    3499 vagrant  mem    REG              253,0   106848 33565155 /usr/lib64/libresolv-2.17.so
sshd    3499 vagrant  mem    REG              253,0    41080 33557995 /usr/lib64/libcrypt-2.17.so
sshd    3499 vagrant  mem    REG              253,0    90664 33565173 /usr/lib64/libz.so.1.2.7
sshd    3499 vagrant  mem    REG              253,0    14872 33565161 /usr/lib64/libutil-2.17.so
sshd    3499 vagrant  mem    REG              253,0    61952 33725051 /usr/lib64/liblber-2.4.so.2.10.7
sshd    3499 vagrant  mem    REG              253,0   352600 33725053 /usr/lib64/libldap-2.4.so.2.10.7
sshd    3499 vagrant  mem    REG              253,0    19776 33557997 /usr/lib64/libdl-2.17.so
sshd    3499 vagrant  mem    REG              253,0  2512832 33565366 /usr/lib64/libcrypto.so.1.0.2k
sshd    3499 vagrant  mem    REG              253,0   203800 33801008 /usr/lib64/libsystemd.so.0.6.0
sshd    3499 vagrant  mem    REG              253,0   155784 33565267 /usr/lib64/libselinux.so.1
sshd    3499 vagrant  mem    REG              253,0    61672 33565573 /usr/lib64/libpam.so.0.83.1
sshd    3499 vagrant  mem    REG              253,0   127096 33565455 /usr/lib64/libaudit.so.1.0.0
sshd    3499 vagrant  mem    REG              253,0    42520 33565448 /usr/lib64/libwrap.so.0.7.6
sshd    3499 vagrant  mem    REG              253,0    11344 33724998 /usr/lib64/libfipscheck.so.1.2.1
sshd    3499 vagrant  mem    REG              253,0   164240 33557984 /usr/lib64/ld-2.17.so
sshd    3499 vagrant    0u   CHR                1,3      0t0     5078 /dev/null
sshd    3499 vagrant    1u   CHR                1,3      0t0     5078 /dev/null
sshd    3499 vagrant    2u   CHR                1,3      0t0     5078 /dev/null
sshd    3499 vagrant    3u  IPv4              28862      0t0      TCP localhost.localdomain:ssh->10.0.2.2:49736 (ESTABLISHED)
sshd    3499 vagrant    4u  unix 0xffff98d19f296400      0t0    28968 socket
sshd    3499 vagrant    5u  unix 0xffff98d19f010800      0t0    28971 socket
sshd    3499 vagrant    6w  FIFO               0,19      0t0    28964 /run/systemd/sessions/13.ref
sshd    3499 vagrant    7r  FIFO                0,9      0t0    28983 pipe
sshd    3499 vagrant    8w  FIFO                0,9      0t0    28983 pipe
sshd    3499 vagrant    9u  unix 0xffff98d19a775c00      0t0    28984 /tmp/ssh-UEdXO0wvf9/agent.3499
sshd    3499 vagrant   10u   CHR                5,2      0t0     6796 /dev/ptmx
sshd    3499 vagrant   14u   CHR                5,2      0t0     6796 /dev/ptmx
sshd    3499 vagrant   15u   CHR                5,2      0t0     6796 /dev/ptmx 

дисковый ввод-вывод

Вполне возможно, что кто-то был в сеансе SSH и изменил каталоги(cd)на какую-то файловую систему, которая больше недоступна или зависла, что приводит к вашему статусу D.

сетевой ввод/вывод

Другая мысль заключается в том, что заблокированный ввод-вывод на самом деле может быть сетевым подключением к другому серверу, который блокирует.

Для соединений TCP, которые активно использует ssh, они будут выглядеть так:

sshd    3499 vagrant    3u  IPv4              28862      0t0      TCP localhost.localdomain:ssh->10.0.2.2:49736 (ESTABLISHED)

Я поищу это и подтвержу, что вы можете pingна эти серверы, а также curl -v telnet://<ip>:22на эти серверы.

0
06.08.2020, 01:00
2 ответа

В зависимости от того, насколько умны ваши пользователи, вам, возможно, придется отключить SFTP.

Для части SSH :Вы можете

  1. установить для всех оболочекrbash
  2. создать напр./usr/local/bin/restricted
  3. создать символическую ссылку наssh(и, возможно, другие разрешенные команды )в/usr/local/bin/restricted
  4. установите $PATHна /usr/local/bin/restrictedтолько в /etc/profile//etc/bash.bashrc
  5. удалить ~/.bash_profile, ~/.bash_loginи ~/.profileво всех домашних каталогах (и/etc/skel)
0
18.03.2021, 23:14

Вы можете настроить ForceCommandв sshd_configс помощью сценария, который проверяет, начинается ли SSH_ORIGINAL_COMMANDс ssh, и запускает эту командную строку только в этом случае.

Таким образом, пользователям придется использовать

ssh jumphost ssh realtarget

вместо

ssh jumphost

и запуск ssh realtargetв интерактивной оболочке.

0
18.03.2021, 23:14

Теги

Похожие вопросы