Kako blokirati SSH i FTP pristup određenoj IP adresi i opsegu mreže u Linuxu


Obično svi često koristimo SSH i FTP usluge za pristup udaljenim serverima i virtuelnim privatnim serverima. Kao Linux administrator, morate biti svjesni kako blokirati SSH i FTP pristup određenom IP-u ili rasponu mreže u Linuxu kako biste još malo pooštrili sigurnost.

  1. 25 Savjeti za jačanje sigurnosti za Linux servere
  2. 5 korisnih savjeta za sigurnost i zaštitu SSH servera

Ovaj vodič će vam pokazati kako blokirati SSH i FTP pristup određenoj IP adresi i/ili opsegu mreže u CentOS 6 i 7 serveru. Ovaj vodič je testiran na verzijama CentOS 6.x i 7.x, ali će vjerojatno raditi i na drugim distribucijama Linuxa kao što su Debian, Ubuntu i SUSE/openSUSE itd.

Uradićemo to na dva načina. Prva metoda koristi IPTables/firewallD, a druga metoda koristi TCP omote uz pomoć hosts.allow > i hosts.deny fajl.

Pogledajte sljedeće vodiče da saznate više o IPTables i Firewalld-u.

  1. Osnovni vodič za IPTables (Linux Firewall) Savjeti/naredbe
  2. Kako postaviti Iptables Firewall da omogućite daljinski pristup uslugama u Linuxu
  3. Kako konfigurirati 'FirewallD' u RHEL/CentOS 7 i Fedora 21
  4. Korisna pravila 'FirewallD' za konfiguriranje i upravljanje vatrozidom u Linuxu

Sada ste svjesni šta su IPTables i FirewallD i to su osnove.

Metoda 1: Blokirajte SSH i FTP pristup koristeći IPTables/FirewallD

Sada da vidimo kako blokirati SSH i FTP pristup određenoj IP adresi (na primjer 192.168.1.100) i/ili opsegu mreže (na primjer 192.168.1.0/24) koristeći IPtables na RHEL/CentOS/Scientific Linux 6.x verzijama i FirewallD na CentOS 7.x.

Blokirajte ili onemogućite SSH pristup

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

Da biste stupili na snagu nova pravila, trebate koristiti sljedeću naredbu.

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

Sada pokušajte SSH server sa blokiranog hosta. Imajte na umu da je ovdje 192.168.1.150 blokirani host.

ssh 192.168.1.150

Trebali biste vidjeti sljedeću poruku.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Deblokirajte ili omogućite SSH pristup

Da deblokirate ili omogućite SSH pristup, idite na udaljeni server i pokrenite sljedeću naredbu:

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

Sačuvajte promjene koristeći sljedeće za pristup vašem serveru putem SSH-a.

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

Blokirajte ili onemogućite FTP pristup

Tipično, zadani portovi za FTP su 20 i 21. Dakle, da blokirate sav FTP saobraćaj koristeći IPTables, pokrenite sljedeću naredbu:

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

Da biste stupili na snagu nova pravila, trebate koristiti sljedeću naredbu.

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

Sada pokušajte pristupiti serveru sa blokiranog hosta (192.168.1.100), sa naredbom:

ftp 192.168.1.150

Dobit ćete poruku o grešci nešto kao ispod.

ftp: connect: Connection refused

Deblokirajte ili omogućite FTP pristup

Da deblokirate i vratite FTP pristup, pokrenite:

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

Sačuvajte promene komandom:

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

Sada pokušajte pristupiti serveru preko FTP-a:

ftp 192.168.1.150

Unesite svoje ftp korisničko ime i lozinku.

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> 

Metoda 2: Blokirajte SSH i FTP pristup pomoću TCP omotača

Ako se ne želite petljati sa IPTables ili FirewallD, onda je TCP omotač bolji način da blokirate SSH i FTP pristup određenom IP i/ili niz mreža.

OpenSSH i FTP su kompajlirani sa podrškom za TCP omote, što znači da možete odrediti koji se hostovi mogu povezati bez dodirivanja vašeg firewall-a u sljedeće dvije važne datoteke, a to su:

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

Kao što naziv govori, prva datoteka sadrži unose dozvoljenih hostova, a druga sadrži adrese blokiranih hostova.

Na primjer, blokirajmo SSH i FTP pristup hostu koji ima IP adresu 192.168.1.100 i opseg mreže 192.168.1.0. Ova metoda je ista za CentOS 6.x i 7.x serije. I, naravno, radit će na drugim distribucijama kao što su Debian, Ubuntu, SUSE, openSUSE itd.

Otvorite datoteku /etc/hosts.deny i dodajte sljedeće IP adrese ili opseg mreže koje želite blokirati kao što je prikazano ispod.

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

Sačuvajte i izađite iz datoteke.

Sada ponovo pokrenite sshd i vsftpd servis da nove promjene stupe na snagu.

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

Sada pokušajte SSH na serveru ili sa blokiranog hosta.

ssh 192.168.1.150

Vidjet ćete sljedeći izlaz:

ssh_exchange_identification: read: Connection reset by peer

Sada pokušajte FTP server ili sa blokiranog hosta.


ftp 192.168.1.150

Vidjet ćete sljedeći izlaz:

Connected to 192.168.1.150.
421 Service not available.

Da biste ponovo deblokirali ili omogućili SSH i FTP usluge, uredite datoteku hosts.deny i komentarišite sve linije i konačno ponovo pokrenite vsftpd i sshd usluge.

Zaključak

To je sve za sada. Da sumiramo, danas smo naučili kako blokirati određenu IP adresu i opseg mreže koristeći IPTables, FirewallD i TCP omote. Ove metode su prilično jednostavne i jednostavne.

Čak i početnik Linux administrator to može učiniti za nekoliko minuta. Ako znate neke druge načine da blokirate SSH i FTP pristup, slobodno ih podijelite u odjeljku za komentare. I ne zaboravite podijeliti naše članke na svim vašim društvenim mrežama.