Установить S SH таймаут простоя Ubuntu 20,04 - proUbuntu
3 голосов
/ 07 августа 2020

Я хочу, чтобы входящие s sh -сессии автоматически отключались при бездействии для r критически важной для безопасности сервера r.

Я установил следующие настройки

TCPKeepAlive no
ClientAliveInterval  30
ClientAliveCountMax 0

Я бы ожидал, что sshd не будет отправлять KeepAlive-Packages из-за TCPKeepAlive и ClientAliveCountMax - и мои сеансы будут отключены после r 30 секунд. Вдобавок ко всему, я думаю, что TCPKeepAlive можно оставить по умолчанию, которое должно быть yes.

Я проверил существующие сеансы следующим образом:

root@<server>:/etc/apache2# w
 06:53:51 up 2 days, 21:25,  2 users,  load average: 0,00, 0,00, 0,00
USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
_____-ad pts/0    ____________      Do11    6.00s  0.99s  0.00s sshd: _____-admin [priv]
_____-us pts/1    ____________     06:40   13:26   0.02s  0.02s -bash

Сессии выиграли ' t timeout ...

Конечно, я перезапустил sshd.

root@<server>:/etc/apache2# sshd -T | grep -i "ClientAlive"
clientaliveinterval 30
clientalivecountmax 0

Может ли клиент по-прежнему отправлять пакеты KeepAlive? Я не могу контролировать все версии клиентов, которые подключаются ..

Ссылки: https://www.golinuxcloud.com/disconnect-idle-ssh-session-tcpkeepaliv-linux/ https://secscan.acron.pl/centos7/5/2/13

РЕДАКТИРОВАТЬ: TCPKeepAlive yes не t изменить поведение r, сеансы остаются r. Я также начал новый сеанс после того, как r перезапустил sshd, чтобы избежать старых настроек в моей s sh -сессии.

EDIT2: добавлено ключевое слово «incoming» в описание выше, чтобы его очистить r, что я хочу, чтобы мой s sh serve r (sshd) сбрасывал соединения после r тайм-аута простоя, потому что пользователи могут забыть об их r открытых (и незакрытых) s sh сессиях.

EDIT3: только для r информации - используемая версия sshd:

root@<server>:/etc/apache2# dpkg -l openssh-server
Gewünscht=Unbekannt/Installieren/R=Entfernen/P=Vollständig Löschen/Halten
| Status=Nicht/Installiert/Config/U=Entpackt/halb konFiguriert/
         Halb installiert/Trigger erWartet/Trigger anhängig
|/ Fehler?=(kein)/R=Neuinstallation notwendig (Status, Fehler: GROSS=schlecht)
||/ Name           Version            Architektur  Beschreibung
+++-==============-==================-============-=================================================================
ii  openssh-server 1:8.2p1-4ubuntu0.1 amd64        secure shell (SSH) server, for secure access from remote machines
root@<server>:/etc/apache2# sshd -V
unknown option -- V
OpenSSH_8.2p1 Ubuntu-4ubuntu0.1, OpenSSL 1.1.1f  31 Mar 2020

Работает должным образом в

  • Debian 10 (OpenSSH_7.9p1 Debian-10 + deb10u2 , OpenSSL 1.1.1d 10 сентября 2019 г.) *
  • Ubuntu 16.04 (OpenSSH_7.2p2 Ubuntu -4ubuntu2.8, OpenSSL 1.0.2g 1 млн. r 2016)

* Fo r Debian 10 Я хотел сравнить sshd -T. Параметры, которые отличаются r: casignaturealgorithms, gssapikexalgorithms, hostbasedacceptedkeytypes, hostkeyalgorithms, kexalgorithms, passwordauthentication, permitrootlogin, pubkeyacceptedkeytypes, pubkeyauthoptions, securitykeyprovider

Я установил только passwordauthentication no

Я подключился с того же хоста, единственная разница в том, что я использовал аутентификацию pubkey fo r сервер r, о котором идет речь, и аутентификацию пароля fo r Служба Debian 10 r.

Извините, что он становится длинным .. Это как бы превращается в отчет об ошибке ...

В Debian 10:

  • ClientAliveInterval 10, ClientAliveCountMax 3: ssh -v записывает сообщение debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1 каждые 10 секунд
  • ClientAliveInterval 10, ClientAliveCountMax 0: сеанс отключается через r 10 секунд.

Вкл. Ubuntu 20.04:

  • ClientAliveInterval 10, ClientAliveCountMax 0: ssh -v записывает сообщение debug1: client_input_channel_req: channel 0 rtype keepalive@openssh.com reply 1 каждые 10 секунд

1 Ответ

1 голос
/ 08 августа 2020

Что касается более поздних версий opens sh serve r, нет возможности настроить тайм-аут бездействия / простоя через /etc/ssh/sshd_config.

Хотя можно найти очень много ссылок, в которых говорится установить ClientAliveCountMax 0 вместе с ClientAliveInterval N для создания тайм-аута бездействия / простоя, очевидно, это не было запланированной возможностью и теперь было намеренно закрыто.

Соответствующее изменение на страницах руководства sshd_config fo r ClientAliveCountMax - это дополнительное предложение: «Setting a zero ClientAliveCountMax disables connection termination.»

Некоторые отправили отчеты об ошибках для open sh, в частности r этот и этот . Некоторые особенно важные отрывки:

ClientAliveCountMax = 0 никогда не указывал r для работы в качестве тайм-аута простоя. Если это произошло, то это было случайно и было бы ненадежным. Например, если клиент указал свой собственный ServerAliveTimeout o r, перенаправленное TCP-соединение оставалось открытым, оно бы не r срабатывало.

и

Если вам нужен таймаут простоя, тогда я предлагаю посмотреть на функции оболочки (например, TMOUT bash) или r что-то вроде модуля PAM.

...