Offene Ports bei Ubuntu

Offene Ports bei Ubuntu

Ich habe vor Kurzem zwei Ubuntu-Server-Maschinen installiert und möchte die offenen Ports auf den Maschinen finden.

Wenn ich nmapvon meinem Rechner (Ubuntu 11.10) aus laufe, stelle ich fest, dass beide Server

135/tcp  filtered msrpc
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata

Ich habe diese Ports nie geöffnet. Ich habe nur LAMP und SAMBA installiert. Warum sind diese Ports geöffnet?

Die vollständige Liste der offenen Ports lautet:

22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
80/tcp  open  http
110/tcp open  pop3
135/tcp  filtered msrpc
139/tcp  open     netbios-ssn
143/tcp  open     imap
445/tcp  open     microsoft-ds
993/tcp  open     imaps
995/tcp  open     pop3s
4444/tcp filtered krb524
4662/tcp filtered edonkey
5000/tcp filtered upnp
5631/tcp filtered pcanywheredata

Die Frage ist, warum diese Ports geöffnet sind: 135/tcp filtered msrpc, 4444/tcp filtered krb524, 4662/tcp filtered edonkey. 5000/tcp filtered upnp, 5631/tcp filtered pcanywheredata. Ich habe diese Ports nie geöffnet. Ich habe nur LAMP und SAMBA installiert.

Scheint diese Liste sicher zu sein?

Antwort1

Sie können eine Liste der Ports aus der Datei /etc/services abrufen.

cat /etc/services | grep 137 (example)

Beispiel

Welche Ports müssen für die Kommunikation mit Samba geöffnet sein?

netbios-ns - 137 # NETBIOS Name Service

netbios-dgm - 138 # NETBIOS Datagram Service

netbios-ssn - 139 # NETBIOS session service

microsoft-ds - 445 # if you are using Active Directory

Führen Sie diesen Befehl ausnetstat -anltp | grep "LISTEN"

Der typische Webserver, der FTP, SSH und MySQL ausführt, gibt folgende Ausgabe aus:

tcp     0   0 127.0.0.1:3306    0.0.0.0:*   LISTEN   21432/mysqld
tcp     0   0 0.0.0.0:80        0.0.0.0:*   LISTEN   4090/apache2
tcp     0   0 0.0.0.0:22        0.0.0.0:*   LISTEN   7213/sshd
tcp6    0   0 :::21             :::*        LISTEN   19023/proftpd
tcp6    0   0 :::22             :::*        LISTEN   7234/sshd

Antwort2

Ihre Frage ist recht allgemein und „sicher“ ist relativ.

Wenn Sie einen Server installieren und einen Port öffnen, treten immer potenzielle Schwachstellen auf.

Wenn Sie einen Server (SSH, Samba) installieren und den Server starten (normalerweise werden sie standardmäßig beim Booten gestartet), öffnen Sie einen Port.

Bei jedem Server (SSH, Samba, HTTP) können Sie Konfigurationsänderungen vornehmen, um die Sicherheit zu erhöhen.

Für SSH könnte dies die Verwendung von Schlüsseln (und Deaktivieren von Passwörtern), TCPWrapper, eine Firewall usw. umfassen.

Beim Einsatz einer Firewall gibt es 3 allgemeine Strategien

1) Alle zulassen und IPs mit schlechtem Verhalten auf die schwarze Liste setzen. Ein Beispiel hierfür wäre http. Im Allgemeinen führen Sie http als öffentlichen Server aus, lassen alle IPs zu und setzen diejenigen auf die schwarze Liste, die Ihren Server mit Spam belästigen.

2) Alles ablehnen und eine Whitelist zulassen. Ein Beispiel hierfür wäre ssh.

3) Begrenzung. Manchmal begrenzen Sie die Rate einer Verbindung oder die Anzahl der Pings pro Sekunde.

Ich hoffe, das hilft Ihnen beim Einstieg. Vielleicht möchten Sie sehen

https://help.ubuntu.com/11.10/serverguide/C/index.html

https://help.ubuntu.com/community/Security

Oder stellen Sie eine spezifische Frage zu einem bestimmten Server.

Antwort3

„Gefiltert“ bedeutet nicht unbedingt, dass der Port auf dem Zielhost offen ist.

Tatsächlich könnte es sogar überhaupt nichts bedeuten.

Wenn sich beispielsweise zwischen Ihrem Ausführungsrechner nmapund dem Ziel eine Firewall befindet und diese Firewall den Port 5000 aktiv herausfiltert, wird 5000 in Ihrer Liste als „gefiltert“ angezeigt, ohne dass der Zielhost jemals Datenverkehr an diesem Port feststellt. Daher ist es völlig irrelevant, ob der Port auf dem Ziel geöffnet ist oder nicht.

Eine endgültige Liste der offenen Ports auf einem Server erhalten Sie, indem Sie Folgendes versuchen:

sudo netstat -lnp --tcp --udp

-l : only show listening ports
-n : don't bother looking up DNS hostnames
-p : show which processes have the port open
--tcp : show tcp ports
--udp : show udp ports

Sie könnten „und“ weglassen --tcp, --udpaber dann erhalten Sie eine Menge irrelevanter lokaler Dateisystem-Socket-Informationen, auf die über ein Netzwerk nicht zugegriffen werden kann.

sudo-pist für die ordnungsgemäße Funktion erforderlich , andernfalls wird nur -für alle Prozesse gedruckt, die Ihrem Benutzer nicht gehören.

Antwort4

Da netstatim Gegensatz zu nicht mehr standardmäßig installiert wird, lsofdachte ich, ich könnte eine Option hinzufügen, die sofort funktioniert:

sudo lsof -nP -iTCP -sTCP:LISTEN

verwandte Informationen