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.
- 25 Varnostnih nasvetov za utrjevanje strežnikov Linux
- 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.
- Osnovni vodnik po nasvetih/ukazih za IPTables (požarni zid Linux)
- Kako nastaviti požarni zid Iptables, da omogoči oddaljeni dostop do storitev v Linuxu
- Kako nastaviti »FirewallD« v RHEL/CentOS 7 in Fedora 21
- 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:
- /etc/hosts.allow
- /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.