[pso] [Tema4]Inside-Outside problem
Razvan Deaconescu
razvand at cs.pub.ro
Sun May 20 11:49:05 EEST 2007
sorin gsmcreation wrote:
> Salut inca o data.
>
> Ma chinui deja de cateva ore bune sa-mi dau seama de
> ce testul se comporta ciudat...
>
> http://cs.pub.ro/~pso/Teme/note/341C4/Georgescu%20Sorin%20Mihail/tema4/lin/NOTA
pare sa fie din cauza ca nu ai considerat atat regulile dinamice cat si
regulile statice (din problemele pe care le-au mai avut si altii de-a
lungul vremii); am modificat in enunt la precizarea functionalitatii
pentru FW_LIST
iti sugerez sa modifici testul si sa vezi numarul de reguli pe care il
primeste el din kernel-space; vei afisa si numarul de reguli pe care
sa-l asteapta sa-l primeasca; astfel vei vedea diferenta si, destul de
posibil, detecta si corecta problema
> Mai intai adauga o regula statica prin care INSIDE
> este anuntat ca va primi pachete pe portul 22. Totusi,
> urmatoarele pachete le primeste pe porturile 52, 56,
> etc deci nu vor face match cu regula. Mai mult, portul
> 22 reactioneaza, insa la iesire: portul 22 este
> sender-ul mesajelor de output dar ma intreb de ce
> mesajele de input nu s-au primit tot pe portul 22.
portul este transmis in rutina ioctl FW_ADD in network byte-order; ca sa
il afisezi in kernel-space in rutina ioctl ar trebui sa apelezi ntohs;
ai facut asta?
> Aceeasi problema dupa adaugarea primei regule dinamice
> (TCP): se stabilesc doua porturi, dar in loc ca ele sa
> fie folosite pe INPUT si sa faca match, sunt folosite
> inversat la OUTPUT.
sigur ai urmat indicatia din enuntul temei?
"in cazul in care se detecteaza un pachet ce initiaza o conexiune din
interior, fie el (ip sursa, ip destinatie, port sursa, port destinatie)
= (a, b, c, d) se va insera in tabela de reguli un pachet (b, a, d, c);"
> M-am gandit ca am inversat eu hook-urile intre ele,
> dar din documentatia citita pare corect:
>
> // hook-ul de input:
> static struct nf_hook_ops input_hook =
> {
> .hook = input_hook_handler,
> .hooknum = NF_IP_LOCAL_IN,
> .pf = PF_INET,
> .priority = NF_IP_PRI_FIRST
> };
>
> // hook-ul de output:
> static struct nf_hook_ops output_hook =
> {
> .hook = output_hook_handler,
> .hooknum = NF_IP_LOCAL_OUT,
> .pf = PF_INET,
> .priority = NF_IP_PRI_FIRST
> };
hook-urile netfilter sunt OK
Razvan
More information about the pso
mailing list