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

Iepriekšējā ierakstā mēs apskatījām, kā konfigurēt IPTables, lai tās darbotos kā ugunsmūris. Tagad mēs varam redzēt, kā izveidot skriptus, lai automātiski palaistu noteikumus, startējot sistēmu, kā arī to, kā dzēst vai īslaicīgi apturēt šos noteikumus.

Pirms skripta izveidošanas un parādīšanas, kā tas izskatās, nedaudz parunāsim par NAT un koncepciju, ko mēs vēlamies darīt ar šo aprīkojumu.

NAT un piemēra konteksts.

Runājot par NAT, mēs varam to sajaukt ar maršrutēšanu, jo abi ir atbildīgi par divu dažādu tīklu savienošanu savā starpā. Patiesā atšķirība ir tāda, ka maršrutēšana tiek izmantota, lai pārietu no viena lokālā tīkla uz citu, un šis cits tīkls var izveidot savienojumu ar maršrutētāju un iziet uz internetu.

Savukārt, runājot par NAT, mēs runājam par pakešu novirzīšanu no vietējā vai privātā tīkla uz publisko tīklu vai internetu. Tas tiek darīts, maskējot paketes, ievietojot publisko IP, ar kuru tas nonāk internetā. Tas ir, mums nav nepieciešams maršrutētājs, jo publiskais IP tieši pieder GNU / Linux datoram.

nat

Mēs to strādāsim ar saukli, ka mēs izmantojam savu Linux kā maršrutētāju / ugunsmūri, lai dotos uz internetu no vietējā tīkla. Bet šeit var parādīties divi scenāriji.

  • Ka mūsu Linux atrodas starp pakalpojumu sniedzēja maršrutētāju un vietējo tīklu.

Šajā gadījumā starp maršrutētāju un mūsu Linux sistēmu būtu viens tīkls, bet starp Linux sistēmu un lokālo tīklu - cits tīkls. Tas nozīmē, ka mūsu maršrutētājam nebūtu jāveic NAT kā tāda; pietiktu ar vienkāršu datplūsmas maršrutēšanu, kā paskaidrots iepriekšējā ierakstā .

  • Ka mūsu Linux ir saskarne, kas savienota ar vietējo tīklu, un caur citu saskarni tā tieši saņem publisku IP, ar kuru tā pārvietojas.

Tas nozīmē, ka mūsu Linux ir jādara NAT, lai paketes varētu piekļūt internetam.

Šīs mazās laboratorijas vajadzībām mēs teiksim, ka mūsu Linux tieši saņem publisku IP un tādējādi varēs pārbaudīt NAT sekas.

Lai veiktu NAT, mēs izmantojam sintaksi

 iptables -t nat -A POSTROUTING -O eth1 -j MASQUERADE

Kur eth1 ir saskarne, kur mēs saņemam publisko ip, tas ir, kur mēs ejam uz internetu.

MASQUERADE tiek izmantots, ja ip ir publisks, taču tas laika gaitā var mainīties (dinamisks). Pretējā gadījumā mēs varam izmantot SNAT – to-source ip

Iptables skripta izveide

Pieņemsim, ka tad: 172.26.0.0 ir mūsu vietējais tīkls un 81.2.3.4 ir publiskais IP, ar kuru mēs dodamies uz internetu. (tas ir statisks ip). Man ir saskarnes eth0 (vietējais tīkls)

eth1 (publiskais tīkls).

Tas būtībā sastāv no skripta izveidošanas, kuru var izsaukt no /etc/init.d/firestop (piemēram). un no šī skripta mēs varam sākt, apturēt vai pārbaudīt mūsu konfigurācijas statusu, kā mēs to darām ar jebkuru sistēmas dēmonu.

Pieņemsim, ka mani IPTABLES noteikumi IR:

#! / bin / bash # Manas mājas ugunsmūris. # Faila nosaukums / etc / firewall_on # Autors Jlcmux Twitter: @Jlcmux # # Pamatpolitika. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT, lai dalītos internetā no eth0 līdz eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT - to-source 81.2.3.4
# # Atļaut ienākošos savienojumus, kurus ir uzsākuši mani iptables -A FORWARD -m stāvoklis - state ESTABLISHED, SAISTĪTI -j ACCEPT # # Autorizētie izejošās datplūsmas iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --port 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Neaizmirsīsim piešķirt izpildes atļaujas

Paskaidrojums:

Skripts pamatā veic šādas darbības:

  1. Vispirms ierobežojiet visu navigāciju, savienojumus un satiksmi. (Galvenās ugunsmūra politikas)
  2. Pēc tam izveidojiet NAT ar galamērķa eth1. norādot, ka mums ir statisks publiskais ip «81.2.3.4»
  3. Tas atver portus, kas nepieciešami, lai saņemtu manis iniciēto savienojumu paketes.
  4. Pieņem izejošo HTTP, HTTPS un DNS trafiku.
Noteikumi ir paredzēti FORWARD trafikam, jo ​​mēs izmantojam mūsu Linux kā maršrutētāju, tāpēc politikas tiek izmantotas datplūsmai, kas PĀRDOD caur Linux, tas ir, tā darbojas kā starpnieks. Tas nozīmē, ka mūsu Linux nevar īsti orientēties vai saņemt datus tieši. Tas attiecas tikai uz datoriem, kas tam pievienoti, bet ne uz sevi

Ja mēs vēlamies izmantot mūsu aprīkojumu navigācijai, mums jāatkārto rindas un attiecīgi jāmaina FORWARD uz INPUT vai OUTPUT.

Atcelt skriptu.

Tagad mēs izveidosim skriptu, kas ignorē visu iepriekš minēto un atstāj datoru tīru no šī visa. (Testēšanas nolūkos vai mēs vienkārši vēlamies izslēgt ugunsmūri).

#! / bin / bash # Manas mājas ugunsmūris. # Faila nosaukums / etc / firewall_off # Autors: Jlcmux Twitter: @Jlcmux # # Iptables noteikumu dzēšana -F # # Noklusējuma politiku lietošana (visa datplūsma pieņemta) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Automatizēšana.

Tagad mums ir jāizveido skripts /etc/init.d/ iekšpusē , lai pakalpojums sāktos automātiski un mēs to varētu vieglāk pārvaldīt.

#! / bin / bash # Manas mājas ugunsmūris. # Faila nosaukums /etc/init.d/ ugunsmūris # Autors Jlcmux Twitter: @Jlcmux gadījums $ 1 sākumā) / etc / firewall_on ;; stop) / etc / firewall_off ;; statuss) iptables -L ;; *) echo "Nepareiza sintakse. Derīgs = /etc/init.d/ ugunsmūra sākums | stop | statuss ;; esac

Paskaidrojums:

Šo pēdējo skriptu ievietojam failā /etc/init.d/ ar nosaukumu "firewall" . Pēc tam, ja vēlamies pārvaldīt ugunsmūri, varam izmantot komandu /etc/init.d/firewall start. Tādā pašā veidā varam to arī apturēt vai pārbaudīt tā statusu.

Tagad rediģēsim failu /etc/rc.local un pievienosim kaut ko līdzīgu: /etc/init.d/firewall start , lai tas startētos ar sistēmu.

Arī. Šī ir otrā daļa. Es ceru, ka tas kaut ko nesīs jums visiem. Nākamajā mēs redzēsim starpniekserveri un IDS.


Pievienot kā vēlamo avotu pakalpojumā Google