Bii O ṣe le Ṣeto Ogiri Iptables kan lati Jeki Wiwọle Latọna jijin si Awọn iṣẹ ni Lainos - Apá 8


Ifihan Eto Ijẹrisi Foundation Linux

Iwọ yoo ranti lati Apakan 1 - Nipa Awọn ohun elo ti eyi LFCE ( Linux Foundation Certified Engineer ) jara ti a fun ni ipilẹ alaye ti ohun ti ogiriina jẹ: ilana lati ṣakoso awọn apo-iwe ti n bọ sinu ati nto kuro ni nẹtiwọọki. Nipa\"ṣakoso" a tumọ si gangan:

  1. Lati gba laaye tabi ṣe idiwọ awọn apo-iwe kan lati tẹ tabi fi nẹtiwọọki wa silẹ.
  2. Lati firanṣẹ awọn apo-iwe miiran lati aaye kan ti nẹtiwọọki si omiran.

da lori awọn ilana ti a ti pinnu tẹlẹ.

Ninu nkan yii a yoo jiroro bawo ni a ṣe le ṣe iyọrisi apo-iwe ipilẹ ati bii o ṣe le tunto ogiriina pẹlu awọn iptables, iwaju si netfilter, eyiti o jẹ modulu ekuro abinibi ti a lo fun ogiriina.

Jọwọ ṣe akiyesi pe ogiriina jẹ koko nla ati pe nkan yii ko ni ipinnu lati jẹ itọsọna okeerẹ si agbọye gbogbo eyiti o wa lati mọ nipa rẹ, ṣugbọn dipo bi ibẹrẹ fun iwadi jinlẹ ti koko yii. Sibẹsibẹ, a yoo tun wo koko-ọrọ ni Apakan 10 ti jara yii nigba ti a ṣawari awọn ọran lilo diẹ pato ti ogiriina kan ni Linux.

O le ronu ti ogiriina bi papa ọkọ ofurufu kariaye nibiti awọn ọkọ ofurufu ti wa ki o lọ fere 24/7. Da lori awọn ipo pupọ, gẹgẹ bi iwulo iwe irinna eniyan, tabi orilẹ-ede abinibi rẹ (lati darukọ diẹ ninu awọn apẹẹrẹ) o le, tabi ko le gba, lati gba tabi fi orilẹ-ede kan silẹ.

Ni igbakanna, awọn oṣiṣẹ papa ọkọ ofurufu le kọ awọn eniyan lati gbe lati ibi kan ti papa ọkọ ofurufu si omiran ti o ba jẹ dandan, fun apẹẹrẹ nigbati wọn nilo lati kọja nipasẹ Awọn iṣẹ Awọn aṣa.

A le rii afiwe papa ọkọ ofurufu ti o wulo lakoko iyoku ti ẹkọ yii. Kan ni lokan awọn ibatan wọnyi bi a ṣe n tẹsiwaju:

  1. Awọn eniyan = Awọn apo-iwe
  2. Ogiriina = Papa ọkọ ofurufu
  3. Orilẹ-ede # 1 = Nẹtiwọọki # 1
  4. Orilẹ-ede # 2 = Nẹtiwọọki # 2
  5. Awọn ilana papa ọkọ ofurufu ti a fiṣẹ nipasẹ awọn oṣiṣẹ = awọn ofin ogiriina

Iptables - Awọn ipilẹ

Ni ipele kekere, o jẹ ekuro funrararẹ eyiti\" pinnu " kini o le ṣe pẹlu awọn apo-iwe ti o da lori awọn ofin ti a kojọ ni awọn ẹwọn , tabi awọn gbolohun ọrọ Awọn ẹwọn wọnyi ṣalaye iru awọn iṣe ti o yẹ ki o mu nigbati package kan baamu awọn ilana ti wọn sọ nipa wọn.

Iṣe akọkọ ti awọn iptables ṣe yoo ni ninu pinnu kini lati ṣe pẹlu apo-iwe kan:

  1. Gba o (jẹ ki o kọja nipasẹ nẹtiwọọki wa)?
  2. Kọ ẹ (ṣe idiwọ rẹ lati wọle si nẹtiwọọki wa)?
  3. Firanṣẹ siwaju (si ẹwọn miiran)?

