Назад | Перейти на главную страницу

найти владельца и создать процесс ssh-соединения

Я управляю одним сервером, который регулярно (несколько раз в минуту) пытается подключиться к другому компьютеру через TCP-порт 22. (ssh)

Мой вопрос: как мне найти процесс, породивший это соединение?

Что уже проверял:

Похоже, он принадлежит пользователю root. Повторил процесс несколько раз, но ничего интересного не обнаружил.

когда я регистрирую достаточно итераций этого, я вижу, что он снижается до одного time_wait cnx и возвращается до 2 несколько раз в минуту.

не найдено crontab для любого пользователя, который запускает какой-либо ssh cnx, ничего о ssh в файлах и каталогах / etc / cron *

добавил это правило:

    auditctl -a exit,always -F arch=b64 -S connect -k MYCONNECT

Ничего не узнал, кроме того, что это действительно похоже на соединение ssh с тем же источником и IP-адресом назначения и т. Д.

Я не понимаю, откуда это.

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

спасибо за любые подсказки.

У меня возникнет соблазн использовать auditd для (краткого) сбора информации о создании задачи и посмотреть, смогу ли я вернуться к этому

auditctl -D
auditctl -a task,always 

Затем просмотрите результаты

ausearch -i -sc execve

Также lsof предоставляет PID, чтобы вы могли попробовать

ps -p <PID> -o ppid=

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

mv /usr/bin/ssh /usr/bin/ssh.real 

Заменить

/ usr / bin / ssh

с этим скриптом:

#!/usr/bin/perl
use Sys::Syslog;                        # all except setlogsock()
use Sys::Syslog qw(:standard :macros);  # standard functions & macros
openlog('ssh', "ndelay,pid", "auth");   # or whatever is appropriate other than auth
syslog('info',"started by $ENV{'USER'}"); 
exec '/usr/bin/ssh.real',  @ARGV;