Núna ætla ég að fara í gegnum eldveggin, lið fyrir lið og útskýra hvað er verið að reyna að gera í hverjum lið.

Eftir það munu koma “changelogs” fyrir nýjar útgáfur af honum, en þær eru væntanlegar á næstu dögum.

Ég mun skipta niður liðunum með strikum þannig að þið ættuð ekki að nota þessa grein til að kópíera vegginn :)

<hr>

#!/bin/bash

#Skiptu út X fyrir þær tölur sem þarf á hverjum stað.

STATICIP=XXX.XXX.XXX.XXX #Fasta IP-talan þín
LOCALNET=XXX.XXX.XXX.XXX #Networkið á staðarnetinu
SUBNET=XXX.XXX.XXX.XXX #Subnet maski staðarnets
IRCSERVER=194.105.224.50 #irc server sem þú notar (t.d. irc.simnet.is)
NETDEVICE=ppp0 #getur verið pppX eða ethX (X er þá tala)

Þarna eru í raun þær einu uppsetningar sem notandi þarf að fylla út til að nota vegginn í óbreyttri mynd. Ætti að vera nokkuð auðvelt að skilja hvað fer á hvern stað.



<hr>

#Best að tæma töfluna fyrst
iptables -F


Þarna er taflan tæmd. Þetta kallast að “Flusha” kerfinu og skilur það eftir í upprunanlegu ástandi. Að vísu er í þessu örlítill galli sem verður lagaður í næstu útgáfu, en ég gleymdi að bæta við reglum sem núllstillir teljara og setur policies á ACCEPT (til þess að núllstilla algjörlega ef menn eru að lenda í vandræðum).

<hr>


#við notum source nat
iptables -t nat -A POSTROUTING -o $NETDEVICE -j SNAT –to $STATICIP


Ég ætla nú ekki út í langar útskýringar á því hvað NAT er. Í stuttu máli þá breytir þessi lína öllum pökkum á þann veg að þeir virðast koma frá föstu ip tölunni í stað þess að koma frá innra netinu.
<hr>


#Bara að hleypa áfram frá okkar undirneti
iptables -A FORWARD -s $LOCALNET/$SUBNET -j ACCEPT
iptables -A FORWARD -d $LOCALNET/$SUBNET -j ACCEPT


Þessar línur hleypa áfram frá okkar undirneti. Einnig mun ég bæta þessar línur í næstu útgáfu, með ýmsum boðum og bönnum. Þetta er liður í því að loka á utanaðkomandi aðila.

<hr>

#Leyfum SSH
iptables -A INPUT -p tcp -d $STATICIP –destination-port 22 -j ACCEPT
echo “SSH er opið”

#Leyfum WWW
iptables -A INPUT -p tcp –destination-port 80 -j ACCEPT
echo “Vefþjónn opinn”


Þessar línur leyfa óhindraðan aðgang að SSH þjóni og HTTP þjóni. Engum er bannaður aðgangur að þessu. Ef við viljum t.d. opna fyrir FTP þjón þá er bara að afrita þessar línur og breyta port tölunni í 21. Þetta er mjög svo “ófullkomin” aðferð en virkar mjög auðveldlega. Hægt er að fara út í flóknari leiðir til að leyfa og banna á þessi port og getum við kíkt á það síðar.
<hr>


#Leyfum blessaðan Identinn fyrir ircþjónin sem við notum

iptables -A INPUT -p tcp -s $IRCSERVER -d $STATICIP –destination-port 113 -j ACCEPT
iptables -A INPUT -p udp -s $IRCSERVER -d $STATICIP –destination-port 113 -j ACCEPT

#og lokum á hann fyrir alla aðra
iptables -A INPUT -p tcp -s ! $IRCSERVER -d $STATICIP –destination-port 113 -j DROP
iptables -A INPUT -p udp -s ! $IRCSERVER -d $STATICIP –destination-port 113 -j DROP

echo “identd bara opinn $IRCSERVER”


Þetta er aðferð til að loka á allar ip tölur nema eina. Í stuttu máli þýðir þetta að fyrst leyfi ég IRCþjóninum sem ég nota, aðgang að identd (sem er kerfi til að auðkenna notendur) og svo loka ég á alla pakka á þetta port sem koma EKKI frá honum (takið eftir upphrópunuarmerkinu, það þýðir “EKKI”).

<hr>

#Þessar línur athuga hvort tengingarnar eigi erindi hingað inn
#Ef þú villt líka loka á ICMP þá geturðu sleppt -p færslunum
iptables -A INPUT -p tcp -d $STATICIP -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p tcp -m state –state NEW -i ! $NETDEVICE -j ACCEPT
iptables -A INPUT -p udp -d $STATICIP -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -p udp -m state –state NEW -i ! $NETDEVICE -j ACCEPT


Þetta er nokkuð merkilegur hlutur sem Iptables bjóða upp á en það er svokallað “Stateful connections”. Þá rannsakar Iptables hvort pakkar sem eru á leið inn séu svar við beiðnum frá innra neti. Ef tengingin kemur innanfrá þá er það í lagi, annars ekki.

<hr>

#Það er ekki þörf á öðrum tengingum inn en þegar eru leyfðar..loka á ALLT!
iptables -A INPUT -p tcp -i $NETDEVICE -j DROP
iptables -A INPUT -p udp -i $NETDEVICE -j DROP

#óþarfi að leyfa meira út en þegar er skilgreint.
iptables -A FORWARD -i $NETDEVICE -j DROP
echo “lokað á óþarfa tengingar”


Svo bara hreinlega skellum við í lás á öflugasta hátt sem fyrirfinnst, DROP. DROP sendir ekki til baka skilaboð um að portið sé lokað og læst, það bara drepur tenginguna á staðnum. Þetta tefur illa fyrir öllum sem eru að reyna eitthvað óprúttið. Alltaf gaman að vera kvikindi :).

<hr>


#stoppum þessi leiðinda ping :)
iptables -A INPUT -i $NETDEVICE -p icmp –icmp-type echo-request -j DROP
iptables -A OUTPUT -o $NETDEVICE -p icmp –icmp-type echo-reply -j DROP
echo “lokað fyrir ping inn”


Við erum þarna að fela okkur aðeins. Bæði lokum við á beiðnir um Ping og lokum einnig á svör. Búist við fullkomnari útgáfu af þessu í næstu útgáfu.

<hr>


#Policies
iptables -P FORWARD DROP
#iptables -P OUTPUT DROP
# af stað með forwarding (just in case)
echo “1” > /proc/sys/net/ipv4/ip_forward


Þarna erum við að ganga frá grunnskilgreiningum kerfisins. Þetta kemur síðast þar sem að Iptables vinnur á First come, first serve kerfi þá erum við að ganga frá þvi að ef að einhverjir pakkar sneiða framhjá reglunum sem fyrir eru settar þá loka þessar grunnskilgreiningar á þá.
echo “JReykdal/www.hugi.is Eldveggur hefur verið reistur”
echo “JRFWall v1.0b 26.06.01 kl. 22:30”
<hr>

Eins og ég sagði þá er væntanleg ný útgáfa með nýjum aðgerðum og fullkomnari útfærslum á þeim sem fyrir eru.

Þar til næst.
JReykdal