Jinsi ya Kuzuia Ufikiaji wa SSH na FTP kwa IP Maalum na Masafa ya Mtandao katika Linux


Kwa kawaida sisi sote hutumia huduma za SSH na FTP mara nyingi kufikia seva za mbali na seva pepe za faragha. Kama msimamizi wa Linux, ni lazima ufahamu jinsi ya kuzuia ufikiaji wa SSH na FTP kwa IP au masafa mahususi ya mtandao katika Linux ili kukaza usalama zaidi.

  1. Vidokezo 25 vya Kuimarisha Usalama kwa Seva za Linux
  2. Vidokezo 5 Muhimu vya Kulinda na Kulinda Seva ya SSH

Mafunzo haya yatakuonyesha jinsi ya kuzuia ufikiaji wa SSH na FTP kwa anwani fulani ya IP na/au safu ya mtandao katika seva ya CentOS 6 na 7. Mwongozo huu ulijaribiwa kwenye matoleo ya CentOS 6.x na 7.x, lakini pengine utafanya kazi kwenye usambazaji mwingine wa Linux kama vile Debian, Ubuntu, na SUSE/openSUSE n.k.

Tutafanya kwa njia mbili. Njia ya kwanza ni kutumia IPTables/firewallD na njia ya pili ni kutumia wrappers za TCP kwa usaidizi wa hosts.allow na hosts.deny faili.

Rejelea miongozo ifuatayo ili kujua zaidi kuhusu IPTables na Firewalld.

  1. Mwongozo wa Msingi kwenye IPTables (Linux Firewall) Vidokezo/Amri
  2. Jinsi ya Kuweka Iptables Firewall ili Kuwezesha Ufikiaji wa Huduma za Mbali katika Linux
  3. Jinsi ya kusanidi ‘FirewallD’ katika RHEL/CentOS 7 na Fedora 21
  4. Sheria Muhimu za ‘FirewallD’ za Kusanidi na Kudhibiti Firewall katika Linux

Sasa unafahamu kuhusu IPTables na FirewallD ni nini na ni mambo ya msingi.

Njia ya 1: Zuia Ufikiaji wa SSH na FTP Kwa Kutumia IPTables/FirewallD

Sasa hebu tuone jinsi ya kuzuia ufikiaji wa SSH na FTP kwa IP maalum (kwa mfano 192.168.1.100) na/au masafa ya mtandao (kwa mfano 192.168.1.0/24) kwa kutumia IPtables kwenye matoleo ya RHEL/CentOS/Scientific Linux 6.x na FirewallD kwenye 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

Ili kutekeleza sheria mpya, unahitaji kutumia amri ifuatayo.

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

Sasa, jaribu SSH seva kutoka kwa mwenyeji aliyezuiwa. Tafadhali kumbuka kuwa hapa 192.168.1.150 ni mwenyeji aliyezuiwa.

# ssh 192.168.1.150

Unapaswa kuona ujumbe ufuatao.

ssh: connect to host 192.168.1.150 port 22: Connection refused

Ili kufungua au kuwezesha ufikiaji wa SSH, nenda kwa seva ya mbali na utekeleze amri ifuatayo:

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

Hifadhi mabadiliko kwa kutumia zifuatazo kufikia seva yako kupitia SSH.

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

Kwa kawaida, bandari chaguo-msingi za FTP ni 20 na 21. Kwa hivyo, ili kuzuia trafiki yote ya FTP kwa kutumia IPTables endesha amri ifuatayo:

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

Ili kutekeleza sheria mpya, unahitaji kutumia amri ifuatayo.

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

Sasa, jaribu kupata seva kutoka kwa mwenyeji aliyezuiwa (192.168.1.100), kwa amri:

# ftp 192.168.1.150

Utapata ujumbe wa hitilafu kitu kama hapa chini.

ftp: connect: Connection refused

Ili kufungua na kuwezesha ufikiaji wa FTP nyuma, endesha:

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

Hifadhi mabadiliko kwa amri:

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

Sasa, jaribu kufikia seva kupitia FTP:

# ftp 192.168.1.150

Ingiza jina lako la mtumiaji na nenosiri la 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> 

Njia ya 2: Zuia Ufikiaji wa SSH na FTP Kwa Kutumia Vifuniko vya TCP

Ikiwa hutaki kuchafua IPTables au FirewallD, basi vifungashio vya TCP ndiyo njia bora ya kuzuia ufikiaji wa SSH na FTP kwa IP mahususi na/au anuwai ya mtandao.

OpenSSH na FTP zimekusanywa kwa usaidizi wa vifungashio vya TCP, ambayo inamaanisha unaweza kubainisha ni seva pangishi zinazoruhusiwa kuunganishwa bila kugusa ngome yako katika faili mbili muhimu zifuatazo na ni:

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

Kama jina linamaanisha, faili ya kwanza ina maingizo ya wapangishi wanaoruhusiwa, na ya pili ina anwani za wapangishi waliozuiwa.

Kwa mfano, hebu tuzuie ufikiaji wa SSH na FTP kwa seva pangishi ambayo ina anwani ya IP 192.168.1.100 na masafa ya mtandao 192.168.1.0. Njia hii ni sawa kwa mfululizo wa CentOS 6.x na 7.x. Na, kwa kweli, itafanya kazi kwa usambazaji mwingine kama vile Debian, Ubuntu, SUSE, openSUSE nk.

Fungua faili ya /etc/hosts.deny na uongeze Anwani za IP zifuatazo au masafa ya mtandao unayotaka kuzuia kama inavyoonyeshwa hapa chini.

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

Hifadhi na uondoke faili.

Sasa, anzisha tena huduma ya sshd na vsftpd ili kuchukua mabadiliko mapya.

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

Sasa, jaribu SSH seva au kutoka kwa mwenyeji aliyezuiwa.

# ssh 192.168.1.150

Utaona matokeo yafuatayo:

ssh_exchange_identification: read: Connection reset by peer

Sasa, jaribu FTP seva au kutoka kwa seva pangishi iliyozuiwa.

# ftp 192.168.1.150

Utaona matokeo yafuatayo:

Connected to 192.168.1.150.
421 Service not available.

Ili kufungua au kuwezesha huduma za SSH na FTP tena, hariri faili ya hosts.deny na utoe maoni kwa njia zote na hatimaye uanzishe upya huduma za vsftpd na sshd.

Hitimisho

Hayo ni yote kwa sasa. Kwa muhtasari, leo tumejifunza jinsi ya kuzuia anwani mahususi ya IP na masafa ya mtandao kwa kutumia IPTables, FirewallD, na kanga za TCP. Mbinu hizi ni rahisi sana na moja kwa moja.

Hata, msimamizi wa Linux anayeanza anaweza kufanya hivi kwa dakika chache. Ikiwa unajua njia zingine za kuzuia ufikiaji wa SSH na FTP, jisikie huru kuzishiriki katika sehemu ya maoni. Na usisahau kushiriki nakala zetu kwenye mitandao yako yote ya kijamii.