※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 132.239.55.5
※ 編輯: somi 來自: 132.239.55.5 (03/28 11:38)
pcap一類的算是竊聽封包 沒有真的攔截進行中的封包
真的要攔截必須在kernel中進行
最基本當然是寫ip_masq一類的kernel module 可是不小心把kernel搞爛的不好玩
所以會希望能夠寫user-level code, 然後透過kernel中的hook來call這些user level code
我想到幾個可能的方案
(1) 寫 iptables module (這個似乎還是算kernel-level)
(2) 利用tap/tun device,把對virtual network card的I/O redirect到user level process
然後再透過raw socket送出 (這個有點像是寫VPN server/client的方法)
(3) 在bsd下面可以用ipfw把packet redirect到userlevel process, eg natd
--