Ang pag-secure ng iyong network sa Iptables - Proxy - NAT - IDS: BAHAGI 2

Sa mag-post ng nauuna Nakita namin ang pagsasaayos ng mga IPTable upang gumana bilang isang Firewall. Ngayon ay makikita natin kung paano lumikha ng mga script na iyon upang ang mga patakaran ay awtomatikong naisakatuparan kapag nagsimula ang system, at kung paano din namin matatanggal o mapahinto ang mga panuntunang iyon nang ilang sandali.

Bago gawin ang script at ipakita sa iyo ang hitsura nito, pag-usapan natin nang kaunti ang tungkol sa NAT at ang konsepto ng kung ano ang nais naming gawin sa kagamitang ito.

NAT at Konteksto ng halimbawa.

Kapag pinag-uusapan natin ang tungkol sa NAT, maaari nating malito ito sa pagruruta, dahil pareho ang namamahala sa pagkonekta ng dalawang magkakaibang mga network sa bawat isa. Ang kaibahan talaga ay ang paglalagay ng routing upang mailipat mula sa isang lokal na network papunta sa isa pa at ang ibang network na ito ay maaaring kumonekta sa isang router at lumabas sa Internet.

Samakatuwid, kapag pinag-uusapan natin ang tungkol sa NAT, pinag-uusapan natin ang tungkol sa mga packet ng pagruruta mula sa isang lokal o pribadong network patungo sa isang pampublikong network o sa Internet. Ginagawa ito sa pamamagitan ng paglalagay ng masking mga packet sa pamamagitan ng paglalagay ng pampublikong IP kung saan ito pupunta sa Internet. Iyon ay, hindi namin kailangan ng isang router, dahil ang pampublikong IP ay direktang pagmamay-ari ng GNU / Linux computer.

nat

Gagawa namin ito sa slogan na ginagamit namin ang aming Linux bilang isang router / firewall upang pumunta sa Internet mula sa isang lokal na network. Ngunit dito maaaring lumitaw ang dalawang mga sitwasyon.

  • Ang aming Linux ay nasa pagitan ng router ng service provider at ng lokal na network.

Sa kasong ito, sa pagitan ng router at ng aming Linux ay magkakaroon ng isang network, at sa pagitan ng Linux at ng lokal na network ay magkakaroon ng isa pang magkakaibang network. Nangangahulugan ito na ang aming router ay hindi kailangang gumawa ng NAT tulad nito, na may isang simpleng pagruruta sa trapiko tulad ng ipinaliwanag sa mag-post ng nauuna Mabuti sana.

  • Na ang aming Linux ay may isang interface na konektado sa lokal na network at sa pamamagitan ng iba pang interface ay natatanggap nito nang direkta ang isang pampublikong IP kung saan ito nagna-navigate.

Nangangahulugan ito na dapat gawin ng aming Linux ang NAT upang maabot ng mga packet ang Internet.

Para sa mga layunin ng maliit na laboratoryo na ito, sasabihin namin na ang aming Linux ay tumatanggap ng isang pampublikong IP nang direkta at sa gayon ay masubukan ang mga epekto ng NAT.

Upang gawin Nat pagkatapos ay ginagamit namin ang syntax

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

Kung saan ang eth1 ay ang interface kung saan natatanggap namin ang pampublikong ip, iyon ay, kung saan pupunta kami sa Internet.

Ginagamit ang MASQUERADE kapag ang ip ay pampubliko ngunit maaari itong mag-iba sa paglipas ng panahon (pabago-bago). Kung hindi man maaari naming gamitin ang SNAT –to-source ip

Lumilikha ng script ng iptables

Ipagpalagay na iyon: 172.26.0.0 ay ang aming lokal na network at 81.2.3.4 ay ang pampublikong IP na kung saan nagpupunta kami sa Internet. (ito ay isang static ip). Mayroon akong mga interface na eth0 (Local network)

eth1 (Public network).

Karaniwan itong binubuo ng paglikha ng isang script na maaaring tawagan mula sa /etc/init.d/firestop (halimbawa). at mula sa script na ito maaari naming simulan, ihinto o suriin ang katayuan ng aming pagsasaayos, tulad ng ginagawa namin sa anumang daemon ng system.

