Giunsa ang Pag-setup sa usa ka Iptables Firewall aron Ma-enable ang Remote nga Pag-access sa Mga Serbisyo sa Linux - Bahin 8


Pagpaila sa Linux Foundation Certification Program

Mahinumduman nimo gikan sa Bahin 1 - Mahitungod sa mga Iptable niining LFCE (Linux Foundation Certified Engineer) nga serye nga among gihatag ang batakang paghulagway kung unsa ang firewall: usa ka mekanismo sa pagdumala mga packet nga mosulod ug mogawas sa network. Sa \pagdumala gipasabot gyud namo:

  1. Aron tugotan o mapugngan ang pipila ka mga pakete sa pagsulod o paggawas sa among network.
  2. Aron ipadala ang ubang mga pakete gikan sa usa ka punto sa network ngadto sa lain.

base sa gitakda nang daan nga criteria.

Niining artikuloha atong hisgotan kon unsaon pagpatuman ang batakang packet filtering ug unsaon pag-configure ang firewall gamit ang mga iptables, usa ka frontend sa netfilter, nga usa ka lumad nga kernel module nga gigamit alang sa firewalling.

Palihug timan-i nga ang firewalling usa ka halapad nga hilisgutan ug kini nga artikulo wala gituyo aron mahimong usa ka komprehensibo nga giya aron masabtan ang tanan nga kinahanglan mahibal-an bahin niini, apan usa ka punto sa pagsugod alang sa usa ka mas lawom nga pagtuon sa kini nga hilisgutan. Bisan pa, among balikon ang hilisgutan sa Bahin 10 niini nga serye kung among susihon ang pipila ka piho nga kaso sa paggamit sa usa ka firewall sa Linux.

Mahimo nimong hunahunaon ang usa ka firewall ingon usa ka internasyonal nga tugpahanan diin ang mga pasahero nga eroplano moabut ug moadto hapit 24/7. Base sa ubay-ubay nga mga kondisyon, sama sa balido sa pasaporte sa usa ka tawo, o sa iyang nasud nga gigikanan (sa paghingalan sa pipila ka mga pananglitan) mahimo siya, o dili, tugutan nga mosulod o mobiya sa usa ka nasud.

Sa samang higayon, ang mga opisyal sa tugpahanan makatudlo sa mga tawo sa pagbalhin gikan sa usa ka dapit sa tugpahanan ngadto sa lain kon gikinahanglan, pananglitan kon sila kinahanglang moagi sa Customs Services.

Mahimo natong makit-an nga mapuslanon ang analogy sa airport sa panahon sa nahabilin niini nga panudlo. Hinumdomi lang ang mosunod nga mga relasyon samtang nagpadayon kita:

  1. Tawo = Packet
  2. Firewall = Tugpahanan
  3. Nasud #1 = Network #1
  4. Nasud #2 = Network #2
  5. Mga regulasyon sa airport nga gipatuman sa mga opisyal = lagda sa firewall

Iptables - Ang mga sukaranan

Sa ubos nga lebel, ang kernel mismo ang \nagdesisyon kung unsa ang buhaton sa mga pakete base sa mga lagda nga gi-grupo sa mga kadena, o mga tudling-pulong Kini nga mga kadena naghubit kung unsa nga mga aksyon ang kinahanglan buhaton kung ang usa ka pakete mohaum sa mga pamatasan nga gitakda nila.

Ang una nga aksyon nga gihimo sa mga iptables maglangkob sa pagdesisyon kung unsa ang buhaton sa usa ka pakete:

  1. Dawata kini (paagi kini sa among network)?
  2. Isalikway kini (pugngi kini sa pag-access sa among network)?
  3. Ipasa kini (sa laing kadena)?

Kung nahibulong ka kung nganong kini nga himan gitawag nga iptables, kini tungod kay kini nga mga kadena giorganisar sa mga lamesa, nga ang filter table mao ang labing nahibal-an ug ang usa nga gigamit sa pagpatuman sa packet filtering uban sa tulo ka default nga kadena niini:

1. Ang INPUT nga kadena nagdumala sa mga pakete nga mosulod sa network, nga gitakda alang sa lokal nga mga programa.

2. Ang OUTPUT nga kadena gigamit sa pag-analisar sa mga pakete nga naggikan sa lokal nga network, nga ipadala ngadto sa gawas.

3. Ang FORWARD nga kadena nagproseso sa mga packet nga kinahanglan ipasa ngadto sa laing destinasyon (sama sa kaso sa usa ka router).

