Сегодня заметил в логе веб-сервера lighttpd следующие странные строки:
localhost - - [11/Sep/2011:00:18:20 +0400] "GET HTTP/1.0" 400 349 "-" "-"
GET HTTP/1.0
Host: 127.0.0.1
Accept-Encoding: gzip
Connection: close
HTTP/1.0 400 Bad Request
Content-Type: text/html
Content-Length: 349
Connection: close
Date: Sat, 10 Sep 2011 19:17:50 GMT
Server: lighttpd/1.4.29
<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>400 - Bad Request</title>
</head>
<body>
<h1>400 - Bad Request</h1>
</body>
</html>
Пробовал:
- iptables -j LOG, ULOG - не записывает PID
- tcpdump и wireshark - не записывает PID
- netstat -cntp - не успевает поймать момент ESTABILISHED (получил много строк с TIME_WAIT и без указания имени программы):
tcp 0 0 127.0.0.1:47651 127.0.0.1:80 TIME_WAIT -
- systemtap - не разобрался, какую функцию ловить, чтобы можно было проверять целевой протокол, ip-адрес и порт, а также узнавать PID.
Как отловить басурмана (как минимум PID)?
Умеют ли вообще iptables и libpcap отлавливать PID процесса, отправляющего пакет, или они не работают на том уровне, на котором это возможно (как тогда работает nethogs)?