Hoe SSH- en FTP-toegang tot specifiek IP- en netwerkbereik in Linux te blokkeren
Meestal gebruiken we allemaal vaak SSH- en FTP-services om toegang te krijgen tot externe servers en virtuele privéservers. Als Linux-beheerder moet je weten hoe je SSH- en FTP-toegang tot een specifiek IP- of netwerkbereik in Linux kunt blokkeren om de beveiliging nog verder aan te scherpen.
- 25 Verbeterde beveiligingstips voor Linux-servers
- 5 Handige tips om de SSH-server te beveiligen en te beschermen
Deze tutorial laat zien hoe je SSH- en FTP-toegang tot een bepaald IP-adres en/of een netwerkbereik in de CentOS 6- en 7-server kunt blokkeren. Deze handleiding is getest op CentOS 6.x en 7.x versies, maar zal waarschijnlijk werken op andere Linux-distributies zoals Debian, Ubuntu en SUSE/openSUSE enz.
We doen het op twee manieren. De eerste methode gebruikt IPTables/firewallD en de tweede methode gebruikt TCP wrappers met behulp van hosts.allow > en hosts.deny bestand.
Raadpleeg de volgende handleidingen voor meer informatie over IPTables en Firewalld.
- Basisgids over IPTables (Linux Firewall) Tips/Commando's
- Hoe u een Iptables-firewall instelt om externe toegang tot services in Linux mogelijk te maken
- Hoe ‘FirewallD’ te configureren in RHEL/CentOS 7 en Fedora 21
- Handige ‘FirewallD’-regels voor het configureren en beheren van Firewall in Linux
Nu weet je wat IPTables en FirewallD zijn en wat de basis ervan is.
Methode 1: SSH- en FTP-toegang blokkeren met IPTables/FirewallD
Laten we nu eens kijken hoe we SSH- en FTP-toegang tot een specifiek IP-adres (bijvoorbeeld 192.168.1.100) en/of netwerkbereik (bijvoorbeeld 192.168.1.0/24) kunnen blokkeren. gebruik van IPtables op RHEL/CentOS/Scientific Linux 6.x-versies en FirewallD op CentOS 7.x.
Blokkeer of schakel SSH-toegang uit
--------------------- 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
Om nieuwe regels van kracht te laten worden, moet u de volgende opdracht gebruiken.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Probeer nu de server te SSH vanaf de geblokkeerde host. Houd er rekening mee dat 192.168.1.150 hier de geblokkeerde host is.
ssh 192.168.1.150
U zou het volgende bericht moeten zien.
ssh: connect to host 192.168.1.150 port 22: Connection refused
Deblokkeer of schakel SSH-toegang in
Om SSH-toegang te deblokkeren of in te schakelen, gaat u naar de externe server en voert u de volgende opdracht uit:
--------------------- 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
Sla de wijzigingen op met behulp van het volgende om toegang te krijgen tot uw server via SSH.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
FTP-toegang blokkeren of uitschakelen
Normaal gesproken zijn de standaardpoorten voor FTP 20 en 21. Om dus al het FTP-verkeer met IPTables te blokkeren, voert u de volgende opdracht uit:
--------------------- 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
Om nieuwe regels van kracht te laten worden, moet u de volgende opdracht gebruiken.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Probeer nu toegang te krijgen tot de server vanaf de geblokkeerde host (192.168.1.100), met het commando:
ftp 192.168.1.150
U krijgt een foutmelding zoals hieronder.
ftp: connect: Connection refused
Deblokkeer of schakel FTP-toegang in
Om de blokkering op te heffen en FTP-toegang weer in te schakelen, voert u het volgende uit:
--------------------- 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
Sla de wijzigingen op met het commando:
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Probeer nu via FTP toegang te krijgen tot de server:
ftp 192.168.1.150
Voer uw ftp-gebruikersnaam en wachtwoord in.
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: SSH- en FTP-toegang blokkeren met TCP-wrappers
Als je geen zin hebt in IPTables of FirewallD, dan zijn TCP-wrappers de betere manier om SSH- en FTP-toegang tot een specifiek bestand te blokkeren IP en/of een netwerkbereik.
OpenSSH en FTP zijn gecompileerd met ondersteuning voor TCP-wrappers, wat betekent dat u kunt opgeven welke hosts verbinding mogen maken zonder uw firewall aan te raken in de volgende twee belangrijke bestanden:
- /etc/hosts.allow
- /etc/hosts.deny
Zoals de naam al aangeeft, bevat het eerste bestand vermeldingen van toegestane hosts, en het tweede bevat adressen van geblokkeerde hosts.
Laten we bijvoorbeeld de SSH- en FTP-toegang blokkeren voor een host met IP-adres 192.168.1.100 en netwerkbereik 192.168.1.0. Deze methode is hetzelfde voor de CentOS 6.x- en 7.x-serie. En natuurlijk zal het werken op andere distributies zoals Debian, Ubuntu, SUSE, openSUSE enz.
Open het bestand /etc/hosts.deny
en voeg de volgende IP-adressen of het netwerkbereik toe dat u wilt blokkeren, zoals hieronder weergegeven.
##### 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
Sla het bestand op en sluit het af.
Start nu de sshd- en vsftpd-service opnieuw op om de nieuwe wijzigingen door te voeren.
--------------- 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]
Probeer nu de server of vanaf een geblokkeerde host te SSHen.
ssh 192.168.1.150
Je ziet de volgende uitvoer:
ssh_exchange_identification: read: Connection reset by peer
Probeer nu de server of vanaf een geblokkeerde host te FTP-en.
ftp 192.168.1.150
Je ziet de volgende uitvoer:
Connected to 192.168.1.150.
421 Service not available.
Om SSH- en FTP-services weer te deblokkeren of in te schakelen, bewerkt u het bestand hosts.deny, plaatst u commentaar op alle regels en start u ten slotte de vsftpd- en sshd-services opnieuw.
Conclusie
Dat is het voor nu. Samenvattend hebben we vandaag geleerd hoe we een specifiek IP-adres en netwerkbereik kunnen blokkeren met behulp van IPTables, FirewallD en TCP-wrappers. Deze methoden zijn vrij eenvoudig en duidelijk.
Zelfs een beginnende Linux-beheerder kan dit binnen een paar minuten doen. Als je nog andere manieren kent om SSH- en FTP-toegang te blokkeren, deel ze dan gerust in het commentaargedeelte. En vergeet niet onze artikelen op al uw sociale netwerken te delen.