Slik blokkerer du SSH- og FTP-tilgang til spesifikk IP- og nettverksområde i Linux
Vanligvis bruker vi alle SSH- og FTP-tjenester ofte for å få tilgang til eksterne servere og virtuelle private servere. Som Linux-administrator må du være klar over hvordan du blokkerer SSH- og FTP-tilgang til spesifikk IP eller nettverksområde i Linux for å stramme sikkerheten litt mer.
- 25 Sikkerhetstips for herding for Linux-servere
- 5 nyttige tips for å sikre og beskytte SSH-serveren
Denne opplæringen viser deg hvordan du blokkerer SSH- og FTP-tilgang til en bestemt IP-adresse og/eller et nettverksområde i CentOS 6- og 7-serveren. Denne veiledningen ble testet på CentOS 6.x- og 7.x-versjoner, men den vil sannsynligvis fungere på andre Linux-distribusjoner som Debian, Ubuntu og SUSE/openSUSE osv.
Vi gjør det på to måter. Den første metoden er å bruke IPTables/firewallD og den andre metoden er å bruke TCP-innpakninger ved hjelp av hosts.allow > og hosts.deny-filen.
Se de følgende veiledningene for å vite mer om IPTables og brannmur.
- Grunnleggende veiledning om IPTables (Linux-brannmur) Tips/kommandoer
- Slik konfigurerer du en Iptables-brannmur for å aktivere ekstern tilgang til tjenester i Linux
- Hvordan konfigurere ‘FirewallD’ i RHEL/CentOS 7 og Fedora 21
- Nyttige 'FirewallD'-regler for å konfigurere og administrere brannmur i Linux
Nå er du klar over hva som er IPTables og BrannmurD, og det er grunnleggende.
Metode 1: Blokker SSH- og FTP-tilgang ved å bruke IPTables/BrannmurD
La oss nå se hvordan du blokkerer SSH- og FTP-tilgang til en spesifikk IP (for eksempel 192.168.1.100) og/eller nettverksrekkevidde (for eksempel 192.168.1.0/24) ved å bruke IPtables på RHEL/CentOS/Scientific Linux 6.x-versjoner og FirewallD på CentOS 7.x.
Blokker eller deaktiver SSH-tilgang
--------------------- 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
For å ta nye regler i kraft, må du bruke følgende kommando.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Prøv nå å SSH serveren fra den blokkerte verten. Vær oppmerksom på at her 192.168.1.150 er den blokkerte verten.
ssh 192.168.1.150
Du bør se følgende melding.
ssh: connect to host 192.168.1.150 port 22: Connection refused
Fjern blokkering eller aktiver SSH-tilgang
For å oppheve blokkeringen eller aktivere SSH-tilgang, gå til den eksterne serveren og kjør følgende kommando:
--------------------- 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
Lagre endringene ved å bruke følgende for å få tilgang til serveren din via SSH.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Blokker eller deaktiver FTP-tilgang
Vanligvis er standardportene for FTP 20 og 21. Så for å blokkere all FTP-trafikk ved hjelp av IPTables, kjør følgende kommando:
--------------------- 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
For å ta nye regler i kraft, må du bruke følgende kommando.
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Prøv nå å få tilgang til serveren fra den blokkerte verten (192.168.1.100), med kommandoen:
ftp 192.168.1.150
Du får en feilmelding som ligner nedenfor.
ftp: connect: Connection refused
Fjern blokkering eller aktiver FTP-tilgang
For å oppheve blokkeringen og aktivere FTP-tilgang tilbake, kjør:
--------------------- 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
Lagre endringene med kommandoen:
service iptables save [On IPtables Firewall]
firewall-cmd --reload [On FirewallD]
Prøv nå å få tilgang til serveren via FTP:
ftp 192.168.1.150
Skriv inn ftp brukernavn og passord.
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>
Metode 2: Blokker SSH- og FTP-tilgang ved å bruke TCP-innpakninger
Hvis du ikke vil rote med IPTables eller FirewallD, så er TCP wrappers den bedre måten å blokkere SSH- og FTP-tilgang til en bestemt IP og/eller en rekke nettverk.
OpenSSH og FTP er kompilert med støtte for TCP wrappers, noe som betyr at du kan spesifisere hvilke verter som har lov til å koble til uten å berøre brannmuren din i følgende to viktige filer og er:
- /etc/hosts.allow
- /etc/hosts.deny
Som navnet tilsier, inneholder den første filen oppføringer av tillatte verter, og den andre inneholder adressene til blokkerte verter.
La oss for eksempel blokkere SSH- og FTP-tilgangen til verten som har IP-adressen 192.168.1.100 og nettverksrekkevidden 192.168.1.0. Denne metoden er den samme for CentOS 6.x- og 7.x-serien. Og, selvfølgelig, vil det fungere på andre distribusjoner som Debian, Ubuntu, SUSE, openSUSE etc.
Åpne filen /etc/hosts.deny
og legg til følgende IP-adresser eller nettverksområde du ønsker å blokkere, som vist nedenfor.
##### 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
Lagre og avslutt filen.
Start nå sshd- og vsftpd-tjenesten på nytt for å tre i kraft nye endringer.
--------------- 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]
Prøv nå å SSH serveren eller fra en blokkert vert.
ssh 192.168.1.150
Du vil se følgende utgang:
ssh_exchange_identification: read: Connection reset by peer
Prøv nå å FTP serveren eller fra en blokkert vert.
ftp 192.168.1.150
Du vil se følgende utgang:
Connected to 192.168.1.150.
421 Service not available.
For å oppheve blokkeringen eller aktivere SSH- og FTP-tjenester igjen, rediger hosts.deny-filen og kommenter alle linjer og start til slutt vsftpd- og sshd-tjenester på nytt.
Konklusjon
Det er alt for nå. For å oppsummere, i dag lærte vi hvordan du blokkerer en spesifikk IP-adresse og nettverksrekkevidde ved å bruke IPTables, FirewallD og TCP wrappers. Disse metodene er ganske enkle og greie.
Til og med en nybegynner Linux-administrator kan gjøre dette på et par minutter. Hvis du vet noen andre måter å blokkere SSH- og FTP-tilgang på, kan du gjerne dele dem i kommentarfeltet. Og ikke glem å dele artiklene våre i alle sosiale nettverk.