GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Verstehen von TCP-Wrappern (/etc/hosts.allow &/etc/hosts.deny) in Linux

TCP-Wrapper bieten eine grundlegende Verkehrsfilterung des eingehenden Netzwerkverkehrs. Der Zugriff auf „verpackte“ Netzwerkdienste, die auf einem Linux-Server von anderen Systemen ausgeführt werden, kann zugelassen oder verweigert werden. Ein mit TCP umschlossener Dienst ist einer, der mit der Bibliothek libwrap.a kompiliert wurde. Verwenden Sie den Befehl ldd, um festzustellen, ob ein Netzwerkdienst mit libwrap.a verknüpft ist. Das folgende Beispiel ermittelt den absoluten Pfadnamen des sshd-Dienstes und listet dann die gemeinsam genutzten Bibliotheken auf, die mit dem sshd-Dienst verknüpft sind, wobei der grep-Befehl verwendet wird, um nach der libwrap-Bibliothek zu suchen:

# which sshd
/sbin/sshd
# ldd /sbin/sshd | grep libwrap
	libwrap.so.0 => /lib64/libwrap.so.0 (0x00007f1fea580000)

Konfigurationsdateien

TCP-Wrapper verlassen sich auf zwei Konfigurationsdateien als Grundlage für die Zugriffskontrolle:

  • /etc/hosts.allow
  • /etc/hosts.deny

Wenn ein Client versucht, eine Verbindung zu einem Netzwerkdienst auf einem Remotesystem herzustellen, werden diese Dateien verwendet, um zu bestimmen, ob der Clientzugriff zugelassen oder verweigert wird. Verwenden Sie /etc/hosts.allow und /etc/hosts.deny, um Regeln zu definieren, die Clients selektiv den Zugriff auf Server-Daemons auf dem lokalen System erlauben oder verweigern. Das Format für Einträge ist für beide Dateien wie folgt:

daemon_list : client_list [: command]

Es folgt eine Beschreibung der einzelnen Felder:

  • daemon_list :Eine durch Kommas getrennte Liste von Daemons oder Schlüsselwort ALL für alle Daemons
  • client_list :Eine durch Kommas getrennte Liste von Clients oder das Schlüsselwort ALL für alle Clients
  • Befehl :Ein optionaler Befehl, der ausgeführt wird, wenn ein Client versucht, auf einen Server-Daemon zuzugreifen

Um den Client-Zugriff zuzulassen, fügen Sie den Client-Hostnamen oder die IP-Adresse in /etc/hosts.allow hinzu. Um den Zugriff des Clients zu verweigern, fügen Sie seinen Namen oder seine IP-Adresse in /etc/hosts.deny.

hinzu

Die Datei /etc/hosts.allow wird zuerst gelesen und zwar von oben nach unten. Wenn ein Daemon-Client-Paar mit der ersten Zeile in der Datei übereinstimmt, wird der Zugriff gewährt. Wenn die Zeile nicht übereinstimmt, wird die nächste Zeile gelesen und die gleiche Prüfung durchgeführt. Wenn alle Zeilen gelesen wurden und keine Übereinstimmung auftritt, wird die Datei /etc/hosts.deny von oben beginnend gelesen. Wenn in der Deny-Datei ein Daemon-Client-Paar gefunden wird, wird der Zugriff verweigert. Wenn in keiner der Dateien Regeln für das Daemon-Client-Paar gefunden werden oder keine Datei existiert, wird der Zugriff auf den Dienst gewährt.

Da die Zugriffsregeln in hosts.allow zuerst angewendet werden, haben sie Vorrang vor den in hosts.deny angegebenen Regeln. Wenn der Zugriff auf einen Dienst in hosts.allow erlaubt ist, wird daher eine Regel ignoriert, die den Zugriff auf denselben Dienst in hosts.deny verweigert. Im Folgenden finden Sie einige Beispiele für Einträge in der Datei /etc/hosts.allow:

1. So erlauben Sie Clients im 192.168.2-Subnetz den Zugriff auf FTP (Daemon ist vsftpd):

# vi /etc/hosts.allow
vsftpd : 192.168.2.*

2. So erlauben Sie allen Clients den Zugriff auf ssh, scp und sftp (Daemon ist sshd):

# vi /etc/hosts.allow
sshd : ALL

3. Platzieren Sie den folgenden Eintrag in der Datei /etc/hosts.deny, um den FTP-Dienst allen Clients außer dem Subnetz 192.168.2.* zu verweigern (dies setzt voraus, dass der vorherige Eintrag vsftpd:192.168.2.* in /etc/hosts existiert. erlauben):

# vi /etc/hosts.deny
vsftpd : ALL

4. Verwenden Sie die .domain-Syntax, um alle Hosts einer bestimmten Domain darzustellen. Das folgende Beispiel erlaubt Verbindungen zu vsftpd von jedem Host in der Domäne example.com (wenn der Eintrag in /etc/hosts.allow steht):

# vi /etc/hosts.allow
vsftpd : .example.com

Wenn dieser Eintrag in /etc/hosts.deny erscheint, wird die Verbindung verweigert.

TCP Wrapper (hosts.allow &hosts.deny) Befehlsoptionen in Linux


Cent OS
  1. Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

  2. Eine benutzerspezifische Hosts-Datei erstellen, um /etc/hosts zu ergänzen?

  3. Die Datei /etc/xinetd.conf unter Linux verstehen

  4. Format von /etc/hosts unter Linux (anders als Windows?)

  5. Warum sind < oder > erforderlich, um /dev/tcp

Linux-Konfiguration:Verstehen von *.d-Verzeichnissen in /etc

Verstehen des Verzeichnisses /etc/skel unter Linux

/etc/hosts-Datei unter Linux verstehen

Verstehen der /etc/fstab-Datei unter Linux

Grundlegendes zur Konfigurationsdatei /etc/profile unter Linux

Größenbeschränkung von /etc/hosts (Linux)