Kā bloķēt SSH un FTP piekļuvi noteiktam IP un tīkla diapazonam Linux


Parasti mēs visi bieži izmantojam SSH un FTP pakalpojumus, lai piekļūtu attālajiem serveriem un virtuālajiem privātajiem serveriem. Kā Linux administratoram jums jāzina, kā bloķēt SSH un FTP piekļuvi noteiktam Linux IP vai tīkla diapazonam, lai mazliet vairāk pievilktu drošību.

  1. 25 Linux serveru drošības padomi
  2. 5 noderīgi padomi SSH servera drošībai un aizsardzībai

Šī apmācība parādīs, kā bloķēt SSH un FTP piekļuvi noteiktai IP adresei un/vai tīkla diapazonam CentOS 6 un 7 serverī. Šī rokasgrāmata tika pārbaudīta ar CentOS 6.x un 7.x versijām, taču tā, iespējams, darbosies citos Linux izplatījumos, piemēram, Debian, Ubuntu un SUSE/openSUSE utt.

Mēs to darīsim divās metodēs. Pirmā metode ir IPTables/firewallD izmantošana, bet otrā metode ir TCP ietinēju izmantošana ar failu hosts.allow un hosts.deny palīdzību.

Skatiet šīs rokasgrāmatas, lai uzzinātu vairāk par IPTables un Firewalld.

  1. IPTable (Linux Firewall) padomu/komandu pamatnostādnes
  2. Kā iestatīt Iptables ugunsmūri, lai iespējotu attālo piekļuvi pakalpojumiem Linux
  3. Kā konfigurēt ‘FirewallD’ RHEL/CentOS 7 un Fedora 21
  4. Noderīgi noteikumi “FirewallD”, lai konfigurētu un pārvaldītu ugunsmūri Linux

Tagad jūs zināt, kas ir IPTables un FirewallD, un tā pamati.

1. metode: bloķējiet piekļuvi SSH un FTP, izmantojot IPTables/FirewallD

Tagad ļaujiet mums redzēt, kā bloķēt SSH un FTP piekļuvi noteiktam IP (piemēram, 192.168.1.100) un/vai tīkla diapazonam (piemēram, 192.168.1.0/24), izmantojot IPtabulas RHEL/CentOS/Scientific Linux 6.x versijās un FirewallD uz 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

Lai stātos spēkā jauni noteikumi, jums jāizmanto šāda komanda.

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

Tagad mēģiniet SSH serveri no bloķētā resursdatora. Lūdzu, ņemiet vērā, ka šeit 192.168.1.150 ir bloķēts resursdators.

# ssh 192.168.1.150

Jums vajadzētu redzēt šādu ziņojumu.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Lai atbloķētu vai iespējotu piekļuvi SSH, dodieties uz attālo serveri un izpildiet šādu komandu:

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

Saglabājiet izmaiņas, izmantojot sekojošo, lai piekļūtu savam serverim, izmantojot SSH.

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

Parasti FTP noklusējuma porti ir 20 un 21. Tātad, lai bloķētu visu FTP trafiku, izmantojot IPTables, izpildiet šādu komandu:

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

Lai stātos spēkā jauni noteikumi, jums jāizmanto šāda komanda.

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

Tagad mēģiniet piekļūt serverim no bloķētā resursdatora (192.168.1.100) ar komandu:

# ftp 192.168.1.150

Jūs saņemsit kļūdas ziņojumu, piemēram, zemāk.

ftp: connect: Connection refused

Lai atbloķētu un iespējotu FTP piekļuvi atpakaļ, palaidiet:

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

Saglabājiet izmaiņas ar komandu:

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

Tagad mēģiniet piekļūt serverim, izmantojot FTP:

# ftp 192.168.1.150

Ievadiet savu ftp lietotājvārdu un paroli.

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. metode: bloķējiet piekļuvi SSH un FTP, izmantojot TCP iesaiņotājus

Ja jūs nevēlaties sajaukt ar IPTables vai FirewallD, TCP iesaiņotāji ir labākais veids, kā bloķēt SSH un FTP piekļuvi noteiktam IP un/vai tīkla diapazonam.

OpenSSH un FTP tiek apkopoti ar TCP iesaiņotāju atbalstu, kas nozīmē, ka divos šādos svarīgos failos varat norādīt, kuriem saimniekiem ir atļauts izveidot savienojumu, nepieskaroties ugunsmūrim:

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

Kā norāda nosaukums, pirmajā failā ir iekļauti atļauto resursdatoru ieraksti, bet otrajā - bloķēto saimnieku adreses.

Piemēram, bloķēsim SSH un FTP piekļuvi resursdatoram, kuram ir IP adrese 192.168.1.100 un tīkla diapazons 192.168.1.0. Šī metode ir vienāda CentOS 6.x un 7.x sērijām. Protams, tas darbosies arī citos izplatījumos, piemēram, Debian, Ubuntu, SUSE, openSUSE utt.

Atveriet failu /etc/hosts.deny un pievienojiet šādas IP adreses vai tīkla diapazonu, kuru vēlaties bloķēt, kā parādīts zemāk.

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

Saglabājiet un izejiet no faila.

Tagad restartējiet sshd un vsftpd pakalpojumu, lai stātos spēkā jaunas izmaiņas.

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

Tagad mēģiniet SSH serveri vai bloķētu resursdatoru.

# ssh 192.168.1.150

Jūs redzēsiet šādu izvadi:

ssh_exchange_identification: read: Connection reset by peer

Tagad mēģiniet FTP serveri vai bloķētu resursdatoru.

# ftp 192.168.1.150

Jūs redzēsiet šādu izvadi:

Connected to 192.168.1.150.
421 Service not available.

Lai atkal atbloķētu vai iespējotu SSH un FTP pakalpojumus, rediģējiet failu hosts.deny un komentējiet visas rindas un visbeidzot restartējiet vsftpd un sshd pakalpojumus.

Secinājums

Tas pagaidām ir viss. Apkopojot, šodien mēs uzzinājām, kā bloķēt noteiktu IP adresi un tīkla diapazonu, izmantojot IPTables, FirewallD un TCP ietinējus. Šīs metodes ir diezgan vienkāršas un vienkāršas.

Pat iesācēju Linux administrators to var izdarīt pāris minūšu laikā. Ja jūs zināt dažus citus veidus, kā bloķēt piekļuvi SSH un FTP, nekautrējieties tos kopīgot komentāru sadaļā. Neaizmirstiet kopīgot mūsu rakstus visos savos sociālajos tīklos.