redhat编译定制iptables防火墙扩展layer7应用层访问控制功能及应用限制QQ2016上网

概述:

iptables防火墙是工作在网络层,针对TCP/IP数据包实施过滤和限制,属于典型的包过滤防火墙。以基于网络层的数据包过滤机制为主,同时提供少量的传输层、数据链路层的过滤功能。难以判断数据包对应于何种应用程序(如:QQ、迅雷等)安装netfilter-layer7补丁包的作用是为Linux内核、iptables添加相应的补丁文件,重新编译安装后提供基于应用层(第7层)的扩展功能。通过独立的l7-protocols协议包提供对各种应用层协议的特征识别与定义,便于更新

对内核中的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、重启系统,启用新内核

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模块提供其所识别的协议的特征码

解压并安装 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、配置实验环境,对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

打开防火墙转发功能

net.ipv4.ip_forward = 1

sysctl -p 使配置生效

在防火墙上添加规则,对来自内网 172.16.1.0网段的机器进行源地址转换

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

通过测试发现可以正常访问网站和QQ

添加限制QQ的规则

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

再次登录QQ发现超时,说明layer7的协议限制生效了

添加对http的限制,发现网页也无法正常打开

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

-j LOG 

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

注意:如果同样的内容要做过滤,日志规则一定放在过滤规则之前。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,905评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,140评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,791评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,483评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,476评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,516评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,905评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,560评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,778评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,557评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,635评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,338评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,925评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,898评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,142评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,818评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,347评论 2 342

推荐阅读更多精彩内容

  • 1 概述 iptables命令中,需要根据匹配的条件作出相应的动作,本文将结合例子,讲解匹配条件 匹配条件分为基本...
    ghbsunny阅读 4,225评论 0 0
  • 一.防火墙概念 (一)安全技术介绍 (1) 入侵检测与管理系统(Intrusion Detection Syste...
    楠人帮阅读 1,471评论 0 3
  • iptables 附件CC攻击器-邪恶十六进制2.0 模拟cc攻击python写的暴力破解的脚本 模拟...
    运维阿文阅读 2,134评论 0 1
  • 防火墙的概念iptables的简介iptables命令网络防火墙NATfirewalld服务 一、防火墙的概念 (...
    哈喽别样阅读 1,812评论 0 1
  • 虽然已经回不到以前,但那段回忆是致命的,仅以此文致我最爱的她。 我叫陈飞,那时的我不务正业,误入歧途,做了一个混混...
    夜风雨阅读 239评论 0 0