O kan ti o ba ni iyalẹnu idi ti a fi pe ni ohun elo yi iptables , o jẹ nitori awọn ẹwọn wọnyi ti ṣeto ni awọn tabili, pẹlu tabili idanimọ ti o mọ daradara julọ ati eyiti o jẹ lo lati ṣe sisẹ apo-iwe pẹlu awọn ẹwọn aiyipada mẹta rẹ:

Pipe 1. Ẹwọn INPUT n mu awọn apo-iwe ti n bọ sinu nẹtiwọọki, eyiti o pinnu fun awọn eto agbegbe.

2. Ẹwọn OUTPUT ni a lo lati ṣe itupalẹ awọn apo-iwe ti ipilẹṣẹ ninu nẹtiwọọki agbegbe, eyiti o ni lati firanṣẹ si ode.

Pipin SIWAJU n ṣe awọn apo-iwe ti o yẹ ki o dari si ibi-irin-ajo miiran (bii ti olulana kan).

Fun ọkọọkan awọn ẹwọn wọnyi eto imulo aiyipada kan wa, eyiti o sọ ohun ti o yẹ ki o ṣe nipasẹ aiyipada nigbati awọn apo ko baamu eyikeyi awọn ofin ninu pq naa. O le wo awọn ofin ti a ṣẹda fun pq kọọkan ati eto aiyipada nipa ṣiṣe pipaṣẹ wọnyi:

# iptables -L

Awọn eto imulo ti o wa ni atẹle:

  1. Gba → n jẹ ki akopọ naa la kọja. Apoti eyikeyi ti ko baamu eyikeyi awọn ofin ninu pq ni a gba laaye si nẹtiwọọki naa.
  2. DOP → ju apo-iwe silẹ ni idakẹjẹ. Apoti eyikeyi ti ko baamu eyikeyi awọn ofin ninu pq naa ni idiwọ lati wọ inu nẹtiwọọki naa.
  3. KỌ → kọ kọlu o si pada ifiranṣẹ ti alaye. Eyi kan ni pato ko ṣiṣẹ bi eto imulo aiyipada. Dipo, o tumọ si lati ṣafikun awọn ofin sisẹ apo.

Nigbati o ba pinnu ipinnu eto imulo ti iwọ yoo ṣe, o nilo lati ṣe akiyesi awọn awọn anfani ati awọn aṣawakiri ti ọna kọọkan bi a ti salaye loke - ṣe akiyesi pe ko si iwọn-ọkan -gbogbo ojutu.

Lati ṣafikun ofin si ogiriina, kepe pipaṣẹ iptables bi atẹle:

# iptables -A chain_name criteria -j target

ibo,

  1. -A duro fun Afikun (ṣafikun ofin lọwọlọwọ si opin ẹwọn naa).
  2. chain_name jẹ boya INPUT, OUTUTUT, tabi SIWAJU.
  3. ibi-afẹde jẹ iṣe, tabi ilana-iṣe, lati lo ninu ọran yii (Gba, Kọ, tabi DOP).
  4. awọn agbekalẹ ni ipilẹ awọn ipo ti o yẹ ki a ṣe ayẹwo awọn apo-iwe si. O kq ni o kere ju ọkan (o ṣeeṣe julọ diẹ sii) ti awọn asia atẹle. Awọn aṣayan inu awọn akọmọ, ti a yapa nipasẹ igi iduro, jẹ deede si ara wọn. Iyokù duro fun awọn iyipada aṣayan:

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

Jẹ ki a lẹ pọ gbogbo iyẹn ni awọn apeere alailẹgbẹ 3 nipa lilo agbegbe idanwo atẹle fun awọn akọkọ meji:

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

Ati eyi fun apẹẹrẹ ti o kẹhin

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

A yoo ṣalaye ofin DROP akọkọ fun awọn pings titẹsi si ogiri ogiri wa. Iyẹn ni pe, awọn apo-iwe icmp yoo ju silẹ laiparuwo.

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

Ṣaaju ki o to tẹsiwaju pẹlu apakan REJECT , a yoo ṣan gbogbo awọn ofin lati pq INPUT lati rii daju pe awọn apo wa yoo ni idanwo nipasẹ ofin tuntun yii:

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

A yoo ṣe ajọṣepọ pẹlu pq OUTPUT bi a ṣe n ṣetọju ijabọ ti njade:

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

