In diesem Artikel erklären wir, was TCP-Wrapper sind und wie man sie auf einem Linux-Server konfiguriert, um die Berechtigungen von Netzwerkdiensten einzuschränken. Bevor wir beginnen, müssen wir klarstellen, dass TCP-Wrapper eine ordnungsgemäß konfigurierte Firewall nicht überflüssig machen.
An diesem Punkt können Sie sich dieses Tool als hostbasierte Zugriffskontrollliste vorstellen und nicht als ultimative Sicherheitsmaßnahme für Ihr System. Indem Sie eine Firewall und einen TCP-Wrapper verwenden, anstatt nur einen gegenüber dem anderen zu bevorzugen, stellen Sie sicher, dass Ihr Dienst kein Single Point of Failure ist.
Hosts.allow- und hosts.deny-Dateien richtig verstehen
Wenn eine Netzwerkanfrage Ihren Host erreicht, verwendet der TCP-Wrapper hosts.allow und hosts.deny (in dieser Reihenfolge), um festzustellen, ob Dem Kunden soll die Nutzung einer bereitgestellten Dienstleistung gestattet werden. .
Standardmäßig ist der Inhalt dieser Dateien leer, auskommentiert oder existiert überhaupt nicht. Daher wird jede Anfrage durch den TCP-Filter zugelassen und Ihr System verlässt sich auf die Firewall, um umfassenden Schutz zu gewährleisten. Denn das ist nicht das, was wir wollen. Stellen Sie aus den eingangs genannten Gründen sicher, dass die folgenden zwei Dateien vorhanden sind:
# ls -l /etc/hosts.allow /etc/hosts.deny
Die Schreibsyntaxregeln für die beiden Dateien sind dieselben:
<services> : <clients> [: <option1> : <option2> : ...]
in In Die Datei
1. Dienste bezieht sich auf die Dienste, die der aktuellen Regel entsprechen, bei der es sich um eine durch Kommas getrennte Liste handelt.
2. „Clients“ bezieht sich auf die von der Regel betroffenen Hostnamen oder IP-Adressen, getrennt durch Kommas. Die folgenden Platzhalter werden ebenfalls akzeptiert:
1).ALL bedeutet alles und gilt für Kunden und Dienste.
2).LOCAL bedeutet übereinstimmende Maschinen, die keinen vollqualifizierten Hostnamen (FQDN) im offiziellen Domänennamen haben, wie z. B. localhost.
3).KNOWN bedeutet, dass der Hostname, die Hostadresse oder der Benutzer bekannt ist (d. h. er kann über DNS oder andere Dienste aufgelöst werden).
4).UNKNOWN ist das Gegenteil von BEKANNT.
5).PARANOID Wenn Reverse-DNS-Lookups unterschiedliche Adressen zurückgeben, wird die Verbindung getrennt (lösen Sie zuerst den Hostnamen basierend auf der IP auf und beziehen Sie dann die IP-Adresse basierend auf dem Hostnamen).
3. Abschließend gibt eine durch Doppelpunkte getrennte Aktionsliste an, welche Aktionen ausgeführt werden, wenn eine Regel ausgelöst wird.
Sie sollten bedenken, dass Regeln in der Datei /etc/hosts.allow, die den Zugriff auf einen Dienst ermöglichen, Vorrang vor Regeln in /etc/hosts.deny haben. Wenn zwei Regeln für denselben Dienst gelten, wird außerdem nur die erste Regel berücksichtigt.
Leider unterstützen nicht alle Netzwerkdienste TCP-Filter. Um zu sehen, ob ein bestimmter Dienst sie unterstützt, können Sie den folgenden Befehl ausführen:
# ldd /path/to/binary | grep libwrap
Wenn der obige Befehl ausgeführt wird Folgende Ergebnisse zeigen, dass es beispielsweise TCP-Filter, sshd und vsftpd unterstützen kann. Die Ausgabe lautet wie folgt.
Durch Filter unterstützte Dienste
Wie TCP-Filter zur Einschränkung von DienstberechtigungenStellen Sie beim Bearbeiten von /etc/hosts.allow und /etc/hosts.deny sicher, dass dies der Fall ist Sie fügen eine neue Zeile hinzu, indem Sie nach der letzten nicht leeren Zeile die Eingabetaste drücken. Damit SSH- und FTP-Dienste nur localhost und 192.168.0.102 zulassen und alle anderen Benutzer verweigern, fügen Sie Folgendes zu /etc/hosts.deny hinzu:Und in /etc/ Fügen Sie der hosts.allow-Datei den folgenden Inhalt hinzu:
sshd,vsftpd : ALL ALL : ALL
Diese Änderungen werden sofort wirksam und erfordern keinen Neustart.
sshd,vsftpd : 192.168.0.102,LOCALIm Bild unten sehen Sie, dass nach dem Löschen von LOCAL in der letzten Zeile der FTP-Server für localhost nicht verfügbar ist. Nachdem wir den Platzhalter hinzugefügt hatten, war der Dienst wieder verfügbar.
Bestätigen Sie die FTP-Berechtigungen
Damit alle Dienste für den Hostnamen verfügbar sind, der example.com enthält, fügen Sie die folgende Zeile in hosts hinzu. erlauben:
ALL : .example.comUm zu verhindern, dass die Maschine unter 10.0.1.0/24 auf den vsftpd-Dienst zugreift, fügen Sie den Hosts die folgende Zeile hinzu. deny file:
vsftpd : 10.0.1. Beachten Sie in den letzten beiden Beispielen die Punkte am Anfang und Ende jeder Zeile der Clientliste. Dies bedeutet „alle Hosts oder Clients, deren Namen oder IPs diese Zeichenfolge enthalten“