Ipagpalagay na ang aking mga patakaran sa IPTABLES AY:

#! / bin / bash # Firewall ng aking tahanan. # Pangalan ng file / etc / firewall_on # Sa pamamagitan ng Jlcmux Twitter: @Jlcmux # # Pangunahing patakaran. iptables -P INPOUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP # #NAT upang ibahagi ang Internet mula sa eth0 hanggang eth1 iptables -t nat -A POSTROUTING -O eth1 -j SNAT --to-source 81.2.3.4
# # Pahintulutan ang mga papasok na koneksyon na pinasimulan ng aking mga iptable -A PADALA -m estado --stado Naitaguyod, KAUGNAYAN -j TANGGAPIN # # Pinapahintulutang papalabas na mga iptable ng trapiko -A PARAAN -i-et0 -o eth1 -p tcp --dport 80 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p tcp --dport 443 -j ACCEPT iptables -A FORWARD -i eth0 -o eth1 -p udp --dport 53 -j ACCEPT
Huwag kalimutan na magbigay ng mga pahintulot sa pagpapatupad

Paliwanag:

Karaniwang ginagawa ng script ang mga sumusunod:

  1. Paghigpitan muna ang lahat ng nabigasyon, koneksyon at trapiko. (Pangunahing Mga Patakaran sa Firewall)
  2. Pagkatapos ay likhain ang NAT sa patutunguhang eth1. na nagpapahiwatig na mayroon kaming isang static na pampublikong ip "81.2.3.4"
  3. Binubuksan nito ang mga port na kinakailangan upang matanggap ang mga packet ng koneksyon na pinasimulan ko.
  4. Tumatanggap ng papalabas na trapiko ng HTTP, HTTPS, at DNS.
Ang mga patakaran ay nakalaan para sa FORWARD traffic sapagkat ginagamit namin ang aming Linux bilang isang Router, kaya ginagamit ang mga patakaran para sa trapiko na PUMUNTA sa pamamagitan ng Linux, iyon ay, gumaganap ito bilang isang tagapamagitan. Nangangahulugan ito na ang aming Linux ay hindi maaaring mag-navigate o makatanggap ng anumang data nang direkta. Nalalapat lamang ito sa mga computer na konektado dito, ngunit hindi sa sarili nito

Kung nais naming gamitin ang aming kagamitan upang mag-navigate dapat naming ulitin ang mga linya at baguhin ang FORWARD sa INPUT o OUTPUT kung naaangkop.

Kanselahin ang script.

Ngayon ay lilikha kami ng isang script na nag-o-override sa lahat ng nasa itaas at iniiwan ang computer na malinis sa lahat ng ito. (Para sa mga layunin sa pagsubok o nais lamang naming patayin ang firewall).

#! / bin / bash # Firewall ng aking tahanan. # Pangalan ng file / etc / firewall_off # Sa pamamagitan ng Jlcmux Twitter: @Jlcmux # #Deleting iptables Rules -F # #Paglalapat ng mga default na patakaran (tinanggap lahat ng trapiko) iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT

Pag-automate.

Ngayon ay dapat nating likhain ang script sa loob /etc/init.d/ at ang serbisyo ay awtomatikong nagsisimula at maaari naming pamahalaan ito sa isang mas komportableng paraan.

#! / bin / bash # Firewall ng aking tahanan. # Pangalan ng file /etc/init.d/ firewall # Sa pamamagitan ng Jlcmux Twitter: @Jlcmux kaso $ 1 sa pagsisimula) / etc / firewall_on ;; itigil) / etc / firewall_off ;; katayuan) iptables -L ;; *) echo "Maling syntax. Balido = /etc/init.d/ pagsisimula ng firewall | ihinto | katayuan ;; esac

Paliwanag:

Ang huling script na inilagay namin /etc/init.d/ may pangalan firewall. Kaya kung nais naming pamahalaan ang firewall maaari naming gamitin ang utos /etc/init.d/ pagsisimula ng firewall. Sa parehong paraan mapipigilan natin ito o makita ang estado.

Ngayon ay i-e-edit namin ang file /etc/rc.local at naglalagay kami ng isang bagay tulad ng: /etc/init.d/ pagsisimula ng firewall upang magsimula sa system.

