Реєстрація вихідних з'єднань у міру їх виникнення


23

Чи є спосіб увійти до файлу всіх вихідних з'єднань, які створює процес? Мені відомо, netstatале це, здається, є більш швидким знімком моменту часу, а не тим, що працює і реєструє інформацію протягом певного періоду.

Мені потрібні лише IP або ім'я хоста, порт та процес встановлення з'єднання.


1
Ну, ви могли б зробити щось подібне watch -n 2 netstatтим часом, але це не правильне рішення, чи не так.
Ульріх Шварц

1
[Ця тема] [1] повинна відповісти на ваше запитання [1]: superuser.com/questions/34782/…
Форма життя інопланетян

Відповіді:


15

У Linux ви можете налаштувати підсистему аудиту для реєстрації кожної спроби встановлення мережевого з'єднання. Для отримання інформації про підсистему аудиту, прочитати auditctlсторінку людини або цей підручник або інші приклади на цьому сайті . auditdТоді встановіть пакет вашого дистрибутива, якщо потрібно

auditctl -A exit,always -S connect

Журнали є у /var/log/audit/audit.logвсіх дистрибутивах, про які я знаю. Ви також можете знайти їх з ausearch.


3
Мені потрібно було визначити, який процес здійснював вихідне з'єднання. Це зробили миттєво. Щоб уникнути затоплення журналів, після цього видаліть правило:auditctl -d exit,always -S connect
Майкл Хемптон,

Як перевірити журнали?
luckydonald

@luckydonaldless /var/log/audit/audit.log
Gilles 'SO- перестань бути злим'


3

У Linux ви можете використовувати ip_conntrackдля цього. Це модуль відстеження з’єднань, який зазвичай використовується для моніторингу з'єднань для незвичайно поводжуваних протоколів (наприклад, FTP), якими керує брандмауер / NAT-поле.

modprobe ip_conntrack
cat /proc/net/ip_conntrack

Ви можете підключити псевдофайл, щоб побачити встановлені з'єднання, а потім ще більше натисніть на вихідний IP-адресу, щоб побачити, коли він походить з вашого поля.


Питання може бути не обов'язково орієнтованим на Linux.
Карлсон

0

Я б розглядав можливість використання tcpdumpвихідного інтерфейсу, розглядаючи вихідні SYNзапити.

Якщо ви відчуваєте справжню пригоду, ви можете зробити такі утиліти: straceабо trussповідомити про всі connectсистемні дзвінки, відстежуючи виконання програми, але це трохи небезпечніше і має недоліки при роботі з багатопотоковими процесами.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.