Kif Twaqqaf Iptables Firewall biex Tippermetti Aċċess Remot għas-Servizzi fil-Linux - Parti 8


L-introduzzjoni tal-Programm ta' Ċertifikazzjoni tal-Fondazzjoni Linux

Se tfakkar mill-Parti 1 – Dwar Iptables ta’ din is-serje LFCE (Linux Foundation Certified Engineer) li tajna deskrizzjoni bażika ta’ x’inhu firewall: mekkaniżmu biex timmaniġġja pakketti li jidħlu u joħorġu min-netwerk. Bi \immaniġġja fil-fatt nifhmu:

  1. Biex tippermetti jew tipprevjeni li ċerti pakketti jidħlu jew joħorġu min-netwerk tagħna.
  2. Biex tibgħat pakketti oħra minn punt wieħed tan-netwerk għal ieħor.

ibbażata fuq kriterji predeterminati.

F'dan l-artikolu ser niddiskutu kif nimplimentaw l-iffiltrar bażiku tal-pakketti u kif tikkonfigura l-firewall b'iptables, frontend għal netfilter, li huwa modulu tal-kernel nattiv użat għall-firewalling.

Jekk jogħġbok innota li l-firewalling huwa suġġett vast u dan l-artikolu mhuwiex maħsub biex ikun gwida komprensiva biex wieħed jifhem dak kollu li hemm biex tkun taf dwaru, iżda pjuttost bħala punt tat-tluq għal studju aktar profond ta 'dan is-suġġett. Madankollu, se nirrevedu s-suġġett f'Parti 10 ta' din is-serje meta nesploraw ftit każijiet speċifiċi ta' użu ta' firewall fil-Linux.

Tista 'taħseb firewall bħala ajruport internazzjonali fejn ajruplani tal-passiġġieri jiġu u jmorru kważi 24/7. Fuq il-bażi ta’ numru ta’ kundizzjonijiet, bħall-validità tal-passaport ta’ persuna, jew il-pajjiż ta’ oriġini tagħha (biex insemmu xi ftit eżempji) tista’, jew ma tistax, titħalla tidħol jew titlaq minn ċertu pajjiż.

Fl-istess ħin, uffiċjali tal-ajruport jistgħu jagħtu struzzjonijiet lin-nies biex jiċċaqilqu minn post tal-ajruport għall-ieħor jekk ikun meħtieġ, pereżempju meta jkollhom bżonn jgħaddu mis-Servizzi tad-Dwana.

Nistgħu nsibu l-analoġija tal-ajruport utli matul il-bqija ta 'dan it-tutorja. Żomm f'moħħok ir-relazzjonijiet li ġejjin hekk kif nipproċedu:

  1. Persuni = Pakketti
  2. Firewall = Ajruport
  3. Pajjiż #1 = Netwerk #1
  4. Pajjiż #2 = Netwerk #2
  5. Regolamenti tal-ajruport infurzati minn uffiċjali = regoli tal-firewall

Iptables - Il-Basics

Fil-livell baxx, huwa l-qalba innifsu li \jiddeċiedi” x'għandu jsir b'pakketti bbażati fuq regoli miġbura fi ktajjen, jew sentenzi Dawn il-ktajjen jiddefinixxu x'azzjonijiet għandhom jittieħdu meta pakkett jaqbel mal-kriterji speċifikati minnhom.

L-ewwel azzjoni meħuda minn iptables se tikkonsisti fid-deċiżjoni x'għandek tagħmel b'pakkett:

  1. Aċċettaha (ħalliha tgħaddi fin-netwerk tagħna)?
  2. Irrifjutah (jipprevjenih milli jaċċessa n-netwerk tagħna)?
  3. Tgħaddiha (għal katina oħra)?

Fil-każ li kont qed tistaqsi għaliex din l-għodda tissejjaħ iptables, huwa għaliex dawn il-ktajjen huma organizzati f’tabelli, bit-tabella tal-filtri tkun l-aktar magħrufa u dik li hija użat biex jimplimenta l-iffiltrar tal-pakketti bit-tliet ktajjen default tiegħu:

1. Il-katina INPUT timmaniġġja pakketti li jidħlu fin-netwerk, li huma destinati għal programmi lokali.

2. Il-katina OUTPUT tintuża biex tanalizza pakketti oriġinaw fin-netwerk lokali, li għandhom jintbagħtu barra.

3. Il-katina FOWARD tipproċessa l-pakketti li għandhom jintbagħtu lejn destinazzjoni oħra (bħal fil-każ ta' router).

Għal kull waħda minn dawn il-ktajjen hemm politika default, li tiddetta x'għandu jsir b'mod awtomatiku meta l-pakketti ma jaqblux ma' xi waħda mir-regoli fil-katina. Tista 'tara r-regoli maħluqa għal kull katina u l-politika default billi tħaddem il-kmand li ġej:

# iptables -L

Il-politiki disponibbli huma kif ġej:

  1. AĊĊETTA → tħalli l-pakkett jgħaddi. Kwalunkwe pakkett li ma jaqbilx ma' xi regoli fil-katina huwa permess fin-netwerk.
  2. DROP → twaqqa’ l-pakkett bil-kwiet. Kwalunkwe pakkett li ma jaqbilx ma' xi regoli fil-katina huwa pprojbit milli jidħol fin-netwerk.
  3. IRĊAĦDA → jirrifjuta l-pakkett u jirritorna messaġġ informattiv. Din b'mod partikolari ma taħdimx bħala politika default. Minflok, huwa maħsub biex jikkumplimenta r-regoli tal-iffiltrar tal-pakketti.

Meta tiġi biex tiddeċiedi liema politika se timplimenta, trid tikkunsidra l-vantaġġi u l-iżvantaġġi ta’ kull approċċ kif spjegat hawn fuq – innota li m’hemm l-ebda għażla waħda. -soluzzjoni kollha.

Biex iżżid regola mal-firewall, invoka l-kmand iptables kif ġej:

# iptables -A chain_name criteria -j target

fejn,

  1. -A tfisser Append (ehmeż ir-regola attwali mat-tarf tal-katina).
  2. chain_name huwa jew INPUT, OUTPUT, jew FORWARD.
  3. mira hija l-azzjoni, jew il-politika, li għandha tiġi applikata f'dan il-każ (AĊĊETTA, ĊĦAĦDA, jew Waqqa').
  4. kriterji huwa s-sett ta' kundizzjonijiet li magħhom għandhom jiġu eżaminati l-pakketti. Huwa magħmul minn mill-inqas wieħed (x'aktarx aktar) mill-bnadar li ġejjin. Għażliet ġewwa parentesi, separati minn bar vertikali, huma ekwivalenti għal xulxin. Il-bqija jirrappreżenta swiċċijiet fakultattivi:

