Контролируйте передачу данных SSH и близкое соединение, если никакие данные не текут

(При предыдущем использовании другого метода для изменения MAC-адреса, чем это, восстановите их назад к настройкам по умолчанию),

Для Kubuntu существует значок "Network Manager" на правой стороне нижней панели (или панель, которая значок KDE слева). Нажмите на него, затем нажмите на соединение, которое активно, необходимо найти способ отредактировать настройки подключения. Наконец заполните имитировавший MAC-адрес в текстовое поле "Cloned MAC address" вкладки "Wired".

Connection setting dialog
Примечание: Текстовое поле "Restrict to device" должно быть, остаются пробелом, если Вы не знаете то, что это означает. Если это не пробел, заставьте его очистить.

2
17.04.2014, 12:52
1 ответ

Метод №1 - Использование тайм-аутов через SSHD / SFTPD

Если соединения осуществляются через SSH, вы можете установить эти настройки на стороне SSHD в файле конфигурации / etc / ssh / sshd_config .

ClientAliveInterval 30
ClientAliveCountMax 5

Где действуют эти настройки:

  • ClientAliveInterval : устанавливает интервал тайм-аута в секундах (30), после которого, если от клиента не было получено никаких данных, sshd отправит сообщение через зашифрованный канал для запроса ответ от клиента. Значение по умолчанию - 0, что означает, что эти сообщения не будут отправлены клиенту. Эта опция применима только к версии протокола 2.

  • ClientAliveCountMax : Устанавливает количество живых сообщений клиента (5), которые могут быть отправлены без получения sshd каких-либо сообщений от клиента. Если этот порог достигнут во время отправки сообщений «живущий клиент», sshd отключит клиента, завершив сеанс.

Чтобы получить 10 минут, вам нужно соответствующим образом отрегулировать время, например, следующим образом:

ClientAliveInterval 120
ClientAliveCountMax 5

Метод № 2 - Использование резака

Если вышеуказанные методы не работают, то вполне возможно, что клиент использует активности, которая искусственно поддерживает соединение с низким трафиком. Если это ваша ситуация, то вы ограничены тем, какие действия вы можете предпринять, чтобы отключить эти незанятые соединения.

Один из методов - разработать задание cron, которое будет отслеживать соединения, которые неактивны в течение определенного периода времени, скажем, 10 минут в вашем сценарии.

Как только этот сценарий обнаружит одно из этих подключений, вы можете использовать такую ​​команду, как cutter , чтобы сказать клиенту отключиться против его воли.

$ cutter <ip> <port>

Пример

$ cutter 192.168.1.20 22

ПРИМЕЧАНИЕ: Cutter должен быть в большинстве репозиториев основных дистрибутивов. Таким образом мне удалось установить его в Fedora / CentOS / RHEL, а также в Debian / Ubuntu.

Отладка соединений

@Gilles поднял замечательный момент в комментариях под вашим Q, что незанятые соединения действительно не должны вызывать какую-либо загрузку процессора. Тот факт, что все эти процессы sftp-server вызывают то, что я считаю значительной нагрузкой (20-30%) в top , похоже, указывает на то, что что-то происходит.

Для начала я бы использовал strace и подключился к одному из процессов sftp-server , чтобы посмотреть, что он делает. Например, чтобы подключиться к PID 17247:

$ sudo strace -p 17247

Посмотрите, действительно ли он что-нибудь делает. На самом деле этого не должно быть. Вы также можете использовать tcpdump или wirehark для отслеживания сетевого трафика, идущего туда и обратно между Nautilus и sftp-server .

Ссылки

2
27.01.2020, 22:13

Теги

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