Я возился с DTrace в Mac OS X и нашел следующий скрипт, который выводит информацию об устанавливаемых соединениях:
$ cat script.d
syscall::connect:entry
{
printf("execname: %s\n", execname);
printf("pid: %d\n", pid);
printf("sockfd: %d\n",arg0);
socks = (struct sockaddr*)copyin(arg1, arg2);
hport = (uint_t)socks->sa_data[0];
lport = (uint_t)socks->sa_data[1];
hport <<= 8;
port = hport + lport;
printf("Port number: %d\n", port); printf("IP address: %d.%d.%d.%d\n",
socks->sa_data[2],
socks->sa_data[3],
socks->sa_data[4],
socks->sa_data[5]);
printf("======\n");
}
Запускаю в одном окне:
$ sudo dtrace -s ./script.d
Затем я перехожу по ssh на другую машину из другого окна. Я получаю этот вывод из своего окна dtrace:
CPU ID FUNCTION:NAME
0 18696 connect:entry execname: ssh
pid: 5446
sockfd: 3
Port number: 22
IP address: 192.168.0.207
======
0 18696 connect:entry execname: ssh
pid: 5446
sockfd: 5
Port number: 12148
IP address: 109.112.47.108
======
^C
Первый IP-адрес, который я могу объяснить (192.168.0.207), это машина, к которой я подключаюсь. А что там с машиной 109.112.47.108? Он не отображается ни в tcpdump, ни в netstat -an
Что-то связано с моим кодом dtrace или моим пониманием того, как работает системный вызов connect?
Думаю, я понял это, это сценарий dtrace, который я взял с сайта Solarius, нужно изменить для BSD.
Это IP-адрес vodafone в Италии. Вы подключены к интернет-провайдеру в Европе / Италии? Если нет, лучше начни волноваться.
Попробуйте выполнить трассировку по этому адресу и посмотрите, где он находится. Если до него всего пара прыжков, это, вероятно, брандмауэр или коммутатор.
Порт 12148 выглядит как проблема с вирусом / трояном - лучше всего очистить зараженную систему как можно скорее
Что значит grep 'sshd.*from' secure.log
сказать? Если кто-то, кроме вас, вошел в систему через SSH, у вас проблема. Если нет, скорее всего, неудачная попытка перебора. Вы используете DenyHosts или Fail2Ban?
Я не могу найти никакой документации по syscall :: connect, но похоже, что он распечатывает оба конца сокета. Что происходит, когда вы запускаете сценарий и входите по ssh с другой машины?
Как бы то ни было, этот IP-адрес является частью сети vodafone.it. Обратите внимание:
> host -a 109.112.47.108
Trying "108.47.112.109.in-addr.arpa"
Host 108.47.112.109.in-addr.arpa. not found: 3(NXDOMAIN)
Received 116 bytes from 68.94.156.1#53 in 180 ms
> host -a 47.112.109.in-addr.arpa
Trying "47.112.109.in-addr.arpa"
Received 112 bytes from 68.94.156.1#53 in 388 ms
Trying "47.112.109.in-addr.arpa.domain_not_set.invalid"
Host 47.112.109.in-addr.arpa not found: 3(NXDOMAIN)
Received 139 bytes from 68.94.156.1#53 in 859 ms
> host -a 112.109.in-addr.arpa
Trying "112.109.in-addr.arpa"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20054
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;112.109.in-addr.arpa. IN ANY
;; ANSWER SECTION:
112.109.in-addr.arpa. 28800 IN SOA mivsx030.net.vodafone.it. hostmaster.vodafone.it. 9 10800 3600 2592000 900
112.109.in-addr.arpa. 28800 IN NS mivsx030.net.vodafone.it.
112.109.in-addr.arpa. 28800 IN NS gmigdns006.net.vodafone.it.
Received 148 bytes from 68.94.156.1#53 in 373 ms