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.
- 25 Hardening-Sicherheitstipps für Linux-Server
- 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.
- Grundlegende Anleitung zu IPTables (Linux-Firewall) Tipps/Befehle
- So richten Sie eine iptables-Firewall ein, um den Fernzugriff auf Dienste unter Linux zu ermöglichen
- So konfigurieren Sie 'FirewallD' in RHEL/CentOS 7 und Fedora 21
- 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:
- /etc/hosts.allow
- /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.
