Kā instalēt un konfigurēt UFW - nesarežģīts ugunsmūris Debian/Ubuntu


Tā kā datori ir savienoti viens ar otru, pakalpojumi strauji pieaug. E-pasts, sociālie mediji, tiešsaistes veikals, tērzēšana līdz tīmekļa konferencei ir pakalpojumi, kurus lietotājs izmanto. Bet, no otras puses, šai savienošanai vienkārši patīk divpusējs nazis. Ir arī iespējams nosūtīt sliktus ziņojumus uz tādiem datoriem kā vīruss, ļaunprātīga programmatūra, Trojas lietotnes ir viens no tiem.

Internets kā lielākais datortīkls ne vienmēr ir piepildīts ar labiem cilvēkiem. Lai pārliecinātos, ka mūsu datori/serveri ir droši, mums tas ir jāaizsargā.

Viens no obligātajiem komponentiem datorā/serveros ir ugunsmūris. Vikipēdijā definīcija ir šāda:

Skaitļojot, ugunsmūris ir programmatūras vai aparatūras tīkla drošības sistēma, kas kontrolē ienākošo un izejošo tīkla trafiku, analizējot datu paketes un nosakot, vai tās būtu atļautas vai ne, pamatojoties uz lietoto kārtulu kopu.

Iptables ir viens no ugunsmūriem, ko serveri plaši izmanto. Tā ir programma, ko izmanto, lai pārvaldītu ienākošo un izejošo datplūsmu serverī, pamatojoties uz noteikumu kopumu. Parasti serverī drīkst ievadīt tikai uzticamu savienojumu. Bet IPTables darbojas konsoles režīmā, un tas ir sarežģīti. Tie, kas pārzina iptables kārtulas un komandas, var izlasīt šo rakstu, kurā aprakstīts, kā izmantot iptables ugunsmūri.

  1. IPTable (Linux ugunsmūra) pamatnostādnes

UFW ugunsmūra instalēšana Debian/Ubuntu

Lai samazinātu IPTable iestatīšanas sarežģītību, ir daudz priekšējo. Ja izmantojat Ubuntu Linux, kā noklusējuma ugunsmūra rīku atradīsit ufw. Sāksim izpētīt ufw ugunsmūri.

Ufw (nekomplicēts ugunsmūris) ir priekšnams visplašāk izmantotajam iptables ugunsmūrim, un tas ir ērti ērts resursdatora ugunsmūriem. ufw dod sistēmu netfilter pārvaldībai, kā arī nodrošina komandrindas saskarni ugunsmūra kontrolei. Tas nodrošina lietotājam draudzīgu un viegli lietojamu saskarni iesācējiem Linux, kuri nav pārāk pazīstami ar ugunsmūra koncepcijām.

No otras puses, tās pašas sarežģītās komandas palīdz administratoriem noteikt sarežģītus noteikumus, izmantojot komandrindas saskarni. Ufw ir augšupēja citiem izplatījumiem, piemēram, Debian, Ubuntu un Linux Mint.

Vispirms pārbaudiet, vai ufw ir instalēts, izmantojot šādu komandu.

$ sudo dpkg --get-selections | grep ufw

ufw 		install

Ja tas nav instalēts, varat to instalēt, izmantojot komandu apt, kā parādīts zemāk.

$ sudo apt-get install ufw

Pirms lietojat, jums jāpārbauda, vai ufw darbojas vai nē. Izmantojiet šo komandu, lai to pārbaudītu.

$ sudo ufw status

Ja esat atradis statusu: neaktīvs, tas nozīmē, ka tas nav aktīvs vai atspējots.

Lai to iespējotu, jums vienkārši jāievada šāda komanda terminālā.

$ sudo ufw enable

Firewall is active and enabled on system startup

Lai to atspējotu, vienkārši ierakstiet.

$ sudo ufw disable

Pēc ugunsmūra aktivizēšanas tajā varat pievienot kārtulas. Ja vēlaties uzzināt, kādi ir noklusējuma noteikumi, varat ierakstīt.

$ sudo ufw status verbose
Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing)
New profiles: skip
$

Kā redzat, pēc noklusējuma visi ienākošie savienojumi tiek liegti. Ja vēlaties attālināt savu mašīnu, jums ir jāatļauj pareizs ports. Piemēram, jūs vēlaties atļaut ssh savienojumu. Lūk, komanda to atļaut.

$ sudo ufw allow ssh

[sudo] password for pungki :
Rule added
Rule added (v6)
$

