前言
做為網絡管理員,對P2P、QQ、酷狗等軟件是又愛又恨,大多數公司為了提高工作效率,禁止公司員工登陸QQ、看視頻等,在市場上買專門的上網行為管理設備,隨便一種都是價格不菲,而使用linux來做網關一樣可以禁止qq、酷狗等軟件,為實現此功能就需要為iptables/netfilter添加layer7模塊,而iptables/netfilter是基于內核的,所以需要重新編譯內核。
編譯過程
環境介紹
系統環境:CentOS6.6
所需源碼包:kernel-2.6.32-504.16.2.el6.src.rpm(紅帽ftp站點提供)
iptables-1.4.20.tar.bz2
netfilter-layer7-v2.23.tar.bz2
l7-protocols-2009-05-28.tar.gz
編譯內核
解決依賴關系
[root@Firewall ~]# yum groupinstall "Development Tools" "Server Platform Development" -y
創建所需用戶并安裝
將源碼解壓到指定目錄
為內核打補丁
開始編譯
首先選擇此項
進入此項設定參數
下拉,選擇此項并進入
進入核心過濾設置
啟用layer7支持
返回第一層,進入此項
取消模塊簽名校驗
返回,進入API加密設置
取消內核簽名校驗,否則無法編譯安裝
保存退出
編譯安裝
[root@Firewall linux]# yum install screen -y #為了防止意外,我們在screen里編譯安裝 [root@Firewall linux]# screen [root@Firewall linux]# make [root@Firewall linux]# make modules_install [root@Firewall linux]# make install
看一下grub.conf文件,新內核的信息已經寫入了
以新內核啟動
編譯iptables
解壓并打補丁
備份腳本文件,卸載舊版本
編譯安裝
[root@Firewall ~]# cd iptables-1.4.20 [root@Firewall iptables-1.4.20]# ./configure --prefix=/usr --with-ksource=/usr/src/linux [root@Firewall iptables-1.4.20]# make && make install
還原腳本
修改腳本
將所有/sbin/$IPTABLES替換為/usr/sbin/$IPTABLES
查看iptables版本
為layer7模塊提供其所識別的協議的特征碼
裝載模塊
添加內核參數,使之永久有效
[root@Firewall ~]# vim /etc/sysctl.conf net.netfilter.nf_conntrack_acct = 1 [root@Firewall ~]# sysctl -p
應用層過濾測試
案例要求
假設內網主機由服務器代理上網,為提高工作效率,禁止內網用戶登錄QQ
代理服務器:192.168.1.254(可訪問網絡),172.16.10.254
內網客戶端:172.16.10.12
網絡設置
172.16.0.0/16的網段在VMnet1內
開啟服務器路由轉發功能
[root@Firewall ~]# vim /etc/sysctl.conf net.ipv4.ip_forward = 1 [root@Firewall ~]# sysctl -p
設置防火墻規則,使內網可訪問網絡
查看是否可以訪問網絡
我們找一個小號登錄QQ測試
此時是可以登錄的,我們下線,設置防火墻規則,禁用QQ
再次登錄試試
登錄失敗,我們看一下防火墻,有沒有匹配到報文
看,已經有報文被拒絕了,至此iptables基于layer7實現應用層過濾以實現,需要禁止其他程序,請自行添加相應規則
The end
基于layer7的應用層防火墻就說到這里了,除了編譯內核時比較費時間外,應該沒什么別的麻煩的問題,希望本文可以幫到有需要的小伙伴,配置過程中遇到問題可留言。以上僅為個人學習整理,如有錯漏,大神勿噴~~~
原創文章,作者:書生,如若轉載,請注明出處:http://www.www58058.com/3635