Ein Bekannter hat eine E-Mai vom BSI (Bundesamt für Sicherheit in der Informationstechnik) erhalten. In dieser wurde er über den offenen RPC Port 111 auf seinem Server hingewiesen. Seine Fragen dazu:
- Was hat es damit auf sich?
- Habe ich ein Sicherheitsproblem auf meinem Server?
- Muss ich reagieren?
- Was muss ich auf meinem Server machen, damit der Port geschlossen bzw. gesichert wird?
Nachfolgend versuche ich diese grob zu beantworten.
Woher kommt die Information das mein RPC Port 111 offen ist?
Die Shadowserver Foundation (https://portmapperscan.shadowserver.org/) ist ein Projekt das nach dem offenen RPC Port 111 auf Servern im Internet schaut. Der Port 111 wird meistens über das Protokoll UDP für DDoS (Distributed Denial of Service) Angriffe genutzt. Leider ist er deshalb etwas in Verruf geraten, denn eigentlich hat er einen realen Nutzen.
Wofür wird der RPC Port 111 genutzt?
Der RPC Port 111 wird u.a. für die dynamische Portverwaltung der Dienste für remote Anfragen verwendet. Die bekanntesten Dienste die den RPC nutzen sind NFS (Network-File-System) und NIS (Network Information Service). Diese werden auf den meisten Servern jedoch gar nicht verwendet bzw. schon gar nicht nach außen ins Internet publiziert. Der Port lauscht zudem auf Netzwerkprotokollen TCP und UDP Anfragen von außen.
Wie kann ich den RPC Port 111 schließen?
Das schließe des Port 111 ist relativ einfach. Voher sollte jedoch jeder für sich prüfen, ob er z.B. die oben genannten Dienste nicht braucht und nachfolgende Schritte ggf. nicht ausführen. Sprich, wenn du NIS und oder NFS von deinem Server über RPC ins Internet frei gibst, weil du es für deine Anwendungen brauchst, dann sollte der Port 111 auch weiterhin offen bleiben. ! Allerdings solle er abgesichert werden. ! Dies kann z.B. durch eine Firewall, VPN oder IPTables erfolgen.
Prüfen ob der Port auf dem Server offen ist
# rpcinfo -p
program vers proto port service
100000 4 tcp 111 portmapper
100000 3 tcp 111 portmapper
100000 2 tcp 111 portmapper
100000 4 udp 111 portmapper
100000 3 udp 111 portmapper
100000 2 udp 111 portmapper
100024 1 udp 33945 status
100024 1 tcp 34786 status
Prüfen ob der RPC Port 111 aus dem Internet erreichbar ist
Debian Netcat scan nach offenen Ports
Das Ergebnis könnte wie folgt aussehen: # nc: IP-Adresse 111 open
RPC Port 111 mittels IP-Tables erlauben
Möchte man RPC im internen Netzwerk nutzen aber von außen verbieten, dann kann man dies wei nachfolgend mittels iptables umsetzen: Der RPC Port 111 wird für localhost dem gesamten LAN 192.168.0.0/24 erlaubt, jedoch für alle anderen ohne Rückmeldung verworfen = DROP:
bis Debian Wheezy (Unterschied Ausrufezeichen):
# iptables -A INPUT -p tcp -s! 192.168.0.0/24 --dport 111 -j DROP
für IPv6 entsprechend:
# ip6tables -A INPUT -p tcp -s! IPv6-Adresse --dport 111 -j DROP
# ip6tables -A INPUT -p tcp -s IPv6-Adresse --dport 111 -j ACCEPT
und für UDP
# iptables -A INPUT -p udp -s! 192.168.0.0/24 --dport 111 -j DROP
# ip6tables -A INPUT -p udp -s! IPv6-Adresse --dport 111 -j DROP
ab Debian Jessie (Unterschied Ausrufezeichen):
# iptables -A INPUT -p tcp !-s 127.0.0.1 --dport 111 -j DROP
für IPv6 entsprechend:
# ip6tables -A INPUT -p tcp ! -s IPv6-Adresse --dport 111 -j DROP
# ip6tables -A INPUT -p tcp -s IPv6-Adresse --dport 111 -j ACCEPT
und für UDP
# iptables -A INPUT -p udp ! -s 192.168.0.0/24 --dport 111 -j DROP
# ip6tables -A INPUT -p udp -s! IPv6-Adresse --dport 111 -j DROP
Beenden und ausschalten des RPC Port 111
Wer den Dienst gar nicht braucht, der kann ihn stoppen / beenden des RPC Port 111: # service rpcbind stop
und ausschalten, damit er nach dem nächsten Reboot nicht automatisch startet # systemctl disable rpcbind
Er kann, sofern nicht benötigt, auch deinstalliert werden: # apt-get remove rpcbind
Danach sieht die RPC Protanfrage auf 111 wie folgt aus:
nc: cannot connect to IP-Adresse 111: Verbindungsaufbau abgelehnt
nc: unable to connect to address IP-Adresse, service 111
E-Mail BSI als Hinweis und Information zum offenen RPC Port 111
Sehr geehrte Damen und Herren,
der Portmapper-Dienst (portmap, rpcbind) wird bentigt, um RPC-Anfragen
(Remote Procedure Calls) dem korrekten Dienst zuzuordnen. Der Portmapper-
Dienst wird u.a. fr Netzwerkfreigaben ber das Network File System (NFS)
bentigt. Der Portmapper-Dienst verwendet Port 111 tcp/udp [1].
Ein aus dem Internet erreichbarer offener Portmapper-Dienst kann von einem
Angreifer zur Durchfhrung von DDoS-Reflection/Amplification-Angriffen
missbraucht werden. Weiterhin kann ein Angreifer darber Informationen
ber das Netzwerk erlangen, wie z.B. laufende RPC-Dienste oder vorhandene
Netzwerkfreigaben.
In den letzten Monaten wurden Systeme, welche Anfragen aus dem Internet
an den Portmapper-Dienst beantworten, zunehmend zur Durchfhrung von
DDoS-Reflection/Amplification-Angriffen missbraucht [2].
Im Rahmen des Shadowserver ‚Open Portmapper Scanning Projects‘ werden
Systeme identifiziert, welche Anfragen an den Portmapper-Dienst aus dem
Internet beantworten. Diese Systeme knnen fr DDoS-Angriffe missbraucht
werden, sofern keine anderen Gegenmanahmen implementiert wurden.
CERT-Bund erhlt von Shadowserver die Testergebnisse fr IP-Adressen in
Deutschland, um betroffene Systembetreiber benachrichtigen zu knnen.
Weitere Informationen zu den von Shadowserver durchgefhrten Tests
finden Sie unter [3].
Nachfolgend senden wir Ihnen eine Liste betroffener Systeme in Ihrem
Netzbereich. Der Zeitstempel gibt an, wann das System geprft wurde und
eine Anfrage an den Portmapper-Dienst aus dem Internet beantwortet hat.
Wir mchten Sie bitten, den Sachverhalt zu prfen und Manahmen zur
Absicherung der Portmapper-Dienste auf den betroffenen Systemen zu
ergreifen bzw. Ihre Kunden entsprechend zu informieren.
Falls Sie krzlich bereits Gegenmanahmen getroffen haben und diese
Benachrichtigung erneut erhalten, beachten Sie bitten den angegebenen
Zeitstempel. Wurde die Gegenmanahme erfolgreich umgesetzt, sollten
Sie keine Benachrichtigung mit einem Zeitstempel nach der Umsetzung
mehr erhalten.
Interessiert in verschiedenste IT Themen, schreibe ich in diesem Blog über Software, Hardware, Smart Home, Games und vieles mehr. Ich berichte z.B. über die Installation und Konfiguration von Software als auch von Problemen mit dieser. News sind ebenso spannend, sodass ich auch über Updates, Releases und Neuigkeiten aus der IT berichte. Letztendlich nutze ich Taste-of-IT als eigene Dokumentation und Anlaufstelle bei wiederkehrenden Themen. Ich hoffe ich kann dich ebenso informieren und bei Problemen eine schnelle Lösung anbieten. Wer meinen Aufwand unterstützen möchte, kann gerne eine Tasse oder Pod Kaffe per PayPal spenden – vielen Dank.
iptables -A INPUT -p tcp -s! 192.168.0.0/24 –dport 111 -j DROP
Bad argument `192.168.0.0/24′
Try `iptables -h‘ or ‚iptables –help‘ for more information.
debian jessie
wie löse ich das ?
Hi dean2k8,
tatsächlich hat sich da was geändert. Das Ausrufezeichen muss an eine andere Stelle, dann klappt es auch. Ich habe den Beitrag angepasst.
Für das BSi sicher Neuland, aber hey ip6tables nicht vergessen 😉
Hi ztk,
und danke für den Hinweis. Ich habe beispielhaft mal die IPv6 Regeln hinzugefügt.