Я заметил, что один из серверов, которыми я управляю, показывает трафик на nethogs с внешних IP-адресов - несколько вчера из Италии и несколько сегодня из Кореи. Я отключил все службы на сервере, которые должны были создавать внешний трафик, но они все равно появились. Однако после дальнейшего изучения я не могу найти соединения в netstat.
Нижеследующее отредактировано, чтобы показать IP-адрес сервера 1.1.1.1 в сети 1.1.1.0/24.
nethogs выглядит примерно так:
PID USER PROGRAM DEV SENT RECEIVED
12345 root /user/bin/php eth0 7266 25921 B
12346 me sshd: me@pts/1 0 22200 B
? root 1.1.1.1:443-112.175.124.2:42910 0.0 4320 B
And a few others to devices on the LAN that I expect to be present...
Но когда я запускаю netstat -antpeu
, он выглядит так:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State User Inode PID/Program name
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN 0 780385 28327/cupsd
tcp 0 0 0.0.0.0:1234 0.0.0.0:* LISTEN 0 780488 28385/sshd
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 0 13072 2492/master
tcp 0 0 0.0.0.0:443 0.0.0.0:* LISTEN 0 732393 23099/openvpn
tcp 0 0 0.0.0.0:3551 0.0.0.0:* LISTEN 0 12007 2256/apcupsd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27 12857 2397/mysqld
tcp 0 0 0.0.0.0:58380 0.0.0.0:* LISTEN 29 10990 1973/rpc.statd
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN 0 10741 1913/rpcbind
tcp 0 0 1.1.1.1:1234 1.1.1.112:50248 ESTABLISHED 0 749495 24300/sshd
tcp 0 0 ::1:631 :::* LISTEN 0 780384 28327/cupsd
tcp 0 0 :::1234 :::* LISTEN 0 780490 28385/sshd
tcp 0 0 ::1:25 :::* LISTEN 0 13073 2492/master
tcp 0 0 :::444 :::* LISTEN 0 13725 2605/httpd
tcp 0 0 :::47266 :::* LISTEN 29 10996 1973/rpc.statd
tcp 0 0 :::111 :::* LISTEN 0 10744 1913/rpcbind
tcp 0 0 :::80 :::* LISTEN 0 13721 2605/httpd
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.1:34570 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55578 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55584 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58086 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58084 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58088 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58080 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55576 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55582 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.1:34568 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55580 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.31:55586 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58082 TIME_WAIT 0 0 -
tcp 0 0 ::ffff:1.1.1.1:80 ::ffff:1.1.1.35:58090 TIME_WAIT 0 0 -
udp 0 0 0.0.0.0:44358 0.0.0.0:* 29 10987 1973/rpc.statd
udp 0 0 127.0.0.1:877 0.0.0.0:* 0 10982 1973/rpc.statd
udp 0 0 0.0.0.0:111 0.0.0.0:* 0 10739 1913/rpcbind
udp 0 0 0.0.0.0:631 0.0.0.0:* 0 780388 28327/cupsd
udp 0 0 10.8.0.1:123 0.0.0.0:* 38 732403 2243/ntpd
udp 0 0 1.1.1.1:123 0.0.0.0:* 0 11996 2243/ntpd
udp 0 0 127.0.0.1:123 0.0.0.0:* 0 11995 2243/ntpd
udp 0 0 0.0.0.0:123 0.0.0.0:* 0 11988 2243/ntpd
udp 0 0 0.0.0.0:816 0.0.0.0:* 0 10740 1913/rpcbind
udp 0 0 :::34521 :::* 29 10993 1973/rpc.statd
udp 0 0 :::111 :::* 0 10742 1913/rpcbind
udp 0 0 fe80::21a:a0ff:fe56:5d2:123 :::* 0 11999 2243/ntpd
udp 0 0 ::1:123 :::* 0 11998 2243/ntpd
udp 0 0 :::123 :::* 0 11989 2243/ntpd
udp 0 0 :::816 :::* 0 10743 1913/rpcbind
Итак, что здесь происходит? 1) Сервер был скомпрометирован? Похоже, что-то генерирует внешний трафик, которого не должно быть ... Я также подозреваю, потому что, когда я блокирую один из IP-адресов через брандмауэр и маршрутизатор, появляется новый.
2) Почему подключения к внешним IP-адресам не отображаются в netstat?
3) Есть ли способ отследить, с какого PID они поступают? nethogs не показывает его, и iftop тоже.
РЕДАКТИРОВАТЬ: Я должен упомянуть 2 порта, на которых он отображается, - это 443 и 4040. Даже когда я пытаюсь закрыть их в iptables, соединения появляются.
Еще один способ найти PID - это использовать команду lsof, то есть: lsof -i: 443
Еще один способ - использовать ss команда, например: ss -o '(sport =: 443)' с использованием 'dport' для порта назначения и 'sport' для источника
или команду 'fuser', например: 'fuser tcp / 443'
Вы пробовали заглядывать в IP-адреса? Выявление каких-либо возможных сервисов на другой стороне, к которым может идти это соединение? Порты SRC / DST всегда одинаковы?
Вы можете запустить tcpdump или wirehark и начать сбор пакетов, а затем заблокировать уже установленные соединения, чтобы принудительно открыть новое, как вы это делали раньше.
Я ожидал, что это будет трафик SSL (443), но вы не узнаете этого, пока не изучите его. Если это SSL, и вы действительно хотите узнать, что это такое, вы можете попробовать выполнить захват MITM.