Tīkla drošība, izmantojot Iptables - Proxy - NAT - IDS: 1. DAĻA

Šis ieraksts mēģina nedaudz paskaidrot, kā darbojas tīkli un kā pārvērst mūsu Linux aprīkojumu par maršrutētāju, kas nodrošina nedaudz vairāk mūsu tīkla neatkarīgi no tā, vai tas notiek mājās vai pat biznesā. Tātad ķeramies pie lietas:

Šis saturs ir balstīts uz grāmatu "Linux - sistēmas administrēšana un tīkla pakalpojumu darbība" - Sebastjēns BOBILLIER

Maršrutēšana un filtrēšana

Lai runātu un saprastu par maršrutēšanu, vispirms varam noteikt, kāda ir maršrutētāja funkcija? Par to mēs varam teikt, ka maršrutētājam papildus tīkla izveidošanai un savienojuma atļaušanai ar citām iekārtām (zinot, ka mēs to varam izdarīt ar AP, Switch, Hub vai citiem) ir iespēja savienot divus dažādus tīklus savā starpā.

router

Kā redzam attēlā, ir lokālais tīkls "10.0.1.0", kuru izveidojis maršrutētājs un kurš sasniedz vienu no diviem tā interfeisiem. Tad maršrutētājam citā saskarnē ir cits tīkls ar publisko IP, ar kuru tas var izveidot savienojumu ar internetu. Maršrutēšanas funkcija galvenokārt kalpo kā starpnieks starp šiem diviem tīkliem, lai tie varētu sazināties.

Linux kā maršrutētājs.

Protams, Linux kodolam jau ir iespēja veikt "pārsūtīšanu", taču pēc noklusējuma tas ir atspējots, tādēļ, ja mēs vēlamies, lai mūsu Linux veic šo darbu, mums jāiet uz failu.

/proc/sys/net/ipv4/ip_forward

Tur mēs atradīsim, ka tas ir fails, kurā ir tikai nulle "0". Mums ir jādara tas, lai mainītu to uz "1", lai aktivizētu šo uzvedību. Diemžēl tas tiek izdzēsts, restartējot datoru, lai pēc noklusējuma to aktivizētu, mums jāizmanto komanda:

sysctl net.ipv4.ip_forward=1

Vai arī rediģējiet to tieši failā /etc/sysctl.conf. Atkarībā no izplatīšanas šī konfigurācija var būt arī failā  /etc/sysctl.d/.

Pēc noklusējuma mūsu Linux ir jābūt maršrutēšanas tabulai, kas parasti ir mūsu LAN tīkla konfigurācija un savienojums ar maršrutētāju. Ja mēs vēlamies redzēt šo maršrutu, mēs varam izmantot divas komandas:

route -n

o

netstat -nr

Abām komandām vajadzētu atgriezties vienādi.

Ekrānuzņēmums 2014-09-30 18:23:06

Parasti šī konfigurācija ir pietiekama, lai Linux darbotos kā vārteja, un citi datori var pārvietoties pa mūsu datoru. Tagad, ja mēs vēlamies, lai mūsu Linux savieno divus vai vairākus tīklus, neatkarīgi no tā, vai tie ir lokāli, vai ne, mēs varam izmantot statiskos maršrutus.

Pieņemsim, ka manai Linux ir divas tīkla saskarnes, pirmajai ir interneta savienojums, kura tīkls ir 172.26.0.0, bet otrajā (10.0.0.0) ir datori no cita lokālā tīkla. Ja mēs vēlamies virzīt paketes uz citu tīklu, mēs varam izmantot:

route add -net 10.0.0.0 netmask 255.0.0.0 gw 172.26.0.8

Parasti tas ir:

route add -net REDDESTINO netmask MASCARA gw IPDELLINUX

ja dodam maršruts -n neatkarīgi no tā, vai šis tīkls pastāv, šī maršrutēšana tiks fiksēta mūsu tabulā.

Ekrānuzņēmums 2014-09-30 18:31:35

Ja mēs vēlamies izslēgt minēto maršrutu, mēs varam to izmantot

route del -net 10.0.0.0 netmask 255.0.0.0

iptables.

