Kuidas blokeerida Linuxis SSH ja FTP juurdepääs konkreetsele IP- ja võrgupiirkonnale


Tavaliselt kasutame kõik kaugserveritele ja virtuaalsetele privaatserveritele juurdepääsu saamiseks SSH- ja FTP-teenuseid. Kui olete Linuxi administraator, peate turvalisuse natuke rangemaks muutmiseks teadma, kuidas blokeerida SSH ja FTP juurdepääs Linuxi konkreetsele IP-le või võrgupiirkonnale.

  1. 25 Linuxi serverite turvalisuse näpunäiteid
  2. 5 kasulikku näpunäidet SSH-serveri turvamiseks ja kaitsmiseks

See õpetus näitab teile, kuidas blokeerida SSH ja FTP juurdepääs konkreetsele IP-aadressile ja/või CentOS 6 ja 7 serveri võrgupiirkonnale. Seda juhendit testiti CentOS 6.x ja 7.x versioonidel, kuid see töötab tõenäoliselt ka teistes Linuxi distributsioonides nagu Debian, Ubuntu ja SUSE/openSUSE jne.

Teeme seda kahel viisil. Esimene meetod kasutab IPTables/tulemüüriD ja teine meetod TCP ümbriseid failide hosts.allow ja hosts.deny abil.

IPT-tabelite ja tulemüüri kohta lisateabe saamiseks lugege järgmisi juhendeid.

  1. IPTable'i (Linuxi tulemüüri) näpunäited/käsud - põhijuhend
  2. Kuidas seadistada Iptablesi tulemüür, et lubada Linuxis teenustele kaugjuurdepääs
  3. Kuidas seadistada faili FirewallD RHEL/CentOS 7 ja Fedora 21
  4. Kasulikud reeglid FirewallD Linuxi tulemüüri konfigureerimiseks ja haldamiseks

Nüüd olete teadlik sellest, mis on IPTabelid ja tulemüürD ning selle põhitõed.

1. meetod: blokeerige SSH ja FTP juurdepääs, kasutades IPTable/FirewallD

Vaatame nüüd, kuidas blokeerida SSH- ja FTP-juurdepääs konkreetsele IP-le (näiteks 192.168.1.100) ja/või võrgupiirkonnale (näiteks 192.168.1.0/24), kasutades IP-tabeleid RHEL/CentOS/Scientific Linux 6.x versioonides FirOS FirewallD saidil 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

Uute reeglite jõustamiseks peate kasutama järgmist käsku.

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

Nüüd proovige SSH-server blokeeritud hostilt. Pidage meeles, et siin on 192.168.1.150 blokeeritud host.

# ssh 192.168.1.150

Te peaksite nägema järgmist teadet.

ssh: connect to host 192.168.1.150 port 22: Connection refused

SSH-i juurdepääsu blokeerimiseks või lubamiseks minge kaugserverisse ja käivitage järgmine käsk:

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

Salvestage muudatused järgmiselt, et pääseda oma serverile juurde SSH kaudu.

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

Tavaliselt on FTP vaikepordid 20 ja 21. Seega kogu FTP-liikluse blokeerimiseks IPTable-ide abil käivitage järgmine käsk:

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

Uute reeglite jõustamiseks peate kasutama järgmist käsku.

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

Nüüd proovige pääseda serverile blokeeritud hostilt (192.168.1.100) käsuga:

# ftp 192.168.1.150

Saate veateate, mis sarnaneb allpool kirjeldatuga.

ftp: connect: Connection refused

FTP-de juurdepääsu blokeerimise tühistamiseks ja lubamiseks käivitage:

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

Salvestage muudatused käsuga:

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

Nüüd proovige pääseda serverile FTP kaudu:

# ftp 192.168.1.150

Sisestage oma ftp kasutajanimi ja parool.

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. meetod: blokeerige SSH- ja FTP-juurdepääs TCP-mähiste abil

Kui te ei soovi IPTable-ide või FirewallD-ga segi ajada, on TCP-mähised parem viis blokeerida SSH-le ja FTP-le juurdepääs konkreetsele IP-le ja/või võrgu vahemikule.

OpenSSH ja FTP kompileeritakse TCP ümbriste toega, mis tähendab, et saate määratleda, millistel hostidel on lubatud ühenduda ilma tulemüüri puudutamata järgmises kahes olulises failis:

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

Nagu nimigi ütleb, sisaldab esimene fail lubatud hostide kirjeid ja teine blokeeritud hostide aadresse.

Näiteks blokeerime SSH-le ja FTP-le juurdepääsu hostile, millel on IP-aadress 192.168.1.100 ja võrgupiirkond 192.168.1.0. See meetod on sama CentOS 6.x ja 7.x seeriate puhul. Muidugi töötab see ka muude distributsioonidega nagu Debian, Ubuntu, SUSE, openSUSE jne.

Avage fail /etc/hosts.deny ja lisage järgmised IP-aadressid või võrgupiirkond, mille soovite blokeerida, nagu allpool näidatud.

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

Salvestage ja väljuge failist.

Nüüd taaskäivitage sshd ja vsftpd teenused, et uued muudatused jõustuksid.

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

Nüüd proovige SSH-d serverisse või blokeeritud hostilt.

# ssh 192.168.1.150

Näete järgmist väljundit:

ssh_exchange_identification: read: Connection reset by peer

Nüüd proovige serverit või blokeeritud hostilt FTP-d.

# ftp 192.168.1.150

Näete järgmist väljundit:

Connected to 192.168.1.150.
421 Service not available.

SSH ja FTP teenuste uuesti deblokeerimiseks või lubamiseks muutke faili hosts.deny ja kommenteerige kõik read ning taaskäivitage vsftpd ja sshd teenused.

Järeldus

Praeguseks kõik. Kokkuvõtteks õppisime täna, kuidas blokeerida konkreetne IP-aadress ja võrgupiirkond IPTable'i, FirewallD ja TCP ümbriste abil. Need meetodid on üsna lihtsad ja arusaadavad.

Isegi algaja Linuxi administraator suudab selle paari minutiga teha. Kui teate mõnda muud viisi SSH ja FTP juurdepääsu blokeerimiseks, jagage neid julgelt kommentaaride jaotises. Ja ärge unustage jagada meie artikleid oma kõigis sotsiaalsetes võrgustikes.