wolfy, cred ca problema e mai complexa de atat ...
nu pot sa marchez pachetele UDP (pe care le trimite traceroute) in INPUT
pt. ca nici macar nu trec pe acolo ... nefiind adresate router-ului,
ajung direct in FORWARD ... si chiar daca le-asi marca in FORWARD nu
rezolv nimic, pt. ca buba nu este a le routa pe astea ci de a routa
corect ICMP-urile de raspuns din partea router-ului ...
deasemenea nici --ctorigdst nu ma ajuta pt. ca nu stiu nici sursa si
nici destinatia ... adica pachetul UDP pe care il vede router-ul are o
sursa aleatoare din net, iar destinatia este la fel de aleatoare din
subnet-urile mele (S1 sau S2) ... singurul lucru pe care-l vede
router-ul este TTL-ul care a ajuns la 1 si atunci se sesizeaza "din
oficiu" ;) si trimite ICMP-ul de raspuns catre sursa ...
solutia ar fi sa marchez in FORWARD conexiunile si nu pachetele, iar
apoi sa le "prind" (pe conexiuni) in OUTPUT
din pacate nici chestia asta nu merge pt. ca kernelul se comporta ca si
cum ICMP-urile de raspuns din OUTPUT n-ar fi din aceeasi conexiune cu
UDP-urile care au trecut anterior prin FORWARD
uite cum arata ce ajunge in FORWARD
IN=eth1 OUT=eth2 SRC=y.y.y.y DST=z.z.z.z LEN=68 TOS=0x00 PREC=0x00 TTL=1
ID=14678 PROTO=UDP SPT=37103 DPT=33452 LEN=48
si ce iese prin OUTPUT:
IN= OUT=eth0 SRC=x.x.x.x DST=y.y.y.y LEN=96 TOS=0x00 PREC=0xC0 TTL=64
ID=7524 PROTO=ICMP TYPE=11 CODE=0 [SRC=y.y.y.y DST=z.z.z.z LEN=68
TOS=0x00 PREC=0x00 TTL=1 ID=14678 PROTO=UDP SPT=37103 DPT=33452 LEN=48 ]
unde x.x.x.x e IP al router-ului (in cazul de fata de pe placa ailalta
... adica eth1), y.y.y.y e IP din net, iar z.z.z.z e IP din DMZ
am incercat sa le marchez cu:
$IPTABLES -t mangle -A FORWARD -i $P1_NIC -j CONNMARK --set-mark 0x1
$IPTABLES -t mangle -A FORWARD -i $P2_NIC -j CONNMARK --set-mark 0x2
si sa le prind cu:
$IPTABLES -t mangle -A OUTPUT -m connmark --mark 0x1 -j LOG
$IPTABLES -t mangle -A OUTPUT -m connmark --mark 0x2 -j LOG
... nema ... nica ... nici urma ...
in schimb cu:
$IPTABLES -t mangle -A FORWARD -o $P1_NIC -m connmark --mark 0x1 -j LOG
$IPTABLES -t mangle -A FORWARD -o $P2_NIC -m connmark --mark 0x2 -j LOG
le prind pe alea care vin inapoi din DMZ (tot ICMP-uri)
sa moara peshte prajit daca stiu de unde s-o apuc ...
vlad
lonely wolf a scris:
ai mai multe variante. de pilda sa marchezi pachetele la intrare
iptables -t mangle -A INPUT -i $INT1 -set-mark 1
iptables -t mangle -A INPUT -i $INT2 -set-mark 2
si apoi sa rutezi functie de mark.
alternativ te poti folosi de conntrack si --ctorigdst
_______________________________________________
RLUG mailing list
RLUG@lists.lug.ro
http://lists.lug.ro/mailman/listinfo/rlug