Būtībā iptables izmanto pakešu, izejošo, ienākošo vai citu filtrēšanai, tāpēc tas ir lielisks rīks, lai pārvaldītu mūsu tīkla trafiku. Nu, iptables, tāpat kā tas ļauj mums filtrēt trafiku no tā paša datora, tas ļauj filtrēt arī trafiku, kas iet caur to. (Pārsūtīšana). Iptable var iedalīt tabulās, ķēdēs un darbībās.

  • Dēļi:  būtībā var būt divas tabulas, filtrs, filtrēt paketes un  nat tulkot adreses, tas ir, pārvietoties no viena tīkla uz citu.
  • Ķēdes: Ķēde attiecas uz datplūsmas veidu, kuru mēs vēlamies filtrēt vai peldēt, tas ir, kurai satiksmei mēs izmantosim tabulas? un tie var būt:  INPUT: Ienākošā satiksme, REZULTĀTS: izejošā satiksme vai PIRMS: Satiksme, kas iet caur to, bet tas nav pareizs savienojums.
  • Tas var arī parādīties PĒCĒŠANA, Izmanto, lai noteiktu paketi apstrādātu pēc tam, kad tā ir maršrutēta.
  • Darbības: Darbības būtībā ir darbība, kas jāveic ar ķēdi. Šī darbība var būt PILINĀT, kas tikai iznīcina šo satiksmi vai PIEŅEMT. kas ļauj satiksmei veikt šo darbību.

IPTABLES kārtulas tiek saglabātas un izpildītas to izveidošanas secībā, un, ja kārtula izdzēš iepriekšējo kārtulu, vienmēr tiek lietota kārtulas pēdējā kārtula.

Ugunsmūra politikas.

Parasti ugunsmūri parasti darbojas divējādi:

  1. Atļaut visu datplūsmu, izņemot vai
  2. Neatļaut satiksmi, izņemot ...

Lai piemērotu politikas, izmantojiet IPTABLES - P RĪCĪBAS ĶĒDE

Ja virkne apzīmē datplūsmas veidu (INPUT, OUTPUT, FORWARD, POSTROUTING ...) un darbība ir PILA VAI PIEŅEMT.

Apskatīsim piemēru.

Ekrānuzņēmums 2014-09-30 18:53:23

 

Šeit mēs redzam, ka sākumā es varēju pingēt, pēc tam es IPTABLES teicu, ka visa OUTPUT datplūsma ir DROP vai nav atļauta. Tad es teicu IPTABLES to pieņemt.

Ja mēs gatavojamies veidot ugunsmūri no nulles, mums vienmēr ir jāpiemēro noteikumi (Neatļaut trafiku, izņemot ... Lai to izdarītu, mēs piemērojam noteikumus

iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
Ja šīs politikas tiks piemērotas, tām nebūs nekāda veida savienojuma
.

Lai atgrieztos, mēs rakstām to pašu un aizstājam DROP ar ACCEPT.

Šajā brīdī, tā kā visa datplūsma ir liegta, mēs sākam IPTABLES pateikt, kāda trafika tai var būt.

Sintakse ir:

iptables -A cadena -s ip_orgigen -d ip_destino -p protocolo --dport puerto -j acción

Kur:

Stīga = INPUT, Output vai FORWARD

izcelsme_ip = Pakešu izcelsme, tas var būt viens IP vai tīkls, un šajā gadījumā mums jānorāda maska).

galamērķis = uz kurieni iet paciņas. tas var būt viens IP vai tīkls, un šajā gadījumā mums jānorāda maska).

protokolu = norāda pakešu izmantoto protokolu (icmp, tcp, udp ...)

osta = satiksmes galamērķa osta.

darbība = PILIET vai PIEŅEMT.

piemērs:

 

Ekrānuzņēmums 2014-09-30 19:26:41

Tiek piemērotas VISAS ierobežotās politikas.

Ekrānuzņēmums 2014-09-30 19:27:42

Tad mēs pievienojam kārtulas, lai varētu veikt datplūsmu caur 80. portu HTTP un 443 HTTPS ar TCP protokolu. Tad ports 53 Tas tiek piemērots DNS klientam, lai atrisinātu domēnus, pretējā gadījumā jūs nepārvietosieties. Tas darbojas ar udp protokolu.

Līnija:

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Tas notiek šādu iemeslu dēļ: Veicot, piemēram, HTTP pieprasījumu, izveidojat savienojumu ar servera 80. portu, bet serverim, lai atgrieztu informāciju, ir nepieciešams izveidot savienojumu ar jums, izmantojot jebkuru portu. (Parasti lielāks par 1024).

Tā kā visas mūsu ostas ir slēgtas, tas netiks sasniegts, ja neatvērsim visas ostas, kuru augstums pārsniedz 1024 (slikta ideja). Tas nozīmē, ka tiek pieņemta visa ienākošā trafika, kas nāk no savienojuma, kuru izveidoju pati. Es domāju savienojumu, kuru principā es aizsāku.