[--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.

Ejja nkolla dak kollu fi 3 eżempji klassiċi billi tuża l-ambjent tat-test li ġej għall-ewwel tnejn:

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

U dan għall-aħħar eżempju

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

L-ewwel ser niddefinixxu politika ta' DROP għall-input pings fil-firewall tagħna. Jiġifieri, il-pakketti icmp se jintefgħu bil-kwiet.

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

Qabel ma nipproċedu bil-parti ta' IR-REJECT, aħna se naħsel ir-regoli kollha mill-katina INPUT biex niżguraw li l-pakketti tagħna jiġu ttestjati b'din ir-regola l-ġdida:

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

Se nkunu qed nittrattaw il-katina OUTPUT hekk kif qed nittrattaw it-traffiku ħerġin:

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

Mexxi l-kmandi li ġejjin fis-server/firewall NFSv4 biex tagħlaq il-portijiet 2049 u 111 għal kull tip ta 'traffiku:

# 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

Issa ejja niftħu dawk il-portijiet u naraw x'jiġri.

# 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

Kif tistgħu taraw, stajna narmaw is-sehem NFSv4 wara li ftaħt it-traffiku.

Fl-eżempji preċedenti wrejna kif tehmeż ir-regoli mal-ktajjen INPUT u OUTPUT. Jekk irridu ndaħħluhom minflok f'pożizzjoni predefinita, għandna nużaw is-swiċċ -I (i u kbar) minflok.

Trid tiftakar li r-regoli se jiġu evalwati wara xulxin, u li l-evalwazzjoni tieqaf (jew taqbeż) meta politika ta' DROP jew AĊĊETTA tkun imqabbla. Għal dik ir-raġuni, tista 'ssib ruħek fil-ħtieġa li tmexxi r-regoli 'l fuq jew 'l isfel fil-lista tal-katina kif meħtieġ.

Se nużaw eżempju trivjali biex nuru dan:

Ejja npoġġu r-regola li ġejja,

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

fil-pożizzjoni 2) fil-katina INPUT (b'hekk niċċaqlaq #2 preċedenti bħala #3)

Bl-użu tas-setup ta’ hawn fuq, it-traffiku jiġi ċċekkjat biex jara jekk huwiex dirett lejn il-port 80 qabel ma jiċċekkja l-port 2049.

Alternattivament, tista' tħassar regola u tibdel il-mira tar-regoli li fadal għal IR-RIFETTA (bl-użu tas-swiċċ -R):

# 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

Fl-aħħar, iżda mhux l-inqas, ikollok bżonn tiftakar li sabiex ir-regoli tal-firewall ikunu persistenti, ser ikollok bżonn issalvahom f'fajl u mbagħad tirrestawrahom awtomatikament mal-boot (bl-użu tal-metodu preferut tal-għażla tiegħek jew dak li hija disponibbli għad-distribuzzjoni tiegħek).

Iffrankar tar-regoli tal-firewall:

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

Ir-regoli tar-restawr:

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

Hawnhekk nistgħu naraw proċedura simili (issejvjar u restawr tar-regoli tal-firewall bl-idejn) billi tuża fajl finta msejjaħ iptables.dump minflok dak default kif muri hawn fuq.

# iptables-save > iptables.dump

Biex tagħmel dawn il-bidliet persistenti madwar l-istivali:

Ubuntu: Installa l-pakkett iptables-persistent, li se jgħabbi r-regoli ssejvjati fil-fajl /etc/iptables/rules.v4.

# apt-get install iptables-persistent

CentOS: Żid iż-żewġ linji li ġejjin fil-fajl /etc/sysconfig/iptables-config.

IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"

OpenSUSE: Elenka portijiet permessi, protokolli, indirizzi, eċċ (separati b'virgoli) f'/etc/sysconfig/SuSEfirewall2.

Għal aktar informazzjoni irreferi għall-fajl innifsu, li huwa kkummentat ħafna.

Konklużjoni

L-eżempji pprovduti f'dan l-artikolu, filwaqt li ma jkoprux il-qniepen u s-sfarfar kollha tal-iptables, iservu l-iskop li juru kif jiġi attivat u diżattivat it-traffiku li jkun dieħel jew ħerġin.

Għal dawk minnkom li huma dilettanti tal-firewall, żommu f'moħħok li se nirrevedu dan is-suġġett b'applikazzjonijiet aktar speċifiċi f'Parti 10 ta' din is-serje LFCE.

Ħossok liberu li tgħarrafni jekk għandek xi mistoqsijiet jew kummenti.