Существует ли утилита для Linux-сервера, которая может вывести список сетевых портов и протоколов, которые были активны за определенный период времени?
Например, я хотел бы узнать, какие порты и протоколы были активны хотя бы один раз на прошлой неделе. Ответ будет примерно таким: TCP/80, TCP/443, UDP/5678...
решение1
Вы можете установить и активировать auditd
. Добавьте эти правила в конфигурацию аудита:
-a always,exit -F arch=b64 -S connect -F key=CONNECT
-a always,exit -F arch=b64 -S bind -F key=BIND
-a always,exit -F arch=b64 -S socket -F key=SOCKET
-a always,exit -F arch=b64 -S listen -F key=LISTEN
-a always,exit -F arch=b64 -S shutdown -F key=SHUTDOWN
-a always,exit -F arch=b64 -S close -F key=CLOSE
и у вас будут журналы аудита, в которых вы сможете отслеживать системные вызовы, связанные с сокетами.
Если вы хотите найти сейчас старую информацию (и у вас ее нет audit
), я не думаю, что вы найдете соответствующую информацию в Linux.
решение2
Альтернативой трассировке внутри сетевого стека хостов является отслеживание трафика в сети.
Возьмите захват пакетов рассматриваемых интерфейсов. Либо на этом хосте, либо где-то на пути.
Существуют различные инструменты для анализа этого, определенно информация TCP и UDP и, возможно, некоторые сведения о приложениях. Wireshark бесплатен, но это далеко не единственный инструмент анализа пакетов.