Есть один вопрос. Он скорее всего много раз был, но тем не менее.
Как получить сведения обо всех соединениях, что в данный момент с сервером установлены? Я выполняю команду netstat от суперпользователя с ключём -a, она выдаёт такую информацию (излишняя информация заменена символами %):
iskatel@gate:~$ sudo netstat -4apn
[sudo] password for root:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 192.168.121.254:53 0.0.0.0:* LISTEN 2233/named
tcp 0 0 192.168.21.254:53 0.0.0.0:* LISTEN 2233/named
tcp 0 0 83.%%%.%%%.236:53 0.0.0.0:* LISTEN 2233/named
tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 2233/named
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 2412/sshd
tcp 0 0 127.0.0.1:953 0.0.0.0:* LISTEN 2233/named
tcp 0 0 0.0.0.0:445 0.0.0.0:* LISTEN 4541/smbd
tcp 0 0 0.0.0.0:139 0.0.0.0:* LISTEN 4541/smbd
tcp 0 240 83.%%%.%%%.236:22 83.149.8.170:32327 ESTABLISHED 10171/sshd: iskatel
udp 0 0 192.168.121.254:53 0.0.0.0:* 2233/named
udp 0 0 192.168.21.254:53 0.0.0.0:* 2233/named
udp 0 0 83.%%%.%%%.236:53 0.0.0.0:* 2233/named
udp 0 0 127.0.0.1:53 0.0.0.0:* 2233/named
udp 0 0 0.0.0.0:67 0.0.0.0:* 2450/dhcpd
udp 0 0 192.168.21.255:137 0.0.0.0:* 4537/nmbd
udp 0 0 192.168.21.254:137 0.0.0.0:* 4537/nmbd
udp 0 0 0.0.0.0:137 0.0.0.0:* 4537/nmbd
udp 0 0 192.168.21.255:138 0.0.0.0:* 4537/nmbd
udp 0 0 192.168.21.254:138 0.0.0.0:* 4537/nmbd
udp 0 0 0.0.0.0:138 0.0.0.0:* 4537/nmbd
udp 0 0 0.0.0.0:37330 0.0.0.0:* 2450/dhcpd
udp 0 0 0.0.0.0:1194 0.0.0.0:* 4665/openvpn
raw 0 0 0.0.0.0:1 0.0.0.0:* 7 2450/dhcpd
А ведь ещё есть ICMP-пакеты по которым вообще никакой информации. То есть меня могут ICMP-флудом досить, а я даже знать об этом не буду.
А ещё есть второй сервер на FreeBSD в которой я не очень разбираюсь и там netstat не имеет ключа -p, то есть я не могу получить никакой информации какие именно программы взаимодействуют с сетью.
Вобщем, мой вопрос: как полностью контролировать TCP, UDP и ICMP соединения?