Alang sa matag usa niini nga mga kadena adunay usa ka default nga palisiya, nga nagdiktar kung unsa ang kinahanglan buhaton pinaagi sa default kung ang mga pakete dili motakdo sa bisan unsang mga lagda sa kadena. Mahimo nimong tan-awon ang mga lagda nga gihimo alang sa matag kadena ug ang default nga palisiya pinaagi sa pagpadagan sa mosunod nga mando:

# iptables -L

Ang anaa nga mga polisiya mao ang mosunod:

  1. DAWAT → ipaagi ang pakete. Ang bisan unsang pakete nga dili motakdo sa bisan unsang mga lagda sa kadena gitugotan sa network.
  2. DROP → hilom nga ihulog ang pakete. Ang bisan unsang pakete nga dili motakdo sa bisan unsang lagda sa kadena gipugngan sa pagsulod sa network.
  3. REJECT → isalikway ang pakete ug ibalik ang mensahe nga impormasyon. Kini nga usa sa partikular wala molihok ingon usa ka default nga palisiya. Hinunoa, gituyo kini aron makadugang sa mga lagda sa pagsala sa pakete.

Kung bahin sa pagdesisyon kung unsang polisiya ang imong ipatuman, kinahanglan nimong tagdon ang prosug cons sa matag pamaagi sama sa gipatin-aw sa ibabaw - timan-i nga walay usa ka gidak-on nga angay. - tanan nga solusyon.

Aron makadugang usa ka lagda sa firewall, gamita ang iptables nga mando sama sa mosunod:

# iptables -A chain_name criteria -j target

diin,

  1. -A nagpasabot sa Append (idugang ang kasamtangang lagda sa kataposan sa kadena).
  2. Ang
  3. chain_name kay INPUT, OUTPUT, o FORWARD.
  4. Ang
  5. target mao ang aksyon, o polisiya, nga ipadapat niini nga kaso (DAGTA, IREJECT, o DROP).
  6. Ang
  7. kriterya mao ang hugpong sa mga kondisyon diin ang mga pakete pagasusihon. Kini gilangkoban ug labing menos usa (lagmit daghan pa) sa mosunod nga mga bandera. Ang mga kapilian sa sulod sa mga braket, nga gibulag sa usa ka bertikal nga bar, katumbas sa usag usa. Ang uban nagrepresentar sa opsyonal nga mga switch:

[--protocol | -p] protocol: specifies the protocol involved in a rule.
[--source-port | -sport] port:[port]: defines the port (or range of ports) where the packet originated.
[--destination-port | -dport] port:[port]: defines the port (or range of ports) to which the packet is destined.
[--source | -s] address[/mask]: represents the source address or network/mask.
[--destination | -d] address[/mask]: represents the destination address or network/mask.
[--state] state (preceded by -m state): manage packets depending on whether they are part of a state connection, where state can be NEW, ESTABLISHED, RELATED, or INVALID.
[--in-interface | -i] interface: specifies the input interface of the packet.
[--out-interface | -o] interface: the output interface.
[--jump | -j] target: what to do when the packet matches the rule.

Ipapilit nato ang tanan sa 3 ka klasiko nga mga pananglitan gamit ang mosunod nga palibot sa pagsulay alang sa unang duha:

Firewall: Debian Wheezy 7.5 
Hostname: dev2.gabrielcanepa.com
IP Address: 192.168.0.15
Source: CentOS 7 
Hostname: dev1.gabrielcanepa.com
IP Address: 192.168.0.17

Ug kini alang sa katapusang pananglitan

NFSv4 server and firewall: Debian Wheezy 7.5 
Hostname: debian
IP Address: 192.168.0.10
Source: Debian Wheezy 7.5 
Hostname: dev2.gabrielcanepa.com
IP Address: 192.168.0.15

Atong itakda ang usa ka DROP nga polisiya una para sa input pings sa atong firewall. Sa ato pa, hilom nga ihulog ang mga pakete sa icmp.

# ping -c 3 192.168.0.15
# iptables -A INPUT --protocol icmp --in-interface eth0 -j DROP

Sa dili pa ipadayon ang REJECT nga bahin, atong i-flush ang tanang lagda gikan sa INPUT chain aron masiguro nga ang atong mga packet masulayan niining bag-ong lagda:

# iptables -F INPUT
# iptables -A INPUT --protocol icmp --in-interface eth0 -j REJECT
# ping -c 3 192.168.0.15

Among atubangon ang OUTPUT nga kadena samtang among gidumala ang paggawas nga trapiko:

# iptables -A OUTPUT --protocol tcp --destination-port 22 --out-interface eth0 --jump REJECT

