Vor ein paar Tagen habe ich angefangen, nmap
mich sehr um meine Datensicherheit zu kümmern.nmap 127.0.0.1
Überraschung, Überraschung, ich habe viele aktive Dienste, um localhost zu 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 ich verwenden könnte , ist ssh
(obwohl es wahrscheinlich nicht gut konfiguriert ist, werde ich diese Angelegenheit auf eine andere Frage beschränken).
Soweit ich weiß ipp
, verwendet CUPS das Protokoll, um meine Drucker freizugeben. Ich muss sie nicht freigeben, sondern greife nur von einem Server auf Drucker zu.
Dies ist die Ausgabe des netstat -lntup
Root-Benutzers, der die localhost-Adressen entfernt:
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 so, dass sie nur dann die Außenwelt abhören, wenn ich sie tatsächlich benutze?
netstat -lntup
-l = listen -n = number -t = tcp -u = udp -p = pid. Zeigt an, welche Prozesse ausgeführt werden und welche Ports verfügbar gemacht werden. Alles, was für 127.0.0.1 offen ist, ist für das Internet nicht zugänglich.eth0
. B. ?), Indem Siesmb.conf
die beiden Anweisungenbind interfaces only = yes
und hinzufügeninterfaces = eth0
.Antworten:
Bestimmen Sie Ihre Exposition
Unter Berücksichtigung Ihrer Ausgabe aus dem
netstat
Befehl ist eine sehr kurze Liste, die nach vielen Diensten aussieht:Sich ein Stück Land zulegen
Wenn ich mir diese Liste ansehe, gibt es einige Dienste, die ich in Ruhe lassen würde.
Reduziere es - deaktiviere Samba
Sie können wahrscheinlich Samba von Anfang an deaktivieren, es macht 2 der oben genannten Dienste aus
nmbd
undsmbd
. Es ist fraglich, ob das wirklich auf einem Laptop ausgeführt werden muss, egal ob auf dem Localhost oder auf Ihrer IP-Adresse in Ihrem Netzwerk.Um zu überprüfen, ob sie ausgeführt werden, können Sie den folgenden Befehl verwenden
status
:Das Ausschalten von Diensten kann verwirrend sein, wenn man den aktuellen Geschäftsverlauf mit /etc/rc.d betrachtet. Daher kann es schwierig sein, herauszufinden, welcher Dienst unter welcher Technologie ausgeführt wird. Für Samba können Sie den
service
Befehl verwenden:Jetzt geht es los:
Halten Sie sie auf Dauer fern
Um sie davon abzuhalten, benutze ich dieses Tool. Um
sysv-rc-conf
Dienste von einer Konsole aus zu verwalten, funktioniert es besser als die meisten anderen. Hier können Sie überprüfen, welche Dienste Sie ausführen möchten und auf welcher Run-Ebene sie gestartet / gestoppt werden sollen:Deaktivieren Sie den Rest dessen, was NICHT benötigt wird
Also, jetzt, wo Samba weg ist, bleibt uns folgendes übrig:
Für die restlichen 3 kannst du die gleichen Dinge tun, die wir auch für Samba getan haben, um sie auszuschalten.
TASSEN?
Zum Deaktivieren von CUPS, das Sie übrigens nicht wirklich benötigen, können Sie den gleichen Vorgang ausführen, bei dem Sie den Dienst deaktivieren und anschließend den Start deaktivieren. Um drucken zu können, müssen Sie jeden Drucker einzeln auf Ihrem System einrichten. Sie können dies über die
system-config-printer
GUI tun .Machen Sie diese Dienste auf Anfrage?
Dies ist wirklich der Kern Ihrer Frage, aber es gibt keine Patentlösung, um diese Dienste "intelligent" zu machen, damit sie ausgeführt werden, wenn sie verwendet werden, und nicht die ganze Zeit.
# 1 - systemd vs. upstartEin Teil davon ist die aktuelle Aufteilung zwischen systemd und upstart . Es gibt einen guten Überblick über die 2 konkurrierenden Technologien hier .
Beide Technologien versuchen, etwas andere Dinge zu tun, IMO scheint systemd aufgrund ihrer Funktionsvielfalt eher auf Server ausgerichtet zu sein, während Upstart eher auf die Desktop-Rolle abzielt. Mit der Zeit wird dies von selbst funktionieren, IMO, und beide Dienste werden stabil und funktionsreich sein.
Schließlich werden beide Dienste bei Bedarf für alle von ihnen verwalteten Dienste ein umfassendes Starten und Stoppen anbieten. Funktionen, wie sie beispielsweise
# 2 - ServiceunterstützungStopWhenUnneeded=yes
bereits vorhanden sindsystemd
, sind nur eine Frage der Zeit, bis diese Funktionen umgesetzt sind.Einige Dienste unterstützen das Stoppen / Starten nicht sehr gut, wenn überhaupt. Dienste wie
sshd
scheinen wenig sinnvoll zu sein, um sie bei Bedarf auszuführen, insbesondere wenn sie intensiv genutzt werden. Einige Dienste wie Apache stellen Mechanismen in sich bereit, um mehr oder weniger eigene Listener zu aktivieren, die sich selbst verwalten. Es ist daher unklar, wie On-Demand- Dienste von diesen Arten von Diensten bereitgestellt werdensystemd
oderupstart
sich in diese integrieren werden.Ist das wirklich nötig?
Sie werden von beiden Seiten hören, dass dies übertrieben ist oder dass Sie nur das installieren sollten, was Sie unbedingt benötigen, aber es ist wirklich eine persönliche Entscheidung. Zu verstehen, dass diese Dienste vorhanden sind und was sie tun, ist wirklich wichtig. Letztendlich ist ein Computer ein Werkzeug, und wenn Sie ein Unix-System verwenden, sagen Sie bereits, dass Sie bereit sind, einen Blick hinter die Kulissen zu werfen und zu verstehen, was Ihren Computer zum Ticken bringt.
Ich würde sagen, dass diese Art der Befragung genau die Denkweise ist, die man im Umgang mit Computern und Unix im Allgemeinen anstreben sollte.
Verweise
systemd - wikipedia
[10: http://tech.cueup.com/blog/2013/03/08/running-daemons/
quelle
127.0.0.1 ist nicht die "Außenwelt", es schaut sich im Haus um.
Überprüfen Sie Ihre Firewall-Konfiguration (iptables in Linux heute). Die meisten von ihnen sollten nicht von außen zugänglich sein.
Führen Sie keine Dienste aus, die Sie nicht benötigen. Deinstallieren Sie alle nicht benötigten Programme.
Ändern Sie die Passwörter , um sicherer zu sein. Überprüfen Sie die Nutzung des Systems und verfolgen Sie keine interessanten Websites nach dem Zufallsprinzip. Überprüfen Sie die Konfiguration des Browsers (Anti-Phising, Anti-Scripts usw.). Überarbeiten Sie die Verwendung von SSH und su / sudo.
Vor allem aber ist exzessive Paranoia kontraproduktiv. Lass dich nicht vom Glanz der Technologie fangen .
quelle
Sie können zwar einzelne Dienste "schließen", es ist jedoch möglicherweise einfacher, eine Firewall einzurichten. Fast alle gängigen Distributionen (Ubuntu, Debian, Centos usw.) unterstützen integrierte iptables.
Ein einfacher Regelsatz für den Anfang: (Sie können diese einfach an einer Eingabeaufforderung eingeben; um sie dauerhaft zu machen, fügen Sie sie Ihren Startskripten hinzu oder teilen Sie uns mit, welche Distribution Sie verwenden. Auf Centos zum Beispiel: system-config -Firewall ist eine gute Benutzeroberfläche zum Konfigurieren von Iptables-Regeln.
Grundsätzlich - erlaube ssh inbound; alles andere fallen lassen.
Ihre INPUT-Kette sieht jetzt so aus:
Sagen Sie dann zu einem späteren Zeitpunkt, Sie möchten "Samba" (Windows-Dateifreigabe) zulassen: Sie könnten ausführen
Das
-I
Voranstellen und Regeln der Liste;-A
hängt eine Regel an. So sieht deine Kette jetzt aus:Die
INPUT
Kette bezieht sich auf Pakete, die für Ihr System bestimmt sind. Andere Ketten sindOUTPUT
für Pakete von Ihrem Computer, die ins Internet gehen, undFORWARD
für Pakete, die über Ihren Computer geleitet werden (das sind Pakete, die Ihren Computer wie den Transitbereich eines Flughafens "durchlaufen" - Dinge, die nicht darauf zurückzuführen sind,INPUT
dass sie nicht in Ihren Computer gelangen ).Als Abschiedsnotiz: nmap'ing 127.0.0.1 ist nicht sehr nützlich; Viele Dienste sind nur über 127.0.0.1 und keine andere Adresse zugänglich. Wenn Sie keinen anderen Rechner haben, können Sie nmap ausführen - versuchen Sie es mit Gibson Research 'Shields UP! ( https://www.grc.com/shieldsup ) - das ist eine kostenlose online nmap-lite. Oder füge einen Kommentar mit deiner IP / E-Mail hinzu und ich melde dich :)
quelle