01.01.2013 Views

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

Liber 000 - Astrum Argentum

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

módulo, isto é fazer todas as atribuições, preparar nosso triggers, ou<br />

setar alguma coisa que desejamos dentro do kernel<br />

int init_module()<br />

{<br />

Blz até aqui, vamos agora preencher nossa estrutura nf_hok_ops<br />

primeiro atribuimos a .hoknum o valor de NF_IP_LOCAL_IN(pacotes<br />

chegando na máquina)<br />

hulk.hoknum = NF_IP_LOCAL_IN;<br />

Primeira regra da hok a ser obedecida<br />

hulk.priority = NF_IP_PRI_FIRST;<br />

Apontamos .hok para nossa função<br />

hulk.hok = hokfunc;<br />

E definimos a familia da hok<br />

hulk.pf = PF_INET;<br />

Utilizando a função nf_register_hok(nf_hok_ops *), inserimos nossa hok<br />

dentro do netfilter<br />

nf_register_hok(&hulk);<br />

Retornamos 0 indicando que o módulo foi carregado com sucesso<br />

return 0;<br />

}<br />

Esta função é responsável por arrumar nossa bagunça, em todo módulo<br />

acharemos uma destas:<br />

void cleanup_module()<br />

{<br />

Desregistramos nossa hok, e deixamos o kernel viver em paz hehehehe<br />

nf_unregister_hok(&hulk);<br />

}<br />

Bom como vcs puderam ver por este nosso primeiro teste, não é difícil<br />

construir hoks úteis dentro do netfilter seguindo mais ou menos o<br />

exemplo que dei acima.Vamos a segunda parte da primeira parte deste<br />

artigo :D<br />

E se quizermos rejeitar pacote para um determinado protocolo??<br />

120

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!