netfilter 후킹

declspec의 이미지

넷필터로 리눅스상의 네트워크체인에 후킹을 걸때
우선순위를 정할수가 있는데요

제가 올린 모듈이 PRE ROUTING 에다가 우선순위를 1 로 해서 걸었는데
다른 모듈도 똑같이 PRE ROUTING 에다가 1로 체인을 걸면
누구께 먼저 호출되나요??

wariua의 이미지

iptables 명령을 사용하는 경우라고 하면, 규칙을 추가하는 옵션이 두 가지입니다. -I는 규칙을 insert 하므로 원래 있던 규칙(들)이 뒤로 한 칸씩 밀립니다. 반면 -A는 규칙을 append 하므로 새로 넣는 규칙이 체인의 제일 끝으로 갑니다. 즉, '다른 모듈'이 체인에 규칙을 넣을 때 어떤 옵션을 쓰느냐에 달려있습니다.

'모듈'이 커널 모듈을 말씀하신 거라면, 그리고 '후킹을 건다'라는 게 nf_register_hook() 호출을 얘기하신 거라면, nf_register_hook() 함수 내용을 보면 알 수 있듯이 먼저 추가한 체인이 먼저 호출됩니다.

$PWD `date`

declspec의 이미지

그렇군요~ 감사합니다

자기실력이 좋다고 느껴지는건 공부를 안하고 있다는 신호.