iptables/netfilter基于layer7實現應用層過濾

前言

做為網絡管理員,對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

創建所需用戶并安裝

1.jpg

將源碼解壓到指定目錄

2.jpg

為內核打補丁

3.jpg

開始編譯

4.jpg

首先選擇此項

5.jpg

進入此項設定參數

6.jpg

下拉,選擇此項并進入

7.jpg

進入核心過濾設置

8.jpg

啟用layer7支持

9.jpg

返回第一層,進入此項

10.jpg

取消模塊簽名校驗

11.jpg

返回,進入API加密設置

12.jpg

取消內核簽名校驗,否則無法編譯安裝

13.jpg

保存退出

14.jpg

編譯安裝

[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文件,新內核的信息已經寫入了

15.jpg

以新內核啟動

16.jpg

編譯iptables

解壓并打補丁

17.jpg

備份腳本文件,卸載舊版本

18.jpg

編譯安裝

[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

還原腳本

19.jpg

修改腳本

將所有/sbin/$IPTABLES替換為/usr/sbin/$IPTABLES

20.jpg

查看iptables版本

21.jpg

為layer7模塊提供其所識別的協議的特征碼

22.jpg

裝載模塊

23.jpg

添加內核參數,使之永久有效

[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

網絡設置

24.jpg

25.jpg

172.16.0.0/16的網段在VMnet1內

開啟服務器路由轉發功能

[root@Firewall ~]# vim /etc/sysctl.conf

net.ipv4.ip_forward = 1

[root@Firewall ~]# sysctl -p

設置防火墻規則,使內網可訪問網絡

26.jpg

查看是否可以訪問網絡

27.jpg

我們找一個小號登錄QQ測試

28.jpg

此時是可以登錄的,我們下線,設置防火墻規則,禁用QQ

29.jpg

再次登錄試試

30.jpg

登錄失敗,我們看一下防火墻,有沒有匹配到報文

31.jpg

看,已經有報文被拒絕了,至此iptables基于layer7實現應用層過濾以實現,需要禁止其他程序,請自行添加相應規則

The end 

基于layer7的應用層防火墻就說到這里了,除了編譯內核時比較費時間外,應該沒什么別的麻煩的問題,希望本文可以幫到有需要的小伙伴,配置過程中遇到問題可留言。以上僅為個人學習整理,如有錯漏,大神勿噴~~~

原創文章,作者:書生,如若轉載,請注明出處:http://www.www58058.com/3635

(0)
書生書生
上一篇 2015-04-26
下一篇 2015-04-27

相關推薦

  • dns配置

    dns

    Linux干貨 2018-01-22
  • 由tty命令產生的好玩的想法

    昨天看了馬哥Linux視頻的前兩天內容,里面講了到終端的概念,回顧一下:  物理終端:是直接接入本機的顯示器和鍵盤設備。/dev/console  虛擬終端:附加在物理終端之上的以軟件方式虛擬實現的終端,CentOS 6默認啟動6個虛擬終端 Ctrl+Alt+F#: [1,6] 圖形終端:附加在物理終端之上的以軟件方式…

    Linux干貨 2016-05-16
  • Nginx

    Nginx簡介     Nginx(”engine x”)是俄羅斯人Igor Sysoev(伊戈爾.塞索耶夫)編寫的一款高性能的HTTP和反向代理服務器。Nginx能夠選擇高效的epoll、Kqueue、eventport作為網絡I/O模型,在高連接并發的情況下,Nginx是Apache服務器不錯的替代品,它能夠支持高…

    2017-05-07
  • 馬哥教育網絡班22期+第5周課程練習 忍者亂太郎喻成

    1、顯示當前系統上root、fedora或user1用戶的默認shell;   以root為例 awk -F':' '$1 ~ /root/ {print $7} ' /etc/passwd 2、找出/etc/rc.d/…

    Linux干貨 2016-10-09
  • 第四周作業

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 [root@loalhost ~]# (umask 077; cp -r /etc/skel /home/user1) 2、編輯/etc/group文件,…

    Linux干貨 2016-09-06
  • 數組的基本應用

                                   數組 變量:存儲單個元素的內存空間v 數組:存儲多個元素的連續的內存空間,相當于多個變量的集合。v 數組名和索引 索引:編號從0…

    Linux干貨 2016-08-24
欧美性久久久久