Din. Ito ang ikalawang bahagi. Sana may dalhin ito sa inyong lahat. Sa susunod makikita natin ang Proxy at IDS.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.

  1.   dhunter dijo

    Kung gumagamit ka ng Debian, mayroong isang pakete sa repo (paulit-ulit na iptables) na eksaktong ginagawa, itinatapon nito ang mga kasalukuyang panuntunan sa /etc/iptables/rules.v4 o v6 depende sa iyong ginagamit at pagkatapos ay mailalapat ang mga ito sa iyo kapag binuhat mo ang system.

  2.   OCZ dijo

    Sa pagsasagawa, upang linisin ang pagsasaayos ng isang maginoo na iptables firewall (at ang paggamit ng NAT ay hindi ganoon mula sa aking pananaw), sa karamihan ng mga kaso ang isang panuntunan na i-flush at i-reset ang mga default na patakaran sa ACCEPT ay sapat na.
    Ngunit sa teorya, at sa pagkakaalam ko, bilang karagdagan dito kailangan mo ring i-clear ang mga hindi default na mga string at i-reset ang mga counter. Ang mga pagkilos na isasagawa isinasaalang-alang na bilang karagdagan sa "filter" mayroong iba pang mga talahanayan, (ipinag-uutos na basahin ang file na "/ proc / net / ip_tables_names" para dito).

    Sa pamamagitan ng paraan, sinabi ng orthodoxy na ang isang firewall ay dapat na naka-up bago ang network ay. Hindi ko alam kung paano ito nakakamit sa iba pang mga system ng Linux, ngunit sa mga Debian, ang script ay maaaring iakma at itakda sa direktoryo na "/etc/network/if-pre-up.d/".

    Magandang firewalling lahat. 😉

  3.   NauTiluS dijo

    Kumusta, napakahusay ng post. Nabasa ko na ang buong 2 dami.

    Naghihintay para sa susunod na 🙂

  4.   hindi kilala dijo

    Isang katanungan mula sa aking kamangmangan, nagpapatuloy kami sa mga iptable, ngunit para sa maraming mga bersyon ng kernel mayroon kaming mga nftable, sinusubukan ko na, ang mga katanungan ay, ang nftables ay isang bagay na beta na may paggalang sa mga iptable? Patuloy bang gagamitin ang mga iptable nang mas matagal?

    Salamat sa inyo.

    1.    yukiteru dijo

      Kasama sa nftables ang lahat ng mga pag-andar ng iptables, ip6tables, arptables at ebtables, lahat ay gumagamit ng isang bagong imprastraktura sa parehong kernelspace at Userspace, na tinitiyak ang mas mahusay na pagganap at pinabuting pagpapaandar. Papalitan ng mga nftable ang mga iptable at lahat ng iba pang mga tool na nabanggit ngunit hindi para sa ngayon, kahit papaano hindi hanggang sa mas malawak na paggamit ng mga nftable tulad nito.

  5.   Alexander dijo

    napakahusay na post, nais kong basahin ang higit pa dahil napakahusay na ipinaliwanag .. pagbati pagbati malaking kontribusyon

  6.   Avrah dijo

    Kamusta! Napakagandang parehong post.
    Bilang isang kontribusyon maaari mong idagdag sa dulo sa bahaging ito:

    "Ngayon ay i-e-edit namin ang /etc/rc.local file at maglagay ng isang bagay tulad ng: /etc/init.d/ firewall magsimula upang magsimula ito sa system."

    Idagdag ito sa rc.local.

    kung [-x /etc/init.d/ firewall]; tapos
    /etc/init.d/ pagsisimula ng firewall
    fi

    Na nangangahulugang kung ang "firewall" ay may mga pahintulot sa pagpapatupad, ipatupad ito, kung hindi.
    Kung nais mong hindi magsimula ang "firewall", aalisin mo lang ang mga pahintulot.

    Halimbawa: chmod + x /etc/init.d/ firewall
    upang mapatakbo ito sa bawat pagsisimula o ...
    chmod -x /etc/init.d/ firewall
    upang ganap na huwag paganahin ito.

    Pagbati!