本文是對上傳到github上的項目進行說明。github鏈接:filter_firewall有任何意見或者建議可以Email:[email protected]
包過濾型防火牆,對訪問本地網絡的數據包進行操作,包括允許訪問(Accept)和阻止訪問(Drop)兩種方式。
操作系統:Ubuntu 12.04, Linux內核為3.15版本
開發工具:vim
開發語言:C
開發作者:
1.數據包攔截
內核模塊,采用netfilter框架進行數據包過濾,在網絡層捕獲數據包,查看過濾規則表,如果是需要過濾的,則Drop掉數據包,不允許進入用戶空間。如果不在過濾規則表的,則允許進入,正常訪問。
2.用戶配置過濾規則
用戶空間模塊,與內核模塊進行交互,采用命令行參數的方式進行配置命令行選項如下:
選項 含義 取值 狀態 -A append規則鏈 NA 完成 -D delete規則鏈 NA 未完成 -p 端口 short 完成 -I 操作Input鏈 NA 完成 -O 操作Output鏈 NA 未完成 -F 操作Forward鏈 NA 未完成 -r 操作結果 drop | accept 完成 -f 來源IP ip值 完成 -t 轉發IP ip值 未完成對於未完成的命令行選項避免使用。
For Example:
filter_client -A -p 80 -I -r drop -f 192.168.1.105
通過配置以上鏈能夠阻塞ip地址為192.168.1.105對本機80號端口的訪問。
首先聲明本項目主要用於學習交流,作者水平有限,對本項目有任何意見或者建議可以email:[email protected](注:18277973721非作者正在使用的手機號碼).
下面介紹如何使用本項目.
重新編譯源代碼=====>>加載內核模塊======>>利用用戶模塊配置重定向信息。下面給出些許步驟命令
cd kernelspace
make clean
make
make install
==================================
cd userspace
make clean
make
./filter_client -A -p 80 -I -r drop -f 192.168.1.105
查看log:tail /var/log/syslog或者tail /var/log/message 或者dmesg
最近陸陸續續往github上貼代碼,處於學習階段希望多吸收些開發者的經驗。