Pagdalagan ang mosunod nga mga sugo sa NFSv4 server/firewall aron isira ang mga pantalan 2049 ug 111 alang sa tanang matang sa trapiko:

# iptables -F
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j REJECT

Karon atong ablihan ang mga pantalan ug tan-awon kung unsa ang mahitabo.

# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 111 -j ACCEPT
# iptables -A INPUT -i eth0 -s 0/0 -p tcp --dport 2049 -j ACCEPT

Sama sa imong nakita, nakahimo kami sa pag-mount sa NFSv4 nga bahin pagkahuman sa pag-abli sa trapiko.

Sa nangaging mga pananglitan among gipakita kung unsaon pagdugang ang mga lagda sa INPUT ug OUTPUT nga mga kadena. Kung gusto namong ibutang kini sa usa ka predefined nga posisyon, kinahanglan namong gamiton ang switch nga -I (uppercase i).

Kinahanglan nimong hinumdoman nga ang mga lagda mag-evaluate sa usag usa, ug nga ang ebalwasyon mohunong (o molukso) kung ang usa ka DROP o ACCEPT nga palisiya gipares. Tungod niana nga rason, mahimo nimong makita ang imong kaugalingon sa panginahanglan sa pagbalhin sa mga lagda pataas o paubos sa lista sa kadena kung gikinahanglan.

Atong gamiton ang usa ka gamay nga pananglitan aron ipakita kini:

Atong ibutang ang mosunod nga lagda,

# iptables -I INPUT 2 -p tcp --dport 80 -j ACCEPT

sa posisyon 2) sa kadena sa INPUT (sa ingon nagbalhin sa miaging #2 ingon #3)

Gamit ang setup sa ibabaw, susiha ang trapiko aron makita kung gidirekta ba kini sa pantalan 80 sa dili pa susihon ang port 2049.

Sa laing bahin, mahimo nimong papason ang usa ka lagda ug usbon ang target sa nahabilin nga mga lagda ngadto sa REJECT (gamit ang -R switch):

# iptables -D INPUT 1
# iptables -nL -v --line-numbers
# iptables -R INPUT 2 -i eth0 -s 0/0 -p tcp --dport 2049 -j REJECT
# iptables -R INPUT 1 -p tcp --dport 80 -j REJECT

Katapusan, apan dili labing gamay, kinahanglan nimong hinumdoman nga aron ang mga lagda sa firewall magpadayon, kinahanglan nimo nga i-save kini sa usa ka file ug dayon ibalik kini awtomatiko sa pag-boot (gamit ang gusto nga pamaagi nga imong gusto o ang usa nga anaa alang sa imong pag-apod-apod).

Pag-save sa mga lagda sa firewall:

# iptables-save > /etc/iptables/rules.v4		[On Ubuntu]
# iptables-save > /etc/sysconfig/iptables		[On CentOS / OpenSUSE]

Mga lagda sa pagpasig-uli:

# iptables-restore < /etc/iptables/rules.v4		[On Ubuntu]
# iptables-restore < /etc/sysconfig/iptables		[On CentOS / OpenSUSE]

Dinhi atong makita ang susama nga pamaagi (pagtipig ug pag-uli sa mga lagda sa firewall pinaagi sa kamot) gamit ang dummy file nga gitawag og iptables.dump imbes sa default sama sa gipakita sa ibabaw.

# iptables-save > iptables.dump

Aron mapadayon kining mga pagbag-o sa mga botas:

Ubuntu: I-install ang iptables-persistent package, nga magkarga sa mga lagda nga gitipigan sa /etc/iptables/rules.v4 file.

# apt-get install iptables-persistent

CentOS: Idugang ang mosunod nga 2 ka linya sa /etc/sysconfig/iptables-config file.

IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"

OpenSUSE: Ilista ang gitugotan nga mga pantalan, protocol, adres, ug uban pa (gibulag sa mga koma) sa /etc/sysconfig/SuSEfirewall2.

Alang sa dugang nga impormasyon tan-awa ang file mismo, nga gikomentohan pag-ayo.

Konklusyon

Ang mga pananglitan nga gihatag sa kini nga artikulo, bisan kung wala gisakup ang tanan nga mga kampana ug mga whistles sa mga iptable, nagsilbi nga katuyoan sa pag-ilustrar kung giunsa ang pagpagana ug pag-disable sa trapiko sa umaabot o paggawas nga trapiko.

Para sa inyo nga mga firewall fans, hinumdomi nga atong balikon kini nga topiko nga adunay mas espesipikong mga aplikasyon sa Bahin 10 niining LFCE nga serye.

Palihug ipahibalo kanako kung naa kay pangutana o komento.