Jinsi ya Kusanidi Firewall ya UFW kwenye Ubuntu na Debian


Ngome inayofanya kazi kwa usahihi ndiyo sehemu muhimu zaidi ya usalama kamili wa mfumo wa Linux. Kwa chaguo-msingi, usambazaji wa Debian na Ubuntu huja na zana ya usanidi ya ngome inayoitwa UFW (Uncomplicated Firewall), ni zana maarufu na rahisi kutumia ya mstari wa amri kwa ajili ya kusanidi na kudhibiti ngome kwenye usambazaji wa Ubuntu na Debian.

Katika makala hii, tutaelezea jinsi ya kufunga na kuanzisha firewall ya UFW kwenye usambazaji wa Ubuntu na Debian.

Kabla ya kuanza na kifungu hiki, hakikisha kuwa umeingia kwenye seva yako ya Ubuntu au Debian na mtumiaji wa sudo au na akaunti ya mizizi. Ikiwa huna mtumiaji wa sudo, unaweza kuunda moja kwa kutumia maagizo yafuatayo kama mtumiaji wa mizizi.

# adduser username
# usermod -aG sudo username 
# su - username
$ sudo whoami

Weka UFW Firewall kwenye Ubuntu na Debian

UFW (Firewall Isiyo ngumu) inapaswa kusakinishwa kwa chaguo-msingi katika Ubuntu na Debian, ikiwa sivyo, isakinishe kwa kutumia meneja wa kifurushi cha APT kwa kutumia amri ifuatayo.

$ sudo apt install ufw

Mara baada ya ufungaji kukamilika unaweza kuangalia hali ya UFW kwa kuandika.

$ sudo ufw status verbose

Katika usakinishaji wa kwanza, ngome ya UFW imezimwa kwa chaguo-msingi, matokeo yatakuwa sawa na hapa chini.

Status: inactive

Unaweza kuwezesha au kuwezesha ngome ya UFW kwa kutumia amri ifuatayo, ambayo inapaswa kupakia ngome na kuiwezesha kuanza kwenye buti.

$ sudo ufw enable

Ili kuzima firewall ya UFW, tumia amri ifuatayo, ambayo inapakua ngome na kuizima kutoka kwa kuwasha.

$ sudo ufw disable 

Kwa chaguo-msingi, ngome ya UFW inakataa kila miunganisho inayoingia na kuruhusu tu miunganisho yote ya nje kwa seva. Hii inamaanisha, hakuna mtu anayeweza kufikia seva yako, isipokuwa utafungua mlango mahususi, ilhali huduma zote zinazoendesha au programu kwenye seva yako zinaweza kufikia mtandao wa nje.

Sera chaguomsingi za ngome za UFW zimewekwa kwenye /etc/default/ufw faili na zinaweza kubadilishwa kwa kutumia amri ifuatayo.

$ sudo ufw default deny incoming
$ sudo ufw default allow outgoing

Unaposakinisha kifurushi cha programu kwa kutumia kidhibiti kifurushi cha APT, kitajumuisha wasifu wa programu katika saraka ya /etc/ufw/applications.d ambayo inafafanua huduma na kushikilia mipangilio ya UFW.

Unaweza kuorodhesha profaili zote za programu zinazopatikana kwenye seva yako kwa kutumia amri ifuatayo.

$ sudo ufw app list

Kulingana na usakinishaji wa kifurushi cha programu kwenye mfumo wako matokeo yataonekana sawa na yafuatayo:

Available applications:
  APACHE
  APACHE Full
  APACHE SECURE
  CUPS
  OpenSSH
  Postfix
  Postfix SMTPS
  Postfix Submission

Ikiwa unataka kupata maelezo zaidi kuhusu wasifu fulani na sheria zilizofafanuliwa unaweza kutumia amri ifuatayo.

$ sudo ufw app info 'Apache'
Profile: Apache
Title: Web Server 
Description: Apache V2 is the next generation f the omnipresent Apache web server.

Ports:
  80/tcp

Ikiwa seva yako imesanidiwa na IPv6, hakikisha kwamba UFW yako imesanidiwa kwa usaidizi wa IPv6 na IPv4. Ili kuithibitisha, fungua faili ya usanidi ya UFW kwa kutumia kihariri unachopenda.

$ sudo vi /etc/default/ufw

Kisha hakikisha “IPV6” imewekwa kuwa \ndiyo\ katika faili ya usanidi kama inavyoonyeshwa.

IPV6=yes

Hifadhi na uache. Kisha anzisha upya firewall yako na amri zifuatazo:

$ sudo ufw disable
$ sudo ufw enable

Ikiwa umewasha ngome ya UFW kufikia sasa, itazuia miunganisho yote inayoingia na ikiwa umeunganishwa kwenye seva yako kupitia SSH kutoka eneo la mbali, hutaweza tena kuiunganisha tena.

Wacha tuwashe miunganisho ya SSH kwa seva yetu ili kuzuia hilo kutokea kwa kutumia amri ifuatayo:

$ sudo ufw allow ssh

Ikiwa unatumia mlango maalum wa SSH (kwa mfano bandari 2222), basi unahitaji kufungua mlango huo kwenye ngome ya UFW kwa kutumia amri ifuatayo.

$ sudo ufw allow 2222/tcp

Ili kuzuia miunganisho yote ya SSH andika amri ifuatayo.

$ sudo ufw deny ssh/tcp
$ sudo ufw deny 2222/tcp  [If using custom SSH port]

