Sådan blokeres SSH- og FTP-adgang til specifikt IP- og netværksområde i Linux


Normalt bruger vi alle SSH- og FTP-tjenester ofte til at få adgang til fjernserverne og virtuelle private servere. Som Linux-administrator skal du være opmærksom på, hvordan du blokerer SSH- og FTP-adgang til specifikt IP- eller netværksområde i Linux for at stramme sikkerhedsbiten mere.

  1. 25 Hærdningssikkerhedstip til Linux-servere
  2. 5 nyttige tip til sikring og beskyttelse af SSH-server

Denne tutorial viser dig, hvordan du blokerer SSH- og FTP-adgang til en bestemt IP-adresse og/eller et netværksinterval i CentOS 6 og 7-serveren. Denne vejledning blev testet på CentOS 6.x og 7.x versioner, men den fungerer sandsynligvis på andre Linux-distributioner som Debian, Ubuntu og SUSE/openSUSE osv.

Vi gør det på to måder. Den første metode bruger IPTables/firewallD, og den anden metode bruger TCP-indpakninger ved hjælp af filen hosts.allow og hosts.deny.

Se de følgende vejledninger for at få mere at vide om IPTables og Firewalld.

  1. Grundlæggende vejledning om IPTables (Linux Firewall) Tips/kommandoer
  2. Sådan opsættes en Iptables-firewall for at aktivere fjernadgang til tjenester i Linux
  3. Sådan konfigureres 'FirewallD' i RHEL/CentOS 7 og Fedora 21
  4. Nyttige 'FirewallD' regler til konfiguration og styring af firewall i Linux

Nu er du klar over, hvad der er IPTables og FirewallD, og det er det grundlæggende.

Metode 1: Bloker SSH- og FTP-adgang ved hjælp af IPTables/FirewallD

Lad os nu se, hvordan vi blokerer SSH- og FTP-adgang til en bestemt IP (for eksempel 192.168.1.100) og/eller netværksinterval (for eksempel 192.168.1.0/24) ved hjælp af IPtables på RHEL/CentOS/Scientific Linux 6.x-versioner og FirewallD på CentOS 7.x.

--------------------- 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 at få nye regler i kraft skal du bruge følgende kommando.

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

Prøv nu at SSH serveren fra den blokerede vært. Vær opmærksom på, at her er 192.168.1.150 den blokerede vært.

# ssh 192.168.1.150

Du skal se følgende meddelelse.

ssh: connect to host 192.168.1.150 port 22: Connection refused

For at fjerne blokeringen eller aktivere SSH-adgang skal du gå til fjernserveren og køre 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

Gem ændringerne ved hjælp af følgende for at få adgang til din server via SSH.

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

Standardportene til FTP er typisk 20 og 21. For at blokere al FTP-trafik ved hjælp af IPTables skal du køre 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 at få nye regler i kraft skal du bruge følgende kommando.

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

Prøv nu at få adgang til serveren fra den blokerede vært (192.168.1.100) med kommando:

# ftp 192.168.1.150

Du får en fejlmeddelelse, som ligner nedenfor.

ftp: connect: Connection refused

For at fjerne blokeringen og aktivere FTP-adgang igen skal du køre:

--------------------- 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

Gem ændringerne med kommando:

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

Prøv nu at få adgang til serveren via FTP:

# ftp 192.168.1.150

Indtast dit ftp brugernavn og din adgangskode.

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: Bloker SSH- og FTP-adgang ved hjælp af TCP-indpakninger

Hvis du ikke vil rode med IPTables eller FirewallD, er TCP-indpakninger den bedre måde at blokere SSH- og FTP-adgang til en bestemt IP og/eller en række netværk.

OpenSSH og FTP er kompileret med TCP-indpakningsunderstøttelse, hvilket betyder, at du kan angive, hvilke værter der må oprette forbindelse uden at røre din firewall i følgende to vigtige filer og er:

  1. /etc/hosts.allow
  2. /etc/hosts.deny

Som navnet antyder, indeholder den første fil poster af tilladte værter, og den anden indeholder adresser for blokerede værter.

Lad os for eksempel blokere SSH- og FTP-adgangen til værten, der har IP-adressen 192.168.1.100 og netværksområdet 192.168.1.0. Denne metode er den samme for CentOS 6.x og 7.x serier. Og selvfølgelig fungerer det på andre distributioner som Debian, Ubuntu, SUSE, openSUSE osv.

Åbn filen /etc/hosts.deny , og tilføj følgende IP-adresser eller netværksinterval, du vil blokere 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

Gem og afslut filen.

Genstart sshd og vsftpd-tjenesten for at træde nye ændringer i kraft.

--------------- 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 nu at SSH serveren eller fra en blokeret vært.

# ssh 192.168.1.150

Du får vist følgende output:

ssh_exchange_identification: read: Connection reset by peer

Prøv nu at FTP-serveren eller fra en blokeret vært.

# ftp 192.168.1.150

Du får vist følgende output:

Connected to 192.168.1.150.
421 Service not available.

For at fjerne blokeringen eller aktivere SSH- og FTP-tjenester igen skal du redigere hosts.deny-filen og kommentere alle linjer og til sidst genstarte vsftpd- og sshd-tjenester.

Konklusion

Det er alt for nu. For at opsummere lærte vi i dag, hvordan man blokerer en bestemt IP-adresse og et netværksinterval ved hjælp af IPTables, FirewallD og TCP-indpakninger. Disse metoder er ret nemme og ligetil.

Selv en nybegynder Linux-administrator kan gøre dette om et par minutter. Hvis du kender nogle andre måder at blokere SSH- og FTP-adgang på, er du velkommen til at dele dem i kommentarsektionen. Og glem ikke at dele vores artikler i dine alle sociale netværk.