Bei OS X ssh wird eine seltsame IP-Adresse angezeigt

Bei OS X ssh wird eine seltsame IP-Adresse angezeigt

Ich habe mit DTrace unter Mac OS X herumgespielt und das folgende Skript gefunden, das Informationen über hergestellte Verbindungen ausgibt:

$ Katze Skript.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");
}

Ich führe es in einem Fenster aus:
$ sudo dtrace -s ./script.d

Dann stelle ich von einem anderen Fenster aus per SSH eine Verbindung zu einem anderen Rechner her. In meinem dtrace-Fenster erhalte ich folgende Ausgabe:

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

Die erste IP-Adresse, die ich erklären kann (192.168.0.207), ist die Maschine, mit der ich mich verbinde. Aber was ist mit der Maschine 109.112.47.108? Sie erscheint weder in tcpdump noch in netstat -an

Stimmt etwas mit meinem Dtrace-Code nicht oder mit meinem Verständnis der Funktionsweise des Connect-Systemaufrufs?

Antwort1

Ich glaube, ich habe es herausgefunden. Es liegt daran, dass das Dtrace-Skript, das ich von einer Solarius-Site heruntergeladen habe, für BSD geändert werden muss.

Antwort2

Versuchen Sie, einen Traceroute zu dieser Adresse durchzuführen und sehen Sie, wo sie sich befindet. Wenn sie nur ein paar Hops entfernt ist, handelt es sich wahrscheinlich um eine Firewall oder einen Switch.

Antwort3

Es handelt sich um eine Vodafone-IP-Adresse in Italien. Sind Sie mit einem ISP in Europa/Italien verbunden? Wenn nicht, sollten Sie sich Sorgen machen.

Antwort4

Was sagt das grep 'sshd.*from' secure.log? Wenn sich jemand außer Ihnen über SSH angemeldet hat, liegt ein Problem vor. Wenn nicht, liegt wahrscheinlich einerfolgloser Brute-Force-Versuch. Verwenden Sie DenyHosts oder Fail2Ban?

Ich kann keine Dokumentation zu syscall::connect finden, aber es sieht so aus, als ob beide Enden des Sockets ausgedruckt werden. Was passiert, wenn Sie das Skript ausführen und sich per SSH von einem anderen Computer aus anmelden?

verwandte Informationen