Странный IP-адрес, отображаемый в OS X ssh

Странный IP-адрес, отображаемый в OS X ssh

Я экспериментировал с DTrace на Mac OS X и нашел следующий скрипт, который выводит информацию об устанавливаемых соединениях:

$ cat скрипт.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?

решение1

Думаю, я разобрался: это скрипт dtrace, который я взял с сайта Solarius, его нужно изменить для BSD.

решение2

Попробуйте сделать traceroute к этому адресу и посмотреть, где он находится. Если он всего в паре переходов, то, вероятно, это брандмауэр или коммутатор.

решение3

Это IP-адрес Vodaphone в Италии. Вы подключены к интернет-провайдеру в Европе/Италии? Если нет, то лучше начать беспокоиться.

решение4

Что говорит grep 'sshd.*from' secure.log? Если кто-то кроме вас вошел через SSH, то у вас проблема. Если нет, то, скорее всего,неудачная попытка грубой силы. Вы используете DenyHosts или Fail2Ban?

Я не могу найти документацию по syscall::connect, но похоже, что он выводит оба конца сокета. Что происходит, когда вы запускаете скрипт и подключаетесь по ssh с другой машины?

Связанный контент