Unaweza pia kufungua mlango maalum katika ngome ili kuruhusu miunganisho kupitia hiyo kwa huduma fulani. Kwa mfano, ikiwa unataka kusanidi seva ya wavuti ambayo inasikiza kwenye port 80 (HTTP) na 443 (HTTPS) kwa chaguomsingi.

Ifuatayo ni mifano michache ya jinsi ya kuruhusu miunganisho inayoingia kwa huduma za Apache.

$ sudo ufw allow http     [By service name]
$ sudo ufw allow 80/tcp   [By port number]
$ sudo ufw allow 'Apache' [By application profile]
$ sudo ufw allow https
$ sudo ufw allow 443/tcp
$ sudo ufw allow 'Apache Secure'

Kwa kudhani kuwa una programu-tumizi ambazo unataka kutekeleza kwenye bandari mbalimbali (5000-5003), unaweza kuongeza bandari hizi zote kwa kutumia amri zifuatazo.

sudo ufw allow 5000:5003/tcp
sudo ufw allow 5000:5003/udp

Ikiwa unataka kuruhusu miunganisho kwenye bandari zote kutoka kwa anwani maalum ya IP 192.168.56.1, basi unahitaji kutaja kutoka kabla ya anwani ya IP.

$ sudo ufw allow from 192.168.56.1

Ili kuruhusu muunganisho kwenye lango mahususi (kwa mfano lango 22) kutoka kwa mashine yako ya nyumbani yenye anwani ya IP ya 192.168.56.1, basi unahitaji kuongeza mlango wowote na nambari ya mlango baada ya anwani ya IP kama inavyoonyeshwa.

$ sudo ufw allow from 192.168.56.1 to any port 22

Ili kuruhusu miunganisho ya anwani mahususi za IP kuanzia 192.168.1.1 hadi 192.168.1.254 hadi mlango wa 22 (SSH), tumia amri ifuatayo.

$ sudo ufw allow from 192.168.1.0/24 to any port 22

Ili kuruhusu miunganisho kwa kiolesura maalum cha mtandao eth2 kwa lango fulani 22 (SSH), endesha amri ifuatayo.

$ sudo ufw allow in on eth2 to any port 22

Kwa chaguo-msingi, miunganisho yote inayoingia imezuiwa, isipokuwa ikiwa umefungua muunganisho mahsusi kwenye UFW. Kwa mfano, umefungua bandari 80 na 443 na seva yako ya wavuti inashambuliwa kutoka kwa mtandao usiojulikana 11.12.13.0/24.

Ili kuzuia miunganisho yote kutoka kwa safu hii ya mtandao ya 11.12.13.0/24, unaweza kutumia amri ifuatayo.

$ sudo ufw deny from 11.12.13.0/24

Ikiwa unataka tu kuzuia miunganisho kwenye bandari 80 na 443, unaweza kutumia amri zifuatazo.

$ sudo ufw deny from 11.12.13.0/24 to any port 80
$ sudo ufw deny from 11.12.13.0/24 to any port 443

Kuna njia 2 za kufuta sheria za UFW, kwa nambari ya sheria na kwa sheria halisi.

Ili kufuta sheria za UFW kwa kutumia nambari ya sheria, kwanza unahitaji kuorodhesha sheria kwa nambari kwa kutumia amri ifuatayo.

$ sudo ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] 22/tcp                     ALLOW IN    Anywhere
[ 2] 80/tcp                     ALLOW IN    Anywhere

Ili kufuta nambari ya sheria 1, tumia amri ifuatayo.

$ sudo ufw delete 1

Njia ya pili ni kufuta sheria kwa kutumia sheria halisi, kwa mfano kufuta sheria, taja nambari ya bandari na itifaki kama inavyoonyeshwa.

$ sudo ufw delete allow 22/tcp

Unaweza kutekeleza amri zozote za ufw bila kufanya mabadiliko yoyote kwenye ngome ya mfumo kwa kutumia --dry-run bendera, hii inaonyesha tu mabadiliko ambayo yanatarajiwa kutokea.

$ sudo ufw --dry-run enable

Kwa sababu moja au nyingine, ikiwa ungependa kufuta/kuweka upya sheria zote za ngome, chapa amri zifuatazo, itarejesha mabadiliko yako yote na kuanza upya.

$ sudo ufw reset
$ sudo ufw status

Firewall ya UFW inaweza kusimamia kufanya chochote ambacho iptables hufanya. Hii inaweza kufanyika kwa seti tofauti za faili za sheria, ambazo si kitu, lakini faili rahisi za iptables-rejesha maandishi.

Urekebishaji wa firewall ya UFW au kuongeza amri za iptables za ziada haziruhusiwi kupitia amri ya ufw, ni suala la kubadilisha faili za maandishi zifuatazo.

  • /etc/default/ufw: Faili kuu ya usanidi iliyo na sheria zilizobainishwa mapema.
  • /etc/ufw/before[6].rules: Katika faili hii sheria huhesabiwa kabla ya kuongeza kupitia ufw amri.
  • /etc/ufw/after[6].rules: Katika faili hii sheria huhesabiwa baada ya kuongeza kupitia amri ya ufw.
  • /etc/ufw/sysctl.conf: Faili hii inatumika kurekebisha mtandao wa kernel.
  • /etc/ufw/ufw.conf: Faili hii itawezesha ufw kuwasha.

Hiyo ndiyo! UFW ni mwisho bora wa iptables na kiolesura cha kirafiki ili kufafanua sheria ngumu kwa amri moja ya ufw.

Ikiwa una maswali au maoni yoyote ya kushiriki kuhusu nakala hii ya ufw, tumia fomu ya maoni hapa chini kutufikia.