Alex 'CAVE' Cernat wrote:

Eu abia m-am apucat de studiat iptables. Aveti idei cum sa-l fac mai destept, sau mai performant?


for a in $IP_UNTRUSTED
do

# alte chestii, porturi speciale, etc.

ROMANIA=`cat route_metropolitana`
for r in $ROMANIA
do
$IPTABLES -A FORWARD -i $LAN_IFACE -p tcp -s $a -d $r -j ACCEPT
echo adresa: $a .... metroul: $r
done

done

ti-ar prinde bine niste reguli de programare :-)
1. gandeste-te ca scriptul tau adauga m * n reguli de firewall ( produs
cartezian intre ip_untrusted si route_metropolitana; mult mai elegant ar
fi fost ceva de genul
creat chain untrust
for a in $IP_UNTRUSTED; do iptables -A FORWARD .... -s $a -j untrust;
done
for r in $ROMANIA; do iptables -A untrust .... bla bla ... ; done

Multumesc amindorura, asa am facut acum. Timpul de incarcare al scriptului a scazut la cam 30 s. Nu stiam exact cum e cu user defined chains. M-am mai uitat pe howto, m-am uitat si de citeva ori si pe ce ati scris aici, si am reusit.

2. cred ca un while read r; do .... done < route_metropolitana s-ar fi
miscat mai bine ( macar ca nu mai incarca toate var in memorie ); dar
trebuie 1 ip / clasa pe o linie in fisier

Asta cred e ceva minor fata de ce are de mestecat calculatorul.

3. incearca sa faci o grupare a claselor de ip-uri metropolitane, daca
se poate; iarasi revin la obsesia mea de firewall arborescent atunci
cand prea multe route
un exemplu:
141.85.0.0/16 - 141.85.10.0/24 - 141.85.10.1/32 -> accept
\ 141.85.20.0/24 -> accept
\ 141.85.30.0/24 -... bla bla bla
193.226.0.0/16 - 193.226.51.0/24 -> accept
\ 193.226.80.0/24 -> accept

adica cumva sa incluzi clasele in clase mai mari
partea buna e ca numarul de reguli testate va creste logaritmic si nu
liniar
partea rea e ca apar multe reguli de firewall in plus care mananca
memorie
the choice is yours

Adica in loc sa fie liniara lista aia, sa fie arborescenta, si deci mai putine reguli la baza, nu?
Acum, ca imi merge, nu imi vine sa mai umblu (as long as it works, don't fuck with it :)

--
Ce nu te omoara, ti-o intareste.


---
Pentru dezabonare, trimiteti mail la [EMAIL PROTECTED] cu subiectul 'unsubscribe rlug'.
REGULI, arhive si alte informatii: http://www.lug.ro/mlist/


Raspunde prin e-mail lui