Ja vēlreiz pārbaudīsit statusu, tiks parādīta šāda izeja.

$ sudo ufw status

To 		Action 			From
-- 		----------- 		------
22 		ALLOW 			Anywhere
22 		ALLOW 			Anywhere (v6)

Ja jums ir daudz noteikumu un vēlaties likt numurus katram likumam, izmantojiet parametru, kas numurēts.

$ sudo ufw status numbered

To 		Action 			From
------ 		----------- 		------
[1] 22 		ALLOW 			Anywhere
[2] 22 		ALLOW 			Anywhere (v6)

Pirmais noteikums saka, ka ienākošs savienojums ar 22. portu no jebkuras vietas, ir atļauts izmantot gan tcp, gan udp paketes. Ko darīt, ja vēlaties atļaut tikai TCP paketi? Pēc tam pēc porta numura varat pievienot parametru tcp. Šeit ir piemērs ar izlaides paraugu.

$ sudo ufw allow ssh/tcp

To 		Action 			From
------ 		----------- 		------
22/tcp 		ALLOW 			Anywhere
22/tcp 		ALLOW 			Anywhere (v6)

Tie paši triki tiek piemēroti arī likumam Noraidīt. Pieņemsim, ka vēlaties noliegt ftp likumu. Tātad jums ir tikai jāraksta.

$ sudo ufw deny ftp

To 		Action 			From
------ 		----------- 		------
21/tcp 		DENY 			Anywhere
21/tcp 		DENY 			Anywhere (v6)

Dažreiz mums ir pielāgota osta, kas neatbilst jebkuriem standartiem. Pieņemsim, ka mēs mainām ssh portu mūsu mašīnā no 22 uz 2290. Pēc tam, lai atļautu portu 2290, mēs to varam pievienot šādi.

$ sudo ufw allow

To 		Action 			From
-- 		----------- 		------
2290 		ALLOW 			Anywhere
2290 		ALLOW 			Anywhere (v6)

Varat arī likumā pievienot porta diapazonu. Ja mēs vēlamies atvērt portu no 2290 - 2300 ar tcp protokolu, tad komanda būs šāda.

$ sudo ufw allow 2290:2300/tcp

To 			Action 			From
------ 			----------- 		------
2290:2300/tcp 		ALLOW 			Anywhere
2290:2300/tcp 		ALLOW			Anywhere (v6)

savukārt, ja vēlaties izmantot udp, vienkārši izmantojiet šo komandu.

$ sudo ufw allow 2290:2300/udp

To 			Action 			From
------ 			----------- 		------
2290:2300/udp 		ALLOW 			Anywhere
2290:2300/udp 		ALLOW			Anywhere (v6)

Lūdzu, atcerieties, ka jums skaidri jāievieto teksts “tcp” vai “udp”, pretējā gadījumā tiks parādīts kļūdas ziņojums, kas līdzīgs zemāk norādītajam.

ERROR: Must specify ‘tcp’ or ‘udp’ with multiple ports

Iepriekš mēs esam pievienojuši noteikumus, kuru pamatā ir pakalpojums vai osta. Ufw ļauj arī pievienot kārtulas, kuru pamatā ir IP adrese. Šeit ir komandas paraugs.

$ sudo ufw allow from 192.168.0.104

Lai paplašinātu diapazonu, varat izmantot arī apakštīkla masku.

$ sudo ufw allow form 192.168.0.0/24

To 		Action 			From
-- 		----------- 		------
Anywhere	ALLOW 			192.168.0.104
Anywhere	ALLOW 			192.168.0.0/24

Kā redzat, no parametrs ierobežos tikai savienojuma avotu. Kamēr galamērķis, kuru attēlo kolonna To, ir jebkur. Varat arī pārvaldīt galamērķi, izmantojot parametru “Kam”. Apskatīsim paraugu, lai atļautu piekļuvi 22. portam (ssh).

$ sudo ufw allow to any port 22

Iepriekš minētā komanda ļaus piekļūt 22. portam no jebkuras vietas un no jebkura protokola.

Lai iegūtu precīzākus noteikumus, varat arī apvienot IP adresi, protokolu un portu. Pieņemsim, ka mēs vēlamies izveidot kārtulu, kas ierobežo savienojumu tikai no IP 192.168.0.104, tikai protokola tcp un līdz portam 22. Tad komanda būs tāda pati kā zemāk.

$ sudo ufw allow from 192.168.0.104 proto tcp to any port 22

Sintakse, lai izveidotu noraidīšanas kārtulu, ir līdzīga atļaujas kārtulai. Jums tikai jāmaina parametrs no allow to denied.