Ievietojot noteikumos OUTPUT, tas attiecas tikai uz attiecīgo aprīkojumu, ja mēs izmantojam savu aprīkojumu kā maršrutētāju, lai atļautu šos savienojumus, mums OUTPUT ir jāmaina uz FORWARD. Tā kā datplūsma iet caur datoru, bet to neuzsāk
Visi šie noteikumi tiek izdzēsti pēc restartēšanas, tāpēc jums ir jāizveido skripti, lai tie sāktu pēc noklusējuma. Bet mēs to redzēsim nākamajā

Es ceru, ka šī informācija jums patika. Nākamajā es runāšu par NAT, starpniekserveri un Firewal skriptiem.


Raksta saturs atbilst mūsu principiem redakcijas ētika. Lai ziņotu par kļūdu, noklikšķiniet uz šeit.

12 komentāri, atstājiet savus

Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Rogelio pinto teica

    Tas ir pamats, ko daudzi uzņēmēji ņem, lai ražotu paši savus ugunsmūrus, tāpēc tirgū ir tik daudz ugunsmūri ar iebūvētu linux, daži labi un citi ne tik daudz.

  2.   Heber teica

    Izcils raksts. Ar nepacietību gaidu otro daļu.

  3.   Milton teica

    Ļoti labs paskaidrojums, tas man palīdzēja saprast sava darba pilnvaras. Paldies

  4.   faustod teica

    Labdien, Jlcmux,

    Izcili, man ļoti patika, kad būs pieejama otra puse?

    Sveiciens un paldies par dalīšanos

    1.    @Jlcux teica

      Paldies par komentāru.

      Es nosūtīju otru daļu vakar, dienas laikā es domāju, ka viņi to publicēs.

      Sveicieni.

  5.   Izraēla teica

    Ļoti labs rakstu draugs @ Jlcmux, es patiešām mācījos kopā ar viņu, jo viņš noskaidroja dažas šaubas, kas man bija kādu laiku, starp citu, jūs neiebildīsit, ja dalīsities ar raksta avota grāmatu, Sebastjēna BOBILLIERA, labi slau2s un tagad skatiet 2. daļu, salu2s.

    1.    @Jlcux teica

      Sveiki Paldies par komentāriem Izraēla.

      Izrādās, ka grāmata man ir fiziskā formā. Bet šo saiti atradu Google grāmatās. http://books.google.com.co/books?id=zxASM3ii4GYC&pg=PA356&lpg=PA356&dq=S%C3%A9bastien+BOBILLIER+Linux+%E2%80%93+Administraci%C3%B3n+del+sistema+y+explotaci%C3%B3n+de+los+servicios+de+red#v=onepage&q=

      Es domāju, ka tas ir pabeigts.

  6.   Ariel teica

    Ļoti labs raksts, pievienoju jautājumu: Kāda būtu priekšrocība, izmantojot linux kā maršrutētāju, ja tāds ir, attiecībā uz tam veltītu aparatūru? Vai arī tas ir tikai vingrošanai? Es zinu, ka ir paredzēti īpaši distroni, bet es nezinu, vai tie ir domāti veco datoru glābšanai vai lielākai konfigurācijas elastībai.

    1.    @Jlcux teica

      Es domāju, ka priekšrocības un trūkumi ir atkarīgi no scenārija, kurā jūs to īstenosit. Kāpēc jūs noteikti nepirksiet savai mājai UTM vai kaut ko tamlīdzīgu? Un varbūt mazam biznesam, kas arī to nevar atļauties. Tas ir arī labs kā vingrinājums, jo tas palīdz jums izprast visu šī loģiku, un jūs varat labāk konfigurēt īpašu FWall. Papildus tam gandrīz visas šīs ierīces patiešām ir iegultā Linux.

      Sveicieni.

  7.   Ariel teica

    Sveiki, jautājums, vai jūs varat ģenerēt "mākslīgu" saskarni linux līdzīgai maršrutēšanai starp tīkliem? (pakešu marķiera stils) darbam ar virtuālajām mašīnām? piemēram, ja man ir eth0 (jo man, protams, ir viena karte), vai es varu izveidot eth1, lai izveidotu citu tīklu? Ļoti labs audzinātājs!

    1.    elav teica

      Linux, protams, varat izveidot virtuālās saskarnes. Ja jums ir eth0, jums var būt eth0: 0, eth0: 1, eth0: 2 ... utt

  8.   chinoloco teica

    Tik labi, paldies par dalīšanos