Website-Suche

So blockieren Sie den SSH- und FTP-Zugriff auf bestimmte IP- und Netzwerkbereiche unter Linux


Normalerweise nutzen wir alle häufig SSH- und FTP-Dienste, um auf die Remote-Server und virtuellen privaten Server zuzugreifen. Als Linux-Administrator müssen Sie wissen, wie Sie den SSH- und FTP-Zugriff auf bestimmte IP-Adressen oder Netzwerkbereiche unter Linux blockieren können, um die Sicherheit noch weiter zu erhöhen.

  1. 25 Tipps zur Härtung der Sicherheit für Linux-Server
  2. 5 nützliche Tipps zum Sichern und Schützen des SSH-Servers

In diesem Tutorial erfahren Sie, wie Sie den SSH- und FTP-Zugriff auf eine bestimmte IP-Adresse und/oder einen Netzwerkbereich auf CentOS 6- und 7-Servern blockieren. Dieses Handbuch wurde auf den Versionen CentOS 6.x und 7.x getestet, funktioniert aber wahrscheinlich auch auf anderen Linux-Distributionen wie Debian, Ubuntu und SUSE/openSUSE usw.

Wir werden es auf zwei Arten tun. Die erste Methode verwendet IPTables/firewallD und die zweite Methode verwendet TCP-Wrapper mit Hilfe von hosts.allow > und hosts.deny-Datei.

Weitere Informationen zu IPTables und Firewalld finden Sie in den folgenden Anleitungen.

  1. Grundlegende Anleitung zu IPTables (Linux Firewall) Tipps/Befehle
  2. So richten Sie eine Iptables-Firewall ein, um den Fernzugriff auf Dienste unter Linux zu ermöglichen
  3. So konfigurieren Sie „FirewallD“ in RHEL/CentOS 7 und Fedora 21
  4. Nützliche „FirewallD“-Regeln zum Konfigurieren und Verwalten der Firewall unter Linux

Jetzt wissen Sie, was IPTables und FirewallD sind und welche Grundlagen es gibt.

Methode 1: Blockieren Sie den SSH- und FTP-Zugriff mit IPTables/FirewallD

Sehen wir uns nun an, wie man den SSH- und FTP-Zugriff auf eine bestimmte IP (zum Beispiel 192.168.1.100) und/oder einen Netzwerkbereich (zum Beispiel 192.168.1.0/24) blockiert. Verwendung von IPtables auf RHEL/CentOS/Scientific Linux 6.x-Versionen und FirewallD auf CentOS 7.x.

SSH-Zugriff blockieren oder deaktivieren

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j REJECT
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j REJECT

Um neue Regeln in Kraft zu setzen, müssen Sie den folgenden Befehl verwenden.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Versuchen Sie nun, vom blockierten Host aus eine SSH-Verbindung zum Server herzustellen. Bitte beachten Sie, dass hier 192.168.1.150 der blockierte Host ist.

ssh 192.168.1.150

Die folgende Meldung sollte angezeigt werden.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Entsperren oder aktivieren Sie den SSH-Zugriff

Um den SSH-Zugriff zu entsperren oder zu aktivieren, gehen Sie zum Remote-Server und führen Sie den folgenden Befehl aus:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport ssh -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport ssh -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 22 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 22 -j ACCEPT

Speichern Sie die Änderungen wie folgt, um über SSH auf Ihren Server zuzugreifen.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Blockieren oder deaktivieren Sie den FTP-Zugriff

Normalerweise sind die Standardports für FTP 20 und 21. Um den gesamten FTP-Verkehr mithilfe von IPTables zu blockieren, führen Sie den folgenden Befehl aus:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j REJECT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j REJECT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j REJECT

Um neue Regeln in Kraft zu setzen, müssen Sie den folgenden Befehl verwenden.

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Versuchen Sie nun, vom blockierten Host (192.168.1.100) auf den Server zuzugreifen, mit folgendem Befehl:

ftp 192.168.1.150

Sie erhalten eine Fehlermeldung wie die folgende.

ftp: connect: Connection refused

Entsperren oder aktivieren Sie den FTP-Zugriff

Führen Sie Folgendes aus, um die Blockierung aufzuheben und den FTP-Zugriff wieder zu aktivieren:

--------------------- On IPtables Firewall ---------------------
iptables -I INPUT -s 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
iptables -I INPUT -s 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT
--------------------- On FirewallD ---------------------
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100 -p tcp --dport 20,21 -j ACCEPT
firewall-cmd --direct --add-rule ipv4 filter INPUT 1 -m tcp --source 192.168.1.100/24 -p tcp --dport 20,21 -j ACCEPT

Speichern Sie die Änderungen mit dem Befehl:

service iptables save         [On IPtables Firewall]
firewall-cmd --reload         [On FirewallD]

Versuchen Sie nun, per FTP auf den Server zuzugreifen:

ftp 192.168.1.150

Geben Sie Ihren FTP-Benutzernamen und Ihr Passwort ein.

Connected to 192.168.1.150.
220 Welcome to TecMint FTP service.
Name (192.168.1.150:sk): tecmint
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> 

Methode 2: Blockieren Sie den SSH- und FTP-Zugriff mithilfe von TCP-Wrappern

Wenn Sie sich nicht mit IPTables oder FirewallD herumschlagen möchten, sind TCP-Wrapper die bessere Möglichkeit, den SSH- und FTP-Zugriff auf eine bestimmte Datei zu blockieren IP und/oder eine Reihe von Netzwerken.

OpenSSH und FTP sind mit TCP-Wrapper-Unterstützung kompiliert, was bedeutet, dass Sie in den folgenden zwei wichtigen Dateien angeben können, welche Hosts eine Verbindung herstellen dürfen, ohne Ihre Firewall zu berühren:

  1. /etc/hosts.allow
  2. /etc/hosts.deny

Wie der Name schon sagt, enthält die erste Datei Einträge zugelassener Hosts und die zweite Adressen blockierter Hosts.

Lassen Sie uns beispielsweise den SSH- und FTP-Zugriff auf einen Host mit der IP-Adresse 192.168.1.100 und dem Netzwerkbereich 192.168.1.0 blockieren. Diese Methode ist für die Serien CentOS 6.x und 7.x gleich. Und natürlich funktioniert es auch auf anderen Distributionen wie Debian, Ubuntu, SUSE, openSUSE usw.

Öffnen Sie die Datei /etc/hosts.deny und fügen Sie die folgenden IP-Adressen oder Netzwerkbereiche hinzu, die Sie blockieren möchten, wie unten gezeigt.

##### To block SSH Access #####
sshd: 192.168.1.100
sshd: 192.168.1.0/255.255.255.0

##### To block FTP Access #####
vsftpd: 192.168.1.100
vsftpd: 192.168.1.0/255.255.255.0

Speichern und beenden Sie die Datei.

Starten Sie nun den sshd- und vsftpd-Dienst neu, damit die neuen Änderungen wirksam werden.

--------------- For SSH Service ---------------
service sshd restart        [On SysVinit]
systemctl restart sshd      [On SystemD]
--------------- For FTP Service ---------------
service vsftpd restart        [On SysVinit]
systemctl restart vsftpd      [On SystemD]

Versuchen Sie nun, eine SSH-Verbindung zum Server oder von einem blockierten Host herzustellen.

ssh 192.168.1.150

Sie sehen die folgende Ausgabe:

ssh_exchange_identification: read: Connection reset by peer

Versuchen Sie nun, eine FTP-Verbindung zum Server oder von einem blockierten Host herzustellen.


ftp 192.168.1.150

Sie sehen die folgende Ausgabe:

Connected to 192.168.1.150.
421 Service not available.

Um SSH- und FTP-Dienste wieder zu entsperren oder zu aktivieren, bearbeiten Sie die Datei hosts.deny, kommentieren Sie alle Zeilen aus und starten Sie schließlich die Dienste vsftpd und sshd neu.

Abschluss

Das ist alles für den Moment. Zusammenfassend haben wir heute gelernt, wie man eine bestimmte IP-Adresse und einen bestimmten Netzwerkbereich mithilfe von IPTables, FirewallD und TCP-Wrappern blockiert. Diese Methoden sind ziemlich einfach und unkompliziert.

Sogar ein unerfahrener Linux-Administrator kann dies in ein paar Minuten erledigen. Wenn Sie andere Möglichkeiten zum Blockieren des SSH- und FTP-Zugriffs kennen, teilen Sie diese gerne im Kommentarbereich mit. Und vergessen Sie nicht, unsere Artikel in allen Ihren sozialen Netzwerken zu teilen.