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.

  1. 25 Sikkerhetstips for herding for Linux-servere
  2. 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.

  1. Grunnleggende veiledning om IPTables (Linux-brannmur) Tips/kommandoer
  2. Slik konfigurerer du en Iptables-brannmur for å aktivere ekstern tilgang til tjenester i Linux
  3. Hvordan konfigurere ‘FirewallD’ i RHEL/CentOS 7 og Fedora 21
  4. 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:

  1. /etc/hosts.allow
  2. /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.