iptables防火墙扩展之layer7应用层访问控制

概述:

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 "":指定日志前缀信息
注意:如果同样的内容要做过滤,日志规则一定放在过滤规则之前。

转载于:https://www.cnblogs.com/reblue520/p/6239850.html

centos6.5下系统编译定制iptables防火墙扩展layer7应用层访问控制功能及应用限制QQ2016上网...相关推荐

  1. 树梅派4B 安装使用 Manjaro-ARM 64位系统 samba tigervnc iptables防火墙

    你可能要问 manjaro 有什么好的? 看图,不多说. 介绍 64位系统 排名第一的,最易用的KDE桌面 迅雷,QQ ,微信,和最新软件,一个不少 manjaro 有最为丰富的软件仓库 最新的软件, ...

  2. CentOS6.9下手动编译并安装Python3.7.0

    CentOS6.9默认安装的python版本为2.6.6,若想安装python3以上版本,只能手工编译安装 下面介绍Python-3.7.0版本的手动编译并安装的步骤 1.下载Python-3.7.0 ...

  3. 电脑重装系统后如何在防火墙设置允许浏览器访问网络

    可能会有部分小伙伴在给电脑重装系统后,发现自己的浏览器无法上网了,这种情况很有可能是系统防火墙设置问题,我们直接在防火墙内进行调整基本就能解决这个问题. 这里有电脑重装系统的方法可以阅读 1.首先在电 ...

  4. linux iptables 编译,Linux下编译安装iptables

    Linux下如何编译安装iptables实例: 先卸载系统已经安装的iptables,卸载前需备份三个文档:iptables启动脚本,iptables-config配置文档,以及已经建立好的iptab ...

  5. Iptables防火墙应用

    看看强大的iptables: Iptables和netfilter的关系: 这是第一个要说的地方,Iptables和netfilter的关系是一个很容易让人搞不清的问题.很多的知道iptables却不 ...

  6. 配置linux-Fedora系统下iptables防火墙

    参考地址:https://blog.csdn.net/zhangjingyi111/article/details/78902820 本篇文章为实验课过程记录,较为简略. 1.查看系统是否安装ipta ...

  7. Linux系统下iptables(防火墙)的有关操作命令

    1.查看当前iptables(防火墙)规则 可使用"iptables –L –n"查看当前iptables规则 例如: 2.添加指定端口到防火墙中 iptables -I INPU ...

  8. Centos6.6下编译安装Apache2.2.31

    安装环境: [root@apache ~]# cat /etc/redhat-release CentOS release 6.6 (Final) [root@apache ~]# uname -r ...

  9. [IDS]CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统,超详细!!!

    最详细的CentOS6.6下搭建基于snort+barnyard2+base的入侵检测系统 免责声明 一.如果因为使用本文档照成损失(系统崩溃.数据丢失等),作者不承担任何责任. 二.本文档只是个人使 ...

最新文章

  1. snort源码的详细分析
  2. [Tip: iShare Site] Move file/folder on iShare Site
  3. 闭包 | 浅谈JavaScript闭包问题
  4. 数据结构与算法——贪心算法
  5. HappyLeetcode64:Sqrt(x)
  6. python的migratetodb_Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
  7. webService发布和调用--Axis2
  8. javascript语言
  9. 服务器更新维护尚未全部完成,03月07日全部服务器更新维护公告
  10. 排查DHCP(动态获取IP)服务器故障的经验 (好文推荐)
  11. BMFont制作美术字体包教包会
  12. 《机器学习-原理、算法与应用》出版了
  13. C++游戏编程-走迷宫详解
  14. 拆弹实验-phase_4
  15. java对接七牛后台进行内容审核(鉴黄、敏感人物、暴恐)
  16. 基于SpringBoot的家具销售管理系统
  17. 无限极分类之查找家谱树
  18. vagrant box命令
  19. 爱码物联SaaS“一物一码”实力在线!打造全新二维码营销模式
  20. 软件嵌入式研发行业源代码安全管理方案概要

热门文章

  1. 解决报错:error: function declaration isn’t a prototype [-Werror=strict-prototypes]
  2. mysql query日期_如何获取mysql中两个日期之间的日期列表select query
  3. MySQL 高频面试题,都在这了
  4. 在vscode中统一vue编码风格的方法
  5. CSS display 属性
  6. UIWindow简单介绍
  7. it行业php,什么是IT行业
  8. 华北计算机研究无人机,飞马D200无人机在华北某环境地调项目中的应用案例
  9. nvm 下载node 下载不下来_一键下载网页所有图片,把美丽存下来
  10. 指定的文件夹没有包含设备的兼容软件驱动程序_Windows 10 2020年5月更新兼容性问题汇总...