Ṣiṣe awọn ofin wọnyi ni olupin NFSv4/ogiriina lati pa awọn ibudo 2049 ati 111 fun gbogbo iru ijabọ:

# 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

Bayi jẹ ki a ṣii awọn ibudo wọnyẹn ki o wo ohun ti o ṣẹlẹ.

# 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

Bi o ti le rii, a ni anfani lati gbe ipin NFSv4 lẹhin ti ṣiṣi ijabọ naa.

Ninu awọn apẹẹrẹ iṣaaju a fihan bi a ṣe le fikun awọn ofin si awọn ẹwọn INPUT ati OUTPUT . Ṣe a fẹ lati fi sii wọn dipo ni ipo ti a ti pinnu tẹlẹ, o yẹ ki a lo iyipada -I (oke i) dipo.

O nilo lati ranti pe awọn ofin ni yoo ṣe ayẹwo lẹẹkọọkan, ati pe igbelewọn duro (tabi fo) nigbati ilana DROP tabi ACCEPT baamu. Fun idi eyi, o le rii ararẹ ninu iwulo lati gbe awọn ofin soke tabi isalẹ ninu atokọ pq bi o ṣe nilo.

A yoo lo apẹẹrẹ kekere kan lati ṣe afihan eyi:

Jẹ ki a gbe ofin atẹle,

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

ni ipo 2) ninu ẹwọn INPUT (nitorinaa gbigbe # 2 tẹlẹ bi # 3)

Lilo iṣeto ni oke, yoo ṣayẹwo ijabọ lati rii boya o tọka si ibudo 80 ṣaaju ṣiṣe ayẹwo ibudo 2049 .

Ni omiiran, o le paarẹ ofin kan ki o yi ayipada ibi-afẹde ti awọn ofin to ṣẹku pada si 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

Ni ikẹhin, ṣugbọn kii kere ju, iwọ yoo nilo lati ranti pe ni ibere fun awọn ofin ogiriina lati wa ni itẹramọṣẹ, iwọ yoo nilo lati fi wọn pamọ si faili kan lẹhinna mu wọn pada si adaṣe lori bata (lilo ọna ayanfẹ ti o fẹ tabi eyi ti wa fun pinpin rẹ).

Fifipamọ awọn ofin ogiriina:

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

Pada sipo awọn ofin:

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

Nibi a le rii ilana ti o jọra (fifipamọ ati mimu-pada sipo awọn ofin ogiriina pẹlu ọwọ) nipa lilo faili odidi kan ti a pe ni iptables.dump dipo aiyipada bi a ti han loke.

# iptables-save > iptables.dump

Lati ṣe awọn ayipada wọnyi jubẹẹlo kọja awọn bata orunkun:

Ubuntu : Fi package iptables-jubẹẹlo sii, eyi ti yoo gbe awọn ofin ti o fipamọ sinu faili /etc/iptables/rules.v4 sii.

# apt-get install iptables-persistent

CentOS : Ṣafikun awọn ila 2 wọnyi si faili /etc/sysconfig/iptables-config

IPTABLES_SAVE_ON_STOP="yes"
IPTABLES_SAVE_ON_RESTART="yes"

OpenSUSE : Ṣe atokọ awọn ibudo, awọn ilana, awọn adirẹsi, ati bẹbẹ lọ (ti o ya sọtọ nipasẹ awọn aami idẹsẹ) ni /ati be be/sysconfig/SuSEfirewall2 .

Fun alaye diẹ sii tọka si faili funrararẹ, eyiti o jẹ asọye pupọ.

Ipari

Awọn apẹẹrẹ ti a pese ni nkan yii, lakoko ti ko ṣe ibora gbogbo awọn agogo ati awọn fère ti awọn iptables, ṣiṣẹ fun idi ti apejuwe bi o ṣe le mu ṣiṣẹ ati mu ijabọ ti nwọle tabi ijabọ ti njade kuro.

Fun eyin ti ẹyin ti o jẹ onibirin ogiriina, ni lokan pe a yoo tun wo akọle yii pẹlu awọn ohun elo pato diẹ sii ni Apakan 10 ti jara LFCE yii.

Ni ominira lati jẹ ki mi mọ ti o ba ni ibeere tabi awọn asọye eyikeyi.