Šajā apmācībā mēs runāsim par iptables, ugunsmūris vai ugunsmūris, kas mums ir Linux. Šis rīks ļaus mums filtrēt paketes (ar kurām apmācība nodarbosies), ģenerēt žurnāla ierakstu, veikt NAT tulkojumus.
Pateicoties iptables, mēs varam ģenerēt noteikumus, lai filtrētu paketes pavisam vienkārši, lai gan, pirmo reizi to lietojot, tas var šķist nedaudz mulsinoši, jūs redzēsit, ka, lietojot to dažas dienas, tam nav nekādu sarežģījumu.
Šī rīka izmantošanai ir vajadzīgas lielas privilēģijas, tas ir, mums būs jābūt superlietotājiem, lai tas darbotos. Mums ir daudzas funkcijas iptables, apmācības mērķis ir redzēt aptuvenu tā izmantošanu, izmantojot piemērus. Ir svarīgi, lai pēc apmācības pabeigšanas jūs turpinātu rakt, jo tā ir ļoti noderīga.
Tad mēs atstājam oficiālo vietni, ja tas interesē:
PiezīmeIPv6 mums ir ip6tables.
Ja mēs vēlamies redzēt informāciju par iptables, terminālī izpildīsim sekojošo:
vīriešu iptablesMēs redzēsim šādu informāciju:
Attēlā var redzēt daļu komandas sniegtās informācijas, lai to visu redzētu, terminālī ritiniet uz leju. Kā mēs redzējām apmācības sākumā, viens no uzdevumiem, ko iptables mums ļaus, ir izveidot noteikumus vai filtrus, lai zinātu, ko darīt ar paketēm, kuru izcelsme / galamērķis ir mūsu mašīna. Veicot šo uzdevumu, mums būs interesanti uzzināt, kāpēc mēs izmantojam šādus jēdzienus:
Dēļi
Iptables ir vairākas tabulas, taču mūsu apmācībā mēs koncentrējamies tikai uz filtru tabula, kas ir atbildīgs par filtrēšanu, pēc noklusējuma tiek izmantots iptables.
Ķēdes
Stīgas, kuras es šeit ievietošu, ir tās, kas pieder pie iepriekš komentētā tabulas.
- Ievadi: Iepakojumi, kas paredzēti mūsu mašīnai.
- Izeja: Iepakojumi, kuru izcelsme ir mūsu sistēmā.
- Uz priekšu: Iepakojumi, kas iet caur mūsu mašīnu, lai tiktu novirzīti uz citu.
Noteikumi
Mēs norādīsim 2, kas tiks izmantoti apmācībā, taču ir vēl daži.
- Pieņemt: Iepakojumi tiek pieņemti.
- Nometiet: Paketes tiek izmestas.
Parametri
Daži no parametriem, kurus mēs varam izmantot, ir šādi.
- -Noteikums: Lai pievienotu kārtulu
- -D noteikums: Lai izdzēstu mūsu norādīto kārtulu.
- -L: Ļauj mums uzskaitīt noteikumus.
- -F: Izdzēsiet visus esošos noteikumus.
- -j mērķis: Iestatiet kārtulas veidu (Pieņemt, atmest).
- -galds: Tas norāda izmantoto tabulu (pēc noklusējuma filtrēšanas tabula).
- -p protokols: Izmanto, lai norādītu protokolu.
- -i saskarne: Mēs izveidojam noteikuma saskarni.
- -s: Lai norādītu izcelsmi.
- -d: Lai norādītu galamērķi.
- -h: Parāda palīdzību.
Ir daudz vairāk, kā tas var būt -galamērķa osta vai -avota ports. Lai redzētu tos visus, varat palaist iepriekš apspriesto komandu:
vīriešu iptablesVai arī varat palaist:
iptables -hPiezīmeJums rūpīgi jāizpēta rīka piedāvātās iespējas, jo tas nošķir mazos un lielos burtus, un mēs varam kļūdīties (tas nebūs tas pats, ko likt -lpp ka -P).
Sāksim ar piemēriem, kopumā tiks ievietoti 10, tāpēc tas būs labāk saprotams un mēs varam redzēt, kā iptables darbojas ugunsmūra režīmā. Piemēros jūs neredzēsit sudo, tas nebūs nepieciešams, ja esat root lietotājs, pretējā gadījumā jums būs jāpievieno vārds sudo katra piemēra sākumā.
1. Aizliegt izbraukšanu uz jebkuru galamērķiSākumā mēs sniegsim vienkāršu piemēru, neatstājiet izeju nekur.
iptables -A OUTPUT -j DROPŠis ir ļoti vienkāršs, kā redzat, nākamais ir vēl vienkāršāks.
2. Notīriet visus noteikumusMēs turpinām ar ļoti vienkāršu piemēru, atstājiet mūsu iptables bez noteikumiem, tāpēc mēs izpildīsim:
iptables -FNu, sarežģīsim to nedaudz vairāk nākamajā.
3. Aizliegt izbraukšanu caur 80. ostuTagad mēs rūpējamies par izvades slēgšanu, izmantojot noteiktu portu, šajā gadījumā tas ir 80, tāpēc mums nebūs tīmekļa pārlūkošanas, izmantojot http protokolu (ja mēs pārietam uz https lapu, mēs varam pārvietoties, lai gan mēs varētu darīt to pašu kā 80).
iptables -A OUTPUT -p tcp -galamērķa ports 80 -j DROPPiezīmeIzmantojot galamērķi vai avota portu, mums būs jāievieto parametrs -p, lai norādītu protokolu.
Mēs pārietam pie ceturtā piemēra.
4. Aizliegt navigāciju uz lapuŠajā gadījumā mēs esam ieinteresēti aizliegt mūsu sistēmā piekļūt X lapai, iedomāsimies, ka šī lapa ir solvetic.com, tāpēc mēs uzzinām tās IP, ļoti viegli, izpildot ping, mēs to iegūsim.
Un tagad mēs izpildīsim:
iptables -A OUTPUT -d 178.33.118.246 -j DROPKā redzam, pietiek norādīt savu IP pēc parametra -d.
5. Uzskaitiet esošos noteikumusŠajā piemērā tiks mēģināts uzskaitīt mūsu definētos filtra noteikumus:
iptables -LMēs redzam attēlu, mums ir definēti tikai divi noteikumi, kā redzams zemāk:
Pāriesim pie sestā piemēra, kurā atkal izmantosim noteikumu sarakstu.
6. Izdzēsiet konkrētu noteikumuŠeit, sākot ar iepriekšējā piemērā esošajiem noteikumiem, mēs izdzēsīsim vienu no izejas noteikumiem, šajā gadījumā pirmo, kas parādās, mēs izpildām sekojošo:
iptables -D IZEJA 1Lai pārbaudītu, vai tas ir efektīvi izdzēsts, mēs izmantojam 5. piemēru:
Turpināsim ar vairāk.
7. Izvairieties no saspiešanasMēs nevēlamies, lai viņi mūs pingē, tāpēc mēs bloķēsim ierakstu ICMP protokolā.
iptables -A INPUT -p ICMP -j DROPZemāk es atstāju pinginga attēlu pirms iepriekš minētās komandas izpildīšanas un pēc tam:
Mēs redzam, ka mūsu iekārta neatbild, jo tā noraida ICMP paketes. Ja mēs bloķēsim izeju, nevis ievadi, mēs izpildīsim:
iptables -A OUTPUT -p ICMP -j DROPAtkārtotos tas pats, kas iepriekšējā attēlā. Lai pārbaudītu, esmu pingējis 3 reizes, ja mēs izpildām, mēs varam redzēt paku skaitu:
iptables -L -v
Mēs redzam, ka tas faktiski ieliek 3 iepriekšējā attēlā.
8. Neļaujiet IP sūtīt mums datusMēs izmantosim ievades kodu, mēs nevēlamies, lai kāds IP mūs savienotu, tāpēc mēs izpildīsim:
iptables -A INPUT -s 192.168.66.1 -j DROPApskatīsim nedaudz garāku piemēru.
9. Atļaut izejas uz virkni IPIedomājieties, ka vēlaties pieņemt tikai izejas uz IP adrešu diapazonu, bet noraidāt pārējos rezultātus, mums ir jāizpilda:
Iptables -A OUTPUT -d 192.168.0.0/24 -j ACCEPT Iptables -A OUTPUT -j DROPPiezīmeNoteikumu izpildes secībai ir nozīme, izmēģiniet šo piemēru ar tīklu, kuru vēlaties atļaut, un izveidojiet savienojumu, jūs redzēsit, ka tas darbojas, pēc tam izdzēsiet visus noteikumus un izpildiet 2 teikumus otrādi, tagad savienojumi tiks noraidīti .
Pāriesim pie desmitā un pēdējā piemēra.
10. Atveriet portu 143 (imap)Mēs gatavojamies atvērt portu visu tcp pakešu, šajā gadījumā 143, ievadīšanai (tas būtu tas pats pārējiem).
iptables -A INPUT -m stāvoklis -valsts JAUNS -p tcp --ports 143 -j ACCEPTŠajā piemērā mēs vēlējāmies izmantot --portēt, lai jūs varētu redzēt, ka mēs varam izmantot šo vai -galamērķa osta, mēs varētu arī izmantot -sports tā vietā -avota ports.
Apmācība beidzas šeit, tagad jūs mēģināt piemērot citus noteikumus, jo vairāk jūs praktizēsit, jo ātrāk jums būs, piemērojot noteikumus, un jo mazāk tas jums izmaksās. Lai pabeigtu, mēs atstājam pamācību, kas varētu jūs interesēt, atverot un aizverot portus sistēmā Windows 10.