Iespējams, jums būs jāizdzēš esošā kārtula. Vēlreiz ar ufw ir viegli izdzēst noteikumus. No iepriekš minētā parauga jums ir likums zemāk un vēlaties to izdzēst.

To 		Action 			From
-- 		----------- 		------
22/tcp		ALLOW 			192.168.0.104
21/tcp		ALLOW 			Anywhere
21/tcp 		ALLOW 			Anywhere (v6)

Noteikumu dzēšanai ir divas metodes.

Zemāk esošā komanda izdzēsīs kārtulas, kas atbilst pakalpojumu ftp. Tātad 21/tcp, kas nozīmē ftp portu, tiks izdzēsts.

$ sudo ufw delete allow ftp

Bet, kad mēģinājāt izdzēst pirmo kārtulu iepriekš minētajā piemērā, izmantojot komandu zemāk.

$ sudo ufw delete allow ssh

Or 

$ sudo ufw delete allow 22/tcp

Varat atrast kļūdas ziņojumu, piemēram,.

Could not delete non-existent rule
Could not delete non-existent rule (v6)

Tad jūs varat izdarīt šo triku. Kā jau minējām iepriekš, varat parādīt kārtulas skaitu, lai norādītu, kuru kārtulu mēs vēlamies dzēst. Ļaujiet mums to jums parādīt.

$ sudo ufw status numbered

To 		Action 			From
-- 		----------- 		------
[1] 22/tcp		ALLOW 			192.168.0.104
[2] 21/tcp		ALLOW 			Anywhere
[3] 21/tcp 		ALLOW 			Anywhere (v6)

Tad varat izdzēst pirmo kārtulu, izmantojot. Nospiežot taustiņu “y”, tā tiks neatgriezeniski dzēsta.

$ sudo ufw delete 1

Deleting :
Allow from 192.168.0.104 to any port 22 proto tcp
Proceed with operation (y|n)? y

No šīm metodēm jūs redzēsiet atšķirību. 2. metode lūgs lietotāja apstiprinājumu pirms kārtulas dzēšanas, bet 1. metode nav.

Dažās situācijās ieteicams izdzēst/atiestatīt visus noteikumus. To var izdarīt, ierakstot.

$ sudo ufw reset

Resetting all rules to installed defaults. Proceed with operation (y|n)? y

Ja nospiedīsit “y”, tad pirms atiestatīšanas jūsu ufw dublēs visus esošos noteikumus. Kārtulu atiestatīšana arī atspējo ugunsmūri. Ja vēlaties to izmantot, tas vēlreiz jāiespējo.

Kā jau teicu iepriekš, ufw ugunsmūris var darīt visu, ko spēj iptables. Tas tiek panākts, izmantojot dažādus noteikumu failu kopumus, kas nav nekas cits kā iptables-atjaunot atbilstošus teksta failus. Ufw precīza pielāgošana un/vai papildu iptables komandu ievietošana, kuras nav atļautas, izmantojot komandu ufw, ir vairāku teksta failu rediģēšana.

  1. /etc/default/ufw: noklusējuma politiku, IPv6 atbalsta un kodola moduļu galvenā konfigurācija.
  2. /etc/ufw/before[6].rules: kārtulas šajos failos tiek aprēķinātas, pirms tiek pievienotas kārtulas, izmantojot komandu ufw.
  3. /etc/ufw/after[6].rules: kārtulas šajos failos tiek aprēķinātas pēc visiem noteikumiem, kas pievienoti, izmantojot komandu ufw.
  4. /etc/ufw/sysctl.conf: kodola tīkla noskaņojumi.
  5. /etc/ufw/ufw.conf: nosaka, vai ufw ir iespējots sāknēšanas laikā, un iestata LOGLEVEL.

Secinājums

UFW kā iptables priekšgals noteikti nodrošina ērtu lietotāja saskarni. Lietotājam nav jāatceras sarežģīta iptables sintakse. UFW kā parametru izmanto arī “vienkāršā angļu valoda”.

Atļaut, noraidīt, atiestatīt ir viens no tiem. Es uzskatu, ka tur ir daudz vairāk iptables front-end. Bet noteikti ufw ir viena no labākajām alternatīvām lietotājiem, kuri vēlas ātri, viegli un, protams, iestatīt ugunsmūri. Lūdzu, apmeklējiet ufw rokasgrāmatas lapu, lai iegūtu sīkāku informāciju, ierakstot man ufw.