OpenWrt 및 교재 Q&A

backfire에서 netfilter를 사용해서 Destination IP를 수정하는데.. 질문이 있습니다.

페이지 정보

작성자 정영휘 작성일18-01-24 16:12 조회8,505회 댓글4건

본문

먼저 봐주셔서 감사합니다.

D-Link사의 DIR-825에 Backfire를 올렸습니다.
netfilter 후킹으로 공유기에서 걸려 나가는 패킷의 목적지 주소를 변경해서 Client가 웹브라우저를 통해 보려는 페이지를 변경하려합니다. 처음 1회만요~
(DNS Spoofing)을 생각했으나 이런저런 예외문제로 버렸습니다.

후킹 체인은 NF_IP_PRE_ROUTING에서 걸구요.
IP, TCP, UDP checksum도 재계산했습니다.
하지만 안되더라구요;;
와샥이랑 후킹 전후에 printk로 찍어보는데 destination IP는 정상 수정되게 찍히는데 브라우저에서는 먹통입니다.
이와 비슷한 경험이 있으신 분들의 조언을 감사히 받잡겠습니다.

먼저 Q1 : 제가 생각하는 후킹위치가 맞는건가요? 아니면 나가는 NF_IP_LOCAL_OUT에서 걸어야 하나요? 아님 지나가는 NF_IP_FORWARD에서 걸어야 할까요 ;;;;

Q2 : 모듈로 올리는데 제가 건 후킹 말고 Openwrt 커널에서 걸려있는 후킹이 우선순위가 높아 도로 원상복귀 된다는데 우선순위 설정하는 법좀 알려주세요..

제가 중간중간 개념이 확실히 잡히지 않아서 질문자체가 어이없으실지도 모르지만;;
처음 공부하는 학생이니까 이쁘게 봐주세요~^^ 감사합니다.

// 관리자 2018-01-24: 12-04-04 19:26 에 작성된 글입니다

댓글목록

박우재님의 댓글

박우재 작성일

firewall 스크립트에서는 연속적으로 dns routing을 할수 있는데요. 처음 1회만 적용하는 것을 만드는 것이라면 일반적인 firewall 스크립트를 사용하실 수 없겠군요.

제가 netfilter에는 경험이 없어서요. 저라면 firewall script를 약간 변형해서 만들어 보겠습니다.

http://wiki.openwrt.org/doc/uci/firewall

https://dev.openwrt.org/browser/trunk/package/firewall

event를 받는 루틴이 하나 있는데 hotplug 라는 루틴입니다.

https://dev.openwrt.org/browser/trunk/package/firewall/files/firewall.hotplug

이걸 약간 변형해서 dns routing이 invoking 되는 것을 만들면 될것 같습니다.

기존에 있는 방향으로 나가시려면 kldp.org 에서 도움을 얻으실 수 있을지 모르겠습니다.

영어에 능숙 하시면 stackoverflow에서도 도움을 받으실 수 있으실 겁니다. 다만 여기에 올리실때는 소스코드하고 덤프코드를 다 올리셔야 할겁니다.

행운을 빕니다.

// 관리자 2018-01-24: 12-04-05 22:59 에 작성된 글입니다

박우재님의 댓글

박우재 작성일

다시 생각해 보니, 위의 방법에는 dns가 요청이 떳을때, 받을 수 있는 방법은 따로 만들어 주어야 겠군요.

좀복잡하지만 pcap을 이용해야겠습니다.

생각보다 좀 복잡해지겠군요.

// 관리자 2018-01-24: 12-04-05 23:03 에 작성된 글입니다

김동준님의 댓글

김동준 작성일

공유기 자체에는 NAT 모듈이 있습니다. 이것역시 netfilter를 이용한 것이겠지요? 해당 netfilter의 우선순위는 잘 모르겠습니다만..^^ 찾아보시면 금방 찾으실수 있을것입니다.

커널에서 nf_hook_ops 구조체를 활용해서 netfilter를 등록하셨을텐데, 이때 priority 변수를 이용하여 해당 hook 지점에서의 우선순위를 설정할 수 있습니다.

또한, 임의적으로 dst IP를 변경해 주셨다면, 다시 client에게 패킷이 돌아갈 때, 처음 요청된 dst IP로 패킷의 정보를 재변경해주셔야 할것으로 보입니다 ^^

// 관리자 2018-01-24: 12-04-07 14:15 에 작성된 글입니다

정영휘님의 댓글

정영휘 작성일

박우재님 김동준님 감사합니다;;

firewall쪽도 다시 알아봐야겠네요;;

그리고 질문드린 우선순위 문제는.
제가 후킹지점에서 후킹을 걸어도 라우터가 후에 다시 후킹을 한다더라구요,, 그래서 그부분(라우터 보다 후킹 모듈우선순위가 더 높게 수정)을 수정하려구요;;; 열심히 구글질중입니다^^


제 질문에 관심 가져주셔서 감사합니다.

// 관리자 2018-01-24: 12-04-07 23:25 에 작성된 글입니다