Kako blokirati dostop SSH in FTP do določenega obsega IP in omrežja v Linuxu


Običajno vsi uporabljamo storitve SSH in FTP za dostop do oddaljenih strežnikov in navideznih zasebnih strežnikov. Kot skrbnik Linuxa se morate zavedati, kako blokirati dostop SSH in FTP do določenega obsega IP ali omrežja v Linuksu, da še nekoliko poostrite varnost.

  1. 25 Varnostnih nasvetov za utrjevanje strežnikov Linux
  2. 5 koristnih nasvetov za zaščito in zaščito SSH strežnika

Ta vadnica vam bo pokazala, kako blokirati dostop SSH in FTP do določenega naslova IP in/ali obsega omrežja v strežniku CentOS 6 in 7. Ta priročnik je bil preizkušen na različicah CentOS 6.x in 7.x, vendar bo verjetno deloval v drugih distribucijah Linuxa, kot so Debian, Ubuntu in SUSE/openSUSE itd.

To bomo storili na dva načina. Prva metoda uporablja IPTables/firewallD, druga metoda pa uporabo ovojnic TCP s pomočjo datotek hosts.allow in hosts.deny.

Oglejte si naslednja navodila, če želite izvedeti več o IPTables in Firewalld.

  1. Osnovni vodnik po nasvetih/ukazih za IPTables (požarni zid Linux)
  2. Kako nastaviti požarni zid Iptables, da omogoči oddaljeni dostop do storitev v Linuxu
  3. Kako nastaviti »FirewallD« v RHEL/CentOS 7 in Fedora 21
  4. Uporabna pravila „Požarni zidD“ za konfiguriranje in upravljanje požarnega zidu v Linuxu

Zdaj se zavedate, kaj sta IPTables in FirewallD in to je osnova.

1. način: Blokirajte dostop SSH in FTP z uporabo IPTables/FirewallD

Zdaj pa poglejmo, kako blokirati dostop SSH in FTP do določenega IP-ja (na primer 192.168.1.100) in/ali obsega omrežja (na primer 192.168.1.0/24) z uporabo IPtables v različicah RHEL/CentOS/Scientific Linux 6.x in Požarni zidD na 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

Če želite uveljaviti nova pravila, morate uporabiti naslednji ukaz.

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

Zdaj poskusite strežnik SSH blokirati z blokiranega gostitelja. Upoštevajte, da je tukaj 192.168.1.150 blokiran gostitelj.

# ssh 192.168.1.150

Videti bi morali naslednje sporočilo.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Če želite odblokirati ali omogočiti dostop SSH, pojdite na oddaljeni strežnik in zaženite naslednji ukaz:

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

Spremembe shranite tako, da dostopate do strežnika prek SSH.

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

Običajno so privzeta vrata za FTP 20 in 21. Torej, če želite blokirati ves promet FTP z uporabo IPTables, zaženite naslednji ukaz:

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

Če želite uveljaviti nova pravila, morate uporabiti naslednji ukaz.

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

Zdaj poskusite dostopati do strežnika z blokiranega gostitelja (192.168.1.100) z ukazom:

# ftp 192.168.1.150

Prikaže se sporočilo o napaki, kot je spodaj.

ftp: connect: Connection refused

Če želite odblokirati in omogočiti dostop do FTP nazaj, zaženite:

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

Spremembe shranite z ukazom:

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

Zdaj poskusite dostopati do strežnika prek FTP:

# ftp 192.168.1.150

Vnesite svoje uporabniško ime in geslo za ftp.

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> 

2. način: Blokirajte dostop SSH in FTP z uporabo TCP ovojnic

Če se ne želite zapletati z IPTables ali FirewallD, so TCP ovojnice boljši način za blokiranje SSH in FTP dostopa do določenega IP in/ali obsega omrežja.

OpenSSH in FTP sta sestavljena s podporo za zavijanje TCP, kar pomeni, da lahko v naslednjih dveh pomembnih datotekah določite, kateri gostitelji se lahko povežejo, ne da bi se dotaknili požarnega zidu:

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

Kot že ime pove, prva datoteka vsebuje vnose dovoljenih gostiteljev, druga pa naslove blokiranih gostiteljev.

Na primer, blokirajmo dostop SSH in FTP do gostitelja, ki ima naslov IP 192.168.1.100 in obseg omrežja 192.168.1.0. Ta metoda je enaka za CentOS 6.x in 7.x serije. In seveda bo delovalo tudi v drugih distribucijah, kot so Debian, Ubuntu, SUSE, openSUSE itd.

Odprite datoteko /etc/hosts.deny in dodajte naslednje naslove IP ali omrežni obseg, ki ga želite blokirati, kot je prikazano spodaj.

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

Shranite in zapustite datoteko.

Zdaj znova zaženite storitvi sshd in vsftpd, da začnejo veljati nove spremembe.

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

Zdaj poskusite SSH strežnik ali z blokiranega gostitelja.

# ssh 192.168.1.150

Videli boste naslednji izhod:

ssh_exchange_identification: read: Connection reset by peer

Zdaj poskusite FTP strežnik ali z blokiranega gostitelja.

# ftp 192.168.1.150

Videli boste naslednji izhod:

Connected to 192.168.1.150.
421 Service not available.

Če želite znova odblokirati ali omogočiti storitve SSH in FTP, uredite datoteko hosts.deny in komentirajte vse vrstice ter na koncu znova zaženite storitve vsftpd in sshd.

Zaključek

To je vse za zdaj. Če povzamemo, danes smo se naučili, kako blokirati določen naslov IP in obseg omrežja z ovojnicami IPTables, FirewallD in TCP. Te metode so precej enostavne in enostavne.

Tudi skrbnik začetnika Linuxa lahko to stori v nekaj minutah. Če poznate nekatere druge načine blokiranja dostopa SSH in FTP, jih lahko delite v oddelku za komentarje. In ne pozabite deliti naših člankov v vseh svojih družbenih omrežjih.