Kaip blokuoti SSH ir FTP prieigą prie konkretaus IP ir tinklo diapazono


Paprastai mes visi naudojame SSH ir FTP paslaugas, kad galėtume pasiekti nuotolinius serverius ir virtualius privačius serverius. Kaip „Linux“ administratorius, turite žinoti, kaip blokuoti SSH ir FTP prieigą prie konkretaus „Linux“ IP ar tinklo diapazono, kad galėtumėte dar labiau sugriežtinti saugumą.

  1. 25 „Linux“ serverių apsaugos patarimai
  2. 5 naudingi patarimai, kaip apsaugoti ir apsaugoti SSH serverį

Ši pamoka parodys, kaip blokuoti SSH ir FTP prieigą prie konkretaus IP adreso ir (arba) tinklo diapazono „CentOS 6“ ir „7“ serveryje. Šis vadovas buvo išbandytas naudojant „CentOS 6.x“ ir „7.x“ versijas, tačiau tikriausiai jis veiks su kitais „Linux“ paskirstymais, tokiais kaip „Debian“, „Ubuntu“ ir „SUSE/openSUSE“ ir kt.

Mes tai darysime dviem būdais. Pirmasis metodas yra „IPTables/FirewallD“ naudojimas, o antrasis metodas - naudojant TCP paketus naudojant failus hosts.allow ir hosts.deny.

Norėdami sužinoti daugiau apie „IPTables“ ir „Firewalld“, skaitykite šiuos vadovus.

  1. Pagrindinis „IPTables“ („Linux“ užkardos) vadovas ir patarimai
  2. Kaip nustatyti „Iptables“ užkardą, kad įgalintumėte nuotolinę prieigą prie „Linux“ paslaugų
  3. Kaip konfigūruoti „FirewallD“ RHEL/CentOS 7 ir Fedora 21
  4. Naudingos „FirewallD“ taisyklės užkardai konfigūruoti ir valdyti sistemoje „Linux“

Dabar jūs žinote, kas yra „IPTables“ ir „FirewallD“, ir jo pagrindus.

1 metodas: blokuokite SSH ir FTP prieigą naudodami „IPTables“/„FirewallD“

Dabar pažiūrėkime, kaip blokuoti SSH ir FTP prieigą prie konkretaus IP (pvz., 192.168.1.100) ir (arba) tinklo diapazono (pvz., 192.168.1.0/24), naudojant „IPtables“ RHEL/CentOS/Scientific Linux 6.x versijose ir FirewallD „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

Kad įsigaliotų naujos taisyklės, turite naudoti šią komandą.

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

Dabar pabandykite SSH serverį iš užblokuoto pagrindinio kompiuterio. Atminkite, kad čia 192.168.1.150 yra užblokuotas pagrindinis kompiuteris.

# ssh 192.168.1.150

Turėtumėte pamatyti šį pranešimą.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Norėdami atblokuoti arba įgalinti SSH prieigą, eikite į nuotolinį serverį ir vykdykite šią komandą:

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

Išsaugokite pakeitimus naudodamiesi šiais būdais, kad pasiektumėte savo serverį per SSH.

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

Paprastai numatytieji FTP prievadai yra 20 ir 21. Taigi, norėdami užblokuoti visą FTP srautą naudodami „IPTables“, vykdykite šią komandą:

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

Kad įsigaliotų naujos taisyklės, turite naudoti šią komandą.

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

Dabar pabandykite pasiekti serverį iš užblokuoto pagrindinio kompiuterio (192.168.1.100) su komanda:

# ftp 192.168.1.150

Gausite klaidos pranešimą, panašų į žemiau pateiktą.

ftp: connect: Connection refused

Norėdami atblokuoti ir įgalinti FTP prieigą atgal, paleiskite:

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

Išsaugokite pakeitimus naudodami komandą:

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

Dabar pabandykite pasiekti serverį per FTP:

# ftp 192.168.1.150

Įveskite savo ftp vartotojo vardą ir slaptažodį.

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 metodas: blokuokite SSH ir FTP prieigą naudodami TCP įvyniotuvus

Jei nenorite netvarkauti su „IPTables“ ar „FirewallD“, tada TCP pakuotės yra geresnis būdas blokuoti SSH ir FTP prieigą prie konkretaus IP ir (arba) tinklo diapazono.

„OpenSSH“ ir „FTP“ yra kompiliuojami su „TCP wrappers“ palaikymu, o tai reiškia, kad galite nurodyti, kuriems kompiuteriams leidžiama prisijungti neliečiant užkardos, šiuose dviejuose svarbiuose failuose:

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

Kaip rodo pavadinimas, pirmajame faile yra leidžiamų kompiuterių įrašai, o antrame - užblokuotų kompiuterių adresai.

Pvz., Užblokuokime SSH ir FTP prieigą prie pagrindinio kompiuterio, kurio IP adresas yra 192.168.1.100 ir tinklo diapazonas 192.168.1.0. Šis metodas yra tas pats „CentOS 6.x“ ir „7.x“ serijose. Be abejo, jis veiks ir kituose platinimuose, tokiuose kaip Debian, Ubuntu, SUSE, openSUSE ir kt.

Atidarykite failą /etc/hosts.deny ir pridėkite šiuos IP adresus arba tinklo diapazoną, kuriuos norite užblokuoti, kaip parodyta žemiau.

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

Išsaugokite ir išeikite iš failo.

Dabar iš naujo paleiskite „sshd“ ir „vsftpd“ paslaugas, kad įsigaliotų nauji pakeitimai.

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

Dabar pabandykite SSH serverį arba iš užblokuoto pagrindinio kompiuterio.

# ssh 192.168.1.150

Pamatysite šį išvestį:

ssh_exchange_identification: read: Connection reset by peer

Dabar pabandykite FTP serverį arba iš užblokuoto pagrindinio kompiuterio.

# ftp 192.168.1.150

Pamatysite šį išvestį:

Connected to 192.168.1.150.
421 Service not available.

Norėdami vėl atblokuoti arba įgalinti SSH ir FTP paslaugas, redaguokite failą hosts.deny ir komentuokite visas eilutes ir galiausiai iš naujo paleiskite vsftpd ir sshd paslaugas.

Išvada

Kol kas viskas. Apibendrindami, šiandien sužinojome, kaip blokuoti konkretų IP adresą ir tinklo diapazoną naudojant IPTables, FirewallD ir TCP paketus. Šie metodai yra gana lengvi ir nesudėtingi.

Net pradedantysis „Linux“ administratorius gali tai padaryti per kelias minutes. Jei žinote keletą kitų būdų blokuoti SSH ir FTP prieigą, nedvejodami pasidalykite jais komentarų skiltyje. Nepamirškite pasidalinti mūsų straipsniais visuose savo socialiniuose tinkluose.