Wie „schließe“ man offene Ports?

Wie „schließe“ man offene Ports?

Seit ich vor ein paar Tagen viel Wert auf die Sicherheit meiner Daten lege, passiert nmapmir Folgendes:nmap 127.0.0.1

Überraschung, Überraschung, ich habe viele aktive Dienste, die auf localhost hören:

$ nmap 127.0.0.1
Starting Nmap 5.21 ( http://nmap.org ) at 2013-05-05 00:19 WEST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00025s latency).
Not shown: 993 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
25/tcp  open  smtp
53/tcp  open  domain
111/tcp open  rpcbind
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
631/tcp open  ipp

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

Das einzige, das ichkönnteVerwendung ist ssh(obwohl es wahrscheinlich nicht gut konfiguriert ist, ich werde diese Angelegenheit einer anderen Frage widmen).

Soweit ich weiß, ippverwendet CUPS zum Freigeben meiner Drucker ein Protokoll. Ich muss sie nicht freigeben, sondern nur von einem Server auf die Drucker zugreifen.

Dies ist die Ausgabe netstat -lntupdes Root-Benutzers beim Entfernen der Localhost-Adressen:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      497/sshd        
tcp        0      0 0.0.0.0:17500           0.0.0.0:*               LISTEN      2217/dropbox    
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:50022           0.0.0.0:*               LISTEN      1021/rpc.statd  
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      892/smbd        
tcp        0      0 0.0.0.0:111             0.0.0.0:*               LISTEN      906/rpcbind     
tcp6       0      0 :::22                   :::*                    LISTEN      497/sshd        
tcp6       0      0 :::42712                :::*                    LISTEN      1021/rpc.statd  
tcp6       0      0 :::445                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::139                  :::*                    LISTEN      892/smbd        
tcp6       0      0 :::111                  :::*                    LISTEN      906/rpcbind     
udp        0      0 0.0.0.0:51566           0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:68              0.0.0.0:*                           7362/dhclient   
udp        0      0 0.0.0.0:111             0.0.0.0:*                           906/rpcbind     
udp        0      0 192.168.1.255:137       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:137        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:137             0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.255:138       0.0.0.0:*                           1782/nmbd       
udp        0      0 192.168.1.67:138        0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:138             0.0.0.0:*                           1782/nmbd       
udp        0      0 0.0.0.0:655             0.0.0.0:*                           906/rpcbind     
udp        0      0 0.0.0.0:17500           0.0.0.0:*                           2217/dropbox    
udp        0      0 0.0.0.0:5353            0.0.0.0:*                           615/avahi-daemon: r
udp        0      0 0.0.0.0:34805           0.0.0.0:*                           1021/rpc.statd  
udp6       0      0 :::40192                :::*                                1021/rpc.statd  
udp6       0      0 :::111                  :::*                                906/rpcbind     
udp6       0      0 :::655                  :::*                                906/rpcbind     
udp6       0      0 :::5353                 :::*                                615/avahi-daemon: r
udp6       0      0 :::42629                :::*                                615/avahi-daemon: r

Wie konfiguriere ich diese Dienste, sodass sie nur dann auf die Außenwelt hören, wenn ich sie tatsächlich verwende?

Antwort1

Bestimmen Sie Ihre Belichtung

Wenn man die Ausgabe des netstatBefehls betrachtet, sieht es nach einer Menge von Diensten aus, aber in Wirklichkeit ist es nur eine sehr kurze Liste:

$ netstat -lntup | awk '{print $6 $7}'|sed 's/LISTEN//'| cut -d"/" -f2|sort|uniq|grep -v Foreign
avahi-daemon:r
dhclient
dropbox
nmbd
rpcbind
rpc.statd
smbd
sshd

Sich einen Überblick verschaffen

Wenn ich mir diese Liste anschaue, gibt es mehrere Dienste, von denen ich die Finger lassen würde.

  • dhclient
    • Der DHCP-Server-Daemon ist für den Erhalt Ihrer IP-Adresse zuständig und muss über diesen verfügen.
  • Dropbox
    • offensichtlich Dropbox, haben müssen

Beginnen Sie mit der Reduzierung - deaktivieren Sie Samba

Sie können Samba wahrscheinlich sofort deaktivieren, da es für zwei der oben genannten Dienste zuständig ist nmbd. smbdEs ist fraglich, ob Sie das wirklich auf einem Laptop ausführen müssen, egal ob auf dem lokalen Host oder Ihrer IP, die Ihrem Netzwerk zugewandt ist.

Um zu überprüfen, ob sie ausgeführt werden, können Sie den folgenden Befehl verwenden status:

$ status nmbd
nmbd start/running, process 19457
$ status smbd
smbd start/running, process 19423

Das Ausschalten von Diensten kann angesichts der Veränderungen bei Upstart, /etc/rc.d und Business verwirrend sein. Daher kann es schwierig sein, herauszufinden, welcher Dienst unter welcher Technologie steht. Für Samba können Sie den folgenden serviceBefehl verwenden:

$ sudo service nmbd stop
nmbd stop/waiting
$ sudo service smbd stop
smbd stop/waiting

Jetzt geht es los:

$ status nmbd 
nmbd stop/waiting
$ status smbd 
smbd stop/waiting

Halten Sie sie fern ... dauerhaft

Damit sie ausgeschaltet bleiben, verwende ich dieses Tool, sysv-rc-confum Dienste von einer Konsole aus zu verwalten. Es funktioniert besser als die meisten anderen. Damit können Sie überprüfen, welche Dienste Sie ausführen möchten und in welchem ​​Runlevel sie gestartet/gestoppt werden sollen:

$ sudo apt-get install sysv-rc-conf

   ss von sysv-rc-conf

Deaktivieren des Rests dessen, was NICHT benötigt wird

Nachdem Samba nun ausgeschaltet ist, bleibt uns Folgendes:

  • Avahi-Daemon
    • Teil von Zeroconf (Plug-and-Play), schalten Sie es aus
  • rpcbind
    • wird für NFS benötigt - schalten Sie es aus
  • rpc.statd
    • wird für NFS benötigt - schalten Sie es aus

Für die verbleibenden 3 können Sie dieselben Schritte ausführen, die wir für Samba getan haben, um sie ebenfalls auszuschalten.

TASSEN?

Um CUPS auszuschalten (was Sie übrigens nicht wirklich brauchen), können Sie den Dienst auf die gleiche Weise ausschalten und dann seinen Start verhindern. Um drucken zu können, müssen Sie jeden Drucker auf Ihrem System einzeln einrichten. Sie können dies über die system-config-printerGUI tun.

Diese Dienste auf Anfrage bereitstellen?

Dies ist eigentlich der Kern Ihrer Frage, aber es gibt keine Patentlösung, um diese Dienste „intelligent“ zu machen, sodass sie nur dann ausgeführt werden, wenn sie verwendet werden, und nicht ständig.

#1 - systemd vs. upstart

Ein Teil davon ist die derzeitige Spaltung zwischensystemdUndEmporkömmlingEs gibt einen guten Überblick über die beiden konkurrierenden TechnologienHier.

Beide Technologien versuchen, leicht unterschiedliche Dinge zu tun. Meiner Meinung nach scheint systemd aufgrund ihrer Funktionsumfänge eher auf Server ausgerichtet zu sein, während upstart eher auf den Desktop ausgerichtet zu sein scheint. Mit der Zeit wird sich das meiner Meinung nach von selbst erledigen und beide Dienste werden stabil und funktionsreich sein.

Letztendlich werden beide Dienste das Starten und Stoppen bei Bedarf für alle von ihnen verwalteten Dienste anbieten. Funktionen wie diese StopWhenUnneeded=yesgibt es beispielsweise bereits systemd, es ist also nur eine Frage der Zeit, bis diese Funktionen ausgearbeitet werden.

#2 - Service-Unterstützung

Einige Dienste unterstützen das Stoppen/Starten nicht sehr gut oder gar nicht. Dienste wie diese sshdscheinen wenig sinnvoll als On-Demand-Dienste zu laufen, insbesondere wenn sie stark genutzt werden. Außerdem bieten einige Dienste wie Apache Mechanismen in sich, um mehr oder weniger ihrer eigenen Listener zu starten, die sich selbst verwalten. Es ist also unklar, wie On-Demand-Dienste, die von diesen Arten von Diensten bereitgestellt werden, sich in diese integrieren lassen systemdoder upstartwie sie sich in diese integrieren lassen.

Ist das wirklich notwendig?

Sie werden von beiden Seiten hören, dass das übertrieben ist oder dass Sie einen minimalistischen Ansatz wählen und nur das installieren sollten, was Sie unbedingt brauchen, aber es ist wirklich eine persönliche Entscheidung. Zu verstehen, dass diese Dienste da sind und was sie tun, ist wirklich wichtig. Letztendlich ist ein Computer ein Werkzeug, und indem Sie ein Unix-System verwenden, zeigen Sie bereits, dass Sie bereit sind, hinter die Kulissen zu schauen und zu verstehen, was Ihren Computer antreibt.

Ich würde sagen, dass diese Art der Befragung genau die Geisteshaltung ist, die man anstreben sollte, wenn man sich mit Computern und Unix im Allgemeinen beschäftigt.

Verweise

Antwort2

127.0.0.1 ist nicht die „Außenwelt“, es sieht sich im Haus um.

Überprüfen Sie Ihre Firewall-Konfiguration (heutzutage iptables in Linux), die meisten davon sollten von außen nicht zugänglich sein.

Führen Sie keine Dienste aus, die Sie nicht benötigen. Deinstallieren Sie sämtliche nicht benötigte Software.

ÄndernPasswörterum stärker zu sein. Überprüfen Sie Ihre Systemnutzung, jagen Sie nicht wahllos jeder interessanten Website hinterher. Überprüfen Sie die Anti-Phishing-, Anti-Scripting- usw.-Konfiguration des Browsers. Überprüfen Sie Ihre Nutzung von SSH und su/sudo.

Aber vor allem ist übermäßige Paranoia kontraproduktiv. Lassen Sie sich nicht von derGlanz der Technik.

Antwort3

Sie können zwar einzelne Dienste „schließen“, aber vielleicht ist es einfacher, eine Firewall einzurichten. Fast alle gängigen Distributionen (Ubuntu, Debian, Centos usw.) bieten integrierte Unterstützung für iptables.

Ein einfacher Regelsatz für den Einstieg: (Sie können diese einfach in eine Eingabeaufforderung eingeben; um sie dauerhaft zu machen, fügen Sie sie Ihren Startskripten hinzu oder teilen Sie uns mit, welche Distribution Sie verwenden. Unter Centos beispielsweise: „system-config-firewall“ ist eine gute Benutzeroberfläche zum Konfigurieren von Iptables-Regeln.)

iptables -A INPUT -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -j DROP

Grundsätzlich gilt: SSH-Eingang zulassen, alles andere löschen.

Ihre INPUT-Kette sieht nun folgendermaßen aus:

  • Wenn ein Paket für ‚ssh‘ auf meinen Computer gelangt, lasse es zu
  • Wenn ein Paket keine der vorherigen Regeln erfüllt, werfen Sie es einfach weg.

Wenn Sie dann zu einem späteren Zeitpunkt Samba (Windows File Sharing) zulassen möchten, können Sie Folgendes ausführen:

iptables -I INPUT-p tcp --dport 465 -j ACCEPT

Das -Istellt der Liste eine Regel voran; -Ahängt eine Regel an. Ihre Kette sieht jetzt also so aus:

  • Wenn ein Paket für 'Samba' auf meinen Computer gelangt, dann erlaube es
  • Wenn ein Paket für ‚ssh‘ auf meinen Computer gelangt, lasse es zu
  • Wenn ein Paket keine der vorherigen Regeln erfüllt, werfen Sie es einfach weg.

Die INPUTKette bezieht sich auf Pakete, die für Ihr System bestimmt sind. Andere Ketten sind OUTPUTfür Pakete von Ihrem Computer, die ins Internet gehen, und FORWARDfür Pakete, die durch Ihren Computer geleitet werden (das sind Pakete, die Ihren Computer „durchlaufen“, wie der Transitbereich eines Flughafens – Dinge, die nicht durch INPUTIhren Computer laufen, weil sie nicht in Ihren Computer gelangen).

Als letzte Anmerkung: nmap'ing 127.0.0.1 ist nicht sehr nützlich; viele Dienste sind nur von 127.0.0.1 und keiner anderen Adresse aus zugänglich. Wenn Sie keine andere Maschine haben, von der aus Sie nmap ausführen können, versuchen Sie es mit Shields UP! von Gibson Research (https://www.grc.com/shieldsup) - das ist ein kostenloses, online verfügbares nmap-lite. Oder fügen Sie einen Kommentar mit Ihrer IP/E-Mail-Adresse hinzu und ich werde Sie per nmap anmelden :)

verwandte Informationen