LINUX.ORG.RU
ФорумAdmin

Узнать ИМЯ процесса, создающего TCP-соединение на определенный порт

 ,


0

1

Добрый день. Проблема - каждую минуту что-то пытается подключиться к Postgres с локалхоста. Лог постгреса заполнен такими строками:

2018-03-22 14:51:46 +10 app=[н/д] host=127.0.0.1(56046) pid=26412 db=template1 |ВАЖНО: пользователь «postgres» не прошёл проверку подлинности (по паролю)

2018-03-22 14:51:46 +10 app=[н/д] host=127.0.0.1(56046) pid=26412 db=template1 |ПОДРОБНОСТИ: Пароль не подходит для пользователя «postgres». Подключение соответствует строке 86 в pg_hba.conf: «host all all 127.0.0.1/32 md5»

pid всегда разный. netstat -tpn4 -c | grep :5432 показывает это соединение сразу в статусе TIME_WAIT. Получается, процесс создается, пытается подключиться к постгресу и при неудаче сразу завершается.

Возможно ли как-нибудь поймать такой процесс по имени?

каждую минуту что-то пытается подключиться

Делов-то, цикл на пару минут с тем же netstat с выхлопом в лог.

Возможно ли как-нибудь поймать такой процесс по имени?

Но вот смысл?

anc ★★★★★ ()

Поставь постгрес на паузу сигналом SIGSTOP и тогда netstat покажет, кто там у тебя завелся.

До сигнала SIGCONT процесс ведёт себя как зависший и не сможет дать отлуп на коннект.

legolegs ★★★★★ ()
Ответ на: комментарий от legolegs

Извращенец. С таким же успехом и -j DROP работать будет. И еще куча вариантов с остановкой сервиса.

anc ★★★★★ ()
Ответ на: комментарий от anc

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

legolegs ★★★★★ ()

auditd

Ты можешь поставить хук на системный вызов connect с помощью auditctl - все процессы инициализирующие новое подключение будут записаны.

sparks ★★★ ()
Ответ на: комментарий от Deleted

Эта команда ведь выведет соединение в состоянии TIME_WAIT. А как его поймать раньше?

alexeytur ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.