redhat編譯定制iptables防火墻擴展layer7應用層訪問控制功能及應用限制QQ2016上網

概述:

iptables防火墻是工作在網絡層,針對TCP/IP數據包實施過濾和限制,屬于典型的包過濾防火墻。以基于網絡層的數據包過濾機制為主,同時提供少量的傳輸層、數據鏈路層的過濾功能。難以判斷數據包對應于何種應用程序(如:QQ、迅雷等)安裝netfilter-layer7補丁包的作用是為Linux內核、iptables添加相應的補丁文件,重新編譯安裝后提供基于應用層(第7層)的擴展功能。通過獨立的l7-protocols協(xié)議包提供對各種應用層協(xié)議的特征識別與定義,便于更新

對內核中的netfilter,打補丁layer7,重新編譯內核

對iptables打補丁,補上layer7模塊,重新iptables


具體步驟

1、獲取并編譯內核

# useradd mockbuild

# rpm -ivh kernel-2.6.32-431.5.1.el6.src.rpm

# cd rpmbuild/SOURCES

# tar xf linux-2.6.32-431.5.1.el6.tar.bz2 -C /usr/src

# cd /usr/src

# ln -sv linux-2.6.32-431.5.1.el6 linux

2、給內核打補丁

# tar xf netfilter-layer7-v2.23.tar.gz

# cd /usr/src/linux

# patch -p1 < /root/netfilter-layer7-v2.23/kernel-2.6.32-layer7-2.23.patch

# cp /boot/config-2.6.32-431.el6.x86_64 .config

安裝依賴包

# yum install -y ncurses-devel

# make menuconfig


選擇需要安裝的layer7模塊

Networking support -> Networking options -> Network packet filtering framework (Netfilter)->?Core Netfilter Configuration -> "layer7" match support



去掉redhat的驗證功能,否則無法編譯

Enable loadable module support -> Modulesigature verification (EXPERIMENTAL) -> Module signature verification (EXPERIMENTAL)

關閉核心內核的API

Cryptographic API -> In-kernel signature checker (EXPERIMENTAL)

對內核的名稱進行標記修改

General setup -> Local version - append to kernel release 改名-layer7


3、編譯并安裝內核

安裝獨立的screen編譯窗口進行編譯

# yum install -y screen

screen命令:

screen:打開一個新的screen

隱藏:Ctrl+a, d

重新打開隱藏的screen:

顯示各screen ID: screen -ls

重新打開: # screen -r Screen_ID

制定內核編譯

# make -j 4?

# make modules_install

# make install

驗證內核是否編譯成功

# ls /boot

# vim /boot/grub/grub.conf

將默認啟動內核改為定制后的內核


4、重啟系統(tǒng),啟用新內核

5、編譯iptables


# tar xf iptables-1.4.20.tar.bz2

# cd iptables-1.4.20

# cp /root/netfilter-layer7-v2.23/iptables-1.4.3forward-for-kernel-2.6.20forward/libxt_layer7.* extensions/

備份原iptables服務啟動文件及配置文件備用

# cp /etc/rc.d/init.d/iptales /root

# cp /etc/sysconfig/iptables-config /root

卸載原有iptables

# rpm -e iptables iptables-ipv6 --nodeps

對iptables進行編譯

# cd /root/iptables-1.4.20

# ./configure --prefix=/usr --with-ksource=/usr/src/linux

# make && make install

# cp /root/iptables /etc/rc.d/init.d/

# cp /root/iptables-config /etc/sysconfig/

啟動iptables

# service iptables status

編輯vim /etc/rc.d/init.d/iptables

將文件中 /sbin/$IPTABLES 修改為 /usr/sbin/$IPTABLES

將/sbin/$IPTABLES改為/usr/sbin/$IPTABLES

6、為layer7模塊提供其所識別的協(xié)議的特征碼

解壓并安裝 l7-protocols-2009-05-28.tar.gz

# tar xf l7-protocols-2009-05-28.tar.gz?

# cd l7-protocols-2009-05-28

# make install

7、使用layer7模塊

ACCT的功能已經可以在內核參數中按需啟用或禁用。此參數需要裝載nf_conntrack模塊后方能生效。

# vim /etc/sysctl.conf

net.netfilter.nf_conntrack_acct = 1

# modprobe nf_conntrack

使配置生效

# sysctl -p

l7-filter uses the standard iptables extension syntax?

# iptables [specify table & chain] -m layer7 --l7proto [protocol name] -j [action]?

# iptables -A FORWARD -i eth1 -m layer7 --l7proto qq -j REJECT

注意:

網絡防火墻:ip_forward

net.netfilter.nf_conntrack_acct參數只有裝載nf_conntrack模塊后方能生效

8、配置實驗環(huán)境,對layer7的功能進行測試

充當路由功能的機器

外網接口:

DEVICE=eth0

ONBOOT=yes

BOOTPROTO=none

IPADDR=192.168.8.15

BROADCAST=192.168.8.255

NETMASK=255.255.255.0

GATEWAY=192.168.8.254

NETWORK=192.168.8.0

DNS配置

/etc/resolve.conf

nameserver 192.168.8.251

內網接口:

# cd /etc/sysconfig/network-scripts/

# cp ifcfg-eth0 ifcfg-eth1

DEVICE=eth1

ONBOOT=yes

BOOTPROTO=none

IPADDR=172.16.1.254

BROADCAST=172.16.1.255

NETMASK=255.255.255.0

NETWORK=172.16.1.0

內網的機器:

172.16.1.10

DNS:192.168.8.251

GAWEWAY:172.16.1.254

配置192.168.8.251

# vim /etc/sysctl.conf

打開防火墻轉發(fā)功能

net.ipv4.ip_forward = 1

sysctl -p 使配置生效

在防火墻上添加規(guī)則,對來自內網 172.16.1.0網段的機器進行源地址轉換

# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 192.168.8.15

通過測試發(fā)現可以正常訪問網站和QQ

添加限制QQ的規(guī)則

# iptables -A FORWARD -m layer7 --l7proto qq -j REJECT

再次登錄QQ發(fā)現超時,說明layer7的協(xié)議限制生效了

添加對http的限制,發(fā)現網頁也無法正常打開

# iptables -A FORWARD -m layer7 --l7proto http -j REJECT

-j LOG?

--log-prefix "":指定日志前綴信息

注意:如果同樣的內容要做過濾,日志規(guī)則一定放在過濾規(guī)則之前。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 1 概述 iptables命令中,需要根據匹配的條件作出相應的動作,本文將結合例子,講解匹配條件 匹配條件分為基本...
    ghbsunny閱讀 4,627評論 0 0
  • 一.防火墻概念 (一)安全技術介紹 (1) 入侵檢測與管理系統(tǒng)(Intrusion Detection Syste...
    楠人幫閱讀 1,601評論 0 3
  • iptables 附件CC攻擊器-邪惡十六進制2.0 模擬cc攻擊python寫的暴力破解的腳本 模擬...
    運維阿文閱讀 2,229評論 0 1
  • 防火墻的概念iptables的簡介iptables命令網絡防火墻NATfirewalld服務 一、防火墻的概念 (...
    哈嘍別樣閱讀 1,991評論 0 1
  • 雖然已經回不到以前,但那段回憶是致命的,僅以此文致我最愛的她。 我叫陳飛,那時的我不務正業(yè),誤入歧途,做了一個混混...
    夜風雨閱讀 285評論 0 0

友情鏈接更多精彩內容