Website-Suche

So blockieren Sie den SSH- und FTP-Zugriff auf einen bestimmten IP- und Netzwerkbereich unter Linux


In der Regel verwenden wir alle häufig SSH- und FTP-Dienste, um auf die Remote-Server und Virtual Private Server zuzugreifen. Als Linux-Administrator müssen Sie wissen, wie Sie den SSH- und FTP-Zugriff auf einen bestimmten IP- oder Netzwerkbereich in Linux blockieren können, um die Sicherheit weiter zu erhöhen.

  1. 25 Hardening-Sicherheitstipps für Linux-Server
  2. 5 nützliche Tipps zum Sichern und Schützen von SSH-Servern

Dieses Tutorial zeigt Ihnen, wie Sie den SSH- und FTP-Zugriff auf eine bestimmte IP-Adresse und/oder einen Netzwerkbereich auf CentOS 6- und 7-Servern blockieren können. Diese Anleitung wurde auf den Versionen CentOS 6.x und 7.x getestet, wird aber wahrscheinlich auch auf anderen Linux-Distributionen wie Debian, Ubuntu und SUSE/openSUSE usw. funktionieren.

Wir werden dies auf zwei Arten tun. Die erste Methode verwendet IPTables/firewallD und die zweite Methode verwendet TCP-Wrapper mit Hilfe der Dateien hosts.allow und hosts.deny.

In den folgenden Anleitungen erfahren Sie mehr über IPTables und Firewalld.

  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 ist und was die Grundlagen sind.

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 (z. B. 192.168.1.100) und/oder einen Netzwerkbereich (z. B. 192.168.1.0/24) mit IPtables auf RHEL/CentOS/Scientific Linux 6.x-Versionen und FirewallD auf CentOS 7.x blockiert.

Blockieren oder Deaktivieren des SSH-Zugriffs

--------------------- 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, den Server über SSH vom blockierten Host aus zu verbinden. 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 des SSH-Zugriffs

Um die Blockierung aufzuheben oder den SSH-Zugriff 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 per SSH auf Ihren Server zuzugreifen.

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

Blockieren oder Deaktivieren des FTP-Zugriffs

In der Regel sind die Standardports für FTP 20 und 21. Um den gesamten FTP-Datenverkehr mit 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) aus mit dem folgenden Befehl auf den Server zuzugreifen:

# ftp 192.168.1.150

Sie erhalten eine Fehlermeldung in etwa wie unten.

ftp: connect: Connection refused

Entsperren oder Aktivieren des FTP-Zugriffs

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

--------------------- 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, über 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 mit TCP-Wrappern

Wenn Sie sich nicht mit IPTables oder FirewallD herumschlagen wollen, dann ist TCP-Wrapper der bessere Weg, um SSH- und FTP-Zugriff auf eine bestimmte IP und/oder einen Netzwerkbereich zu blockieren.

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 von erlaubten Hosts und die zweite die Adressen von blockierten Hosts.

Lassen Sie uns beispielsweise den SSH- und FTP-Zugriff auf den Host blockieren, der die IP-Adresse 192.168.1.100 und den Netzwerkbereich 192.168.1.0 hat. Diese Methode ist für die CentOS 6.x- und 7.x-Serien identisch. 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 den Netzwerkbereich 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 die Dienste sshd und vsftpd neu, um die neuen Änderungen zu übernehmen.

--------------- 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, den Server per SSH oder von einem blockierten Host aus zu verbinden.

# ssh 192.168.1.150

Die folgende Ausgabe wird angezeigt:

ssh_exchange_identification: read: Connection reset by peer

Versuchen Sie nun, den Server per FTP oder von einem blockierten Host zu verbinden.


ftp 192.168.1.150

Die folgende Ausgabe wird angezeigt:

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 und kommentieren Sie alle Zeilen aus und starten Sie schließlich die vsftpd- und sshd-Dienste neu.

Schlussfolgerung

Das war's fürs Erste. Zusammenfassend lässt sich sagen, dass wir heute gelernt haben, wie man eine bestimmte IP-Adresse und einen bestimmten Netzwerkbereich mit IPTables, FirewallD und TCP-Wrappern blockiert. Diese Methoden sind ziemlich einfach und unkompliziert.

Selbst ein unerfahrener Linux-Administrator kann dies in ein paar Minuten tun. Wenn Sie andere Möglichkeiten kennen, den SSH- und FTP-Zugriff zu blockieren, können Sie diese gerne im Kommentarbereich teilen. Und vergessen Sie nicht, unsere Artikel in allen Ihren sozialen Netzwerken zu teilen.

Verwandte Artikel: