(转载)iptables及使用layer7七层过滤

7不积跬步无以至千里7 7不积跬步无以至千里7     2022-09-15     283

关键词:

 

一:简介
iptables 是与 Linux 内核集成的 IP 信息包过滤系统。如果 Linux 系统连接到因特网或 LAN、
服务器或连接 LAN 和因特网的代理服务器, 则该系统有利于在 Linux 系统上更好地控制 IP 信息包过滤和防火墙配置。netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。这些规则存储在专用的信 息包过滤表中,而这些表集成在 Linux 内核中。在信息包过滤表中,规则被分组放在我们所谓的链(chain)中。
IPTABLES的表和链
IPTABLES常用的有三个filter表 nat表 mangle表, 和五个链 INPUT链 OUTPUT链 FORWARE链 POSTROUTING链 PREROUTING链, 下面来介绍下它们的各个功能.
1.filter表
filter表主要是过滤数据包的,IPTABLES几乎所有的数据包过滤都在此表中实现的,filter表也是IPTABLES中默认的表,此表中还包含三个链如下
1.1 INPUT链
过滤所有的目标地址是本机的数据包
1.2 OUTPUT链
过滤所有从本机出去的数据包
1.3 FORWORD链
过滤所有从本机路过的数据包
2.nat表
nat表主要是用于做网络地址转换的(NAT) 在IPTABLES中可以做SNAT(源地址转换),DNAT(目标地址转换),PANT(即跟SNAT差不多,不一样的是SNAT的源地址是固定的,而PNAT的源地址是不固定的,当使用ppp 或pppoe的方式连接互联网的时候一般适应这中) 。 nat表中包含两个链如下
2.1 PREROUTING链
在数据包到达防火墙的时候改变目标地址 DNAT应用于此链.
2.2 OUTPUT链
可以改变本地产生的数据包的目标地址
2.3 POSTROUTING链
在数据包离开防火墙的时候改变源地址,SNAT应用于次链
3. mangle表
mangle表主要是修改数据包头部信息的,此表中包含以下5条链
3.1 PREROUTING链,
在数据包进入防火墙之后,也称为路由前,
3.2 POSTROUTING链,
在数据包确定目标地址后,也称为路由后,
3.3 OUTPUT链
从本机出去的时间包路由前
3.4 INPUT链
数据包进入本机后,路由后
3.5 FORWARD链
第一次路由判断之后,最后一次路由判断之前改变数据包
 
IPTABLES命令使用详解
1,规则管理类
#iptables -A    添加一条新规则
#iptables -I    插入一条新规则 -I 后面加一数字表示插入到哪行
#iptables -D    删除一条新规则 -D 后面加一数字表示删除哪行
#iptables -R    替换一条新规则 -R 后面加一数字表示替换哪行
2.链管理类
#iptables -F    清空链中的所有规则
#iptables -N    新建一个链
#iptables -X    删除一个自定义链,删除之前要保证次链是空的,而且没有被引用
#iptables -E    重命名链
3.默认管理类
#iptables -P    设置默认策略
4.查看类
#iptables -L    查看规则 -L还有几个子选项如下
#iptables -L -n 以数字的方式显示
#iptables -L -v 显示详细信息
#iptables -L -x 显示精确信息
#iptables -L --line-numbers 显示行号
5.条件匹配类
5.1 基本匹配
条件匹配也可以使用 ! 取反
-s    源地址
-d    目标地址
-p    协议{tcp|udp|icmp}
-i    从哪个网络接口进入,比如 -i eth0
-o    从哪个网络接口出去,比如 -o eth0
5.2扩展匹配
5.2.1隐含扩展匹配
-p {tcp|udp} --sport   指定源端口
-p {tcp|udp} --dport   指定目标端口
5.2.2显示扩展匹配
-m state --state   匹配状态的
-m mutiport --source-port   端口匹配 ,指定一组端口
-m limit --limit 3/minute   每三分种一次
-m limit --limit-burst 5   只匹配5个数据包
-m string --string --algo bm|kmp --string "xxxx" 匹配字符串
-m time --timestart 8:00 --timestop 12:00 表示从哪个时间到哪个时间段
-m time --days    表示那天
-m mac --mac-source xx:xx:xx:xx:xx:xx 匹配源MAC地址
-m layer7 --l7proto qq   表示匹配腾讯qq的 当然也支持很多协议,这个默认是没有的,需要给内核打补丁并重新编译内核及iptables才可以使用 -m layer7 这个显示扩展匹配,
6,处理动作类
-j ACCEPT     允许
-j REJECT     拒绝
-j DROP       拒绝并提示信息
-j SNAT       源地址转换
-j DNAT       目标地址转换
-j REDIRECT   重定向
-j MASQUERAED 地址伪装
-j LOG --log-prefix "说明信息,自己随便定义"      记录日志

 

二:编译内核和重新编译iptables
所需要的源码
iptables-1.4.2.tar.bz2
l7-protocols-2008-10-04.tar.gz
linux-2.6.25.19.tar.bz2
netfilter-layer7-v2.20.tar.gz
 
合并kernel+layer7补丁
[[email protected] ~]# tar jxvf linux-2.6.28.tar(1).bz2 -C /usr/src/
[[email protected] ~]# tar zxvf netfilter-layer7-v2.20.tar.gz -C /usr/src/
[[email protected]]# patch -p1 < /usr/src/netfilter-layer7-v2.20/kernel-2.6.25-layer7-2.20.patch
[[email protected] linux-2.6.28]# cp /boot/config-2.6.18-164.el5 .config
[[email protected] linux-2.6.28]# make menuconfig
[[email protected] linux-2.6.28]# make && make modules_install && make install
卸载现有iptables
[[email protected] ~]# rpm -e iptables –nodeps
合并iptables+layer7补丁
[[email protected] ~]# tar -jxvf iptables-1.4.2.tar.bz2 -C /usr/src/
[[email protected] iptables-1.4.2]# cd /usr/src/netfilter-layer7-v2.20/iptables-1.4.1.1-for-kernel-2.6.20forward/
[[email protected] iptables-1.4.1.1-for-kernel-2.6.20forward]# cp * /usr/src/iptables-1.4.2/extensions/
编译安装
[[email protected] iptables-1.4.2]# ./configure --prefix=/ --with-ksource=/usr/src/linux-2.6.25.19
[[email protected] iptables-1.4.2]# make
[[email protected] iptables-1.4.2]# make install
安装l7-protocols模式包
[[email protected] ~]# tar -zxvf l7-protocols-2008-10-04.tar.gz -C /etc/
[[email protected] ~]# mv /etc/l7-protocols-2008-10-04/ /etc/l7-protocols
 
[[email protected] iptables-1.4.2]# service iptables restart
清除防火墙规则:                                           [确定]
把 chains 设置为 ACCEPT 策略:filter                       [确定]
正在卸载 Iiptables 模块:                                  [确定]
应用 iptables 防火墙规则:                                 [确定]

 

三:案例:
案例要求:
公司有三个部门
工程部门 20.1-20.10
软件部门 20.11-20.20
经理办    20.21-20.30
上班时间 (周一---周五 08:20:00)
         工程部门   上班时间ftp 不允许http  qq 迅雷  下班后无限制
 
         软件部门  http   不允许非法站点sina ,不允许使用迅雷 不允许聊天 
                          下班后无限制
 
         经理办公室   http qq 都可以,下班后无限制
 
         dmz区域     www服务器进行发布
拓扑图:

 

技术分享 

 

配置步骤
 [[email protected] ~]# iptables -t nat -A POSTROUTING -s 192.168.20.0/24 -o eth1 -j MASQUERADE
[[email protected] ~]# modprobe ip_nat_ftp
修改iptablse默认拒绝所有
[[email protected] ~]# iptables -A INPUT -s 192.168.20.1 -p tcp --dport 22 -j ACCEPT
[[email protected] ~]# iptables -A OUTPUT -d 192.168.20.1 -p tcp --sport 22 -j ACCEPT
[[email protected] ~]# iptables -P INPUT DROP
[[email protected] ~]# iptables -P OUTPUT DROP
[[email protected] ~]# iptables -P FORWARD DROP
[[email protected] ~]# iptables -L -v -n
Chain INPUT (policy DROP 938 packets, 90044 bytes)
 pkts bytes target     prot opt in     out     source               destination        
 259 17556 ACCEPT     tcp -- *      *       192.168.20.1         0.0.0.0/0           tcp dpt:22
 
Chain FORWARD (policy DROP 10 packets, 460 bytes)
 pkts bytes target     prot opt in     out     source               destination        
 
Chain OUTPUT (policy DROP 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
 169 15956 ACCEPT     tcp -- *      *       0.0.0.0/0            192.168.20.1        tcp spt:22
[[email protected] ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.20.1-192.168.20.10 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --dport 21 -j ACCEPT
[[email protected] ~]# iptables -t filter -A FORWARD -p tcp --sport 21 -j ACCEPT
[[email protected] ~]# iptables -t filter -A FORWARD -p tcp --sport 20 -j ACCEPT
[[email protected] ~]# iptables -t filter -A FORWARD -p tcp --dport 20 -j ACCEPT
 
工程部门访问ftp

技术分享 

下班后无限制:

[[email protected] ~]# iptables -t filter -A FORWARD -s 192.168.20.0/24 -m time --timestart 20:01 --timestop 07:59 -o eth1 -j ACCEPT
调整时间
[[email protected] ~]# date 091822222012
2012年 09月 18日 星期二 22:22:00 CST
 
下班后无限制,别的部门也可以访问ftp

技术分享

 

软件部门
可以访问http
 
[[email protected] ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --dport 80 -j ACCEPT
[[email protected] ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p udp --dport 53 -j ACCEPT
 

技术分享 

不允许访问sina
[[email protected] ~]# iptables -t filter -A FORWARD -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m string --string "sina" --algo bm -j DROP
[[email protected] ~]# iptables -t filter -I FORWARD 1 -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m string --string "sina" --algo bm -j DROP
 

技术分享 

不允许使用qq聊天
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto qq -j DROP
不允许使用迅雷下载
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.11-192.168.20.20 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto xunlei -j DROP
 
经理办公室
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.21-192.168.20.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p udp --dport 53 -j ACCEPT
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.21-192.168.20.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -p tcp --dport 80 -j ACCEPT

技术分享 

允许使用qq和迅雷
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.21-192.168.20.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto qq -j ACCEPT
[[email protected] ~]# iptables -I FORWARD 2 -m iprange --src-range 192.168.20.21-192.168.20.30 -m time --timestart 08:00 --timestop 20:00 --weekdays Mon,Tue,Wed,Thu,Fri -m layer7 --l7proto xunlei -j ACCEPT
 
 
DMZ区域的服务器发布
 
[[email protected] ~]# iptables -t nat -A PREROUTING -d 192.168.101.71 -p tcp --dport 80 -i eth1 -j DNAT --to 192.168.2.100
[[email protected] ~]# iptables -t filter -A FORWARD -d 192.168.2.100 -p tcp --dport 80 -j ACCEPT
 

技术分享

本文出自 “牛晓林的blog” 博客,请务必保留此出处http://niuxiaolin.blog.51cto.com/5627962/998879

_iptables系列之layer7

uname-r查看内核版本。[[email protected]~]#lsanaconda-ks.cfg install.log.syslog   l7-protocols-2009-05-28.tar.gz netfilter-layer7-v2.22.tar.gzinstall.log   iptable 查看详情

linux下防火墙iptables原理及使用

iptables简介      netfilter/iptables(简称为iptables)组成Linux平台下的包过滤防火墙,与大多数的Linux软件一样,这个包过滤防火墙是免费的,它可以代替昂贵的商业防火墙解决方案,完成封包过滤、封包重定向... 查看详情

iptables网络安全服务详细使用

iptables防火墙概念说明开源的基于数据包过滤的网络安全策略控制工具。centos6.9 ---默认防火墙工具软件iptablescentos7   ---默认防火墙工具软件firewalld(zone)iptables主要工作在OSI七层的二、三、四层,如果重新编译内... 查看详情

iptables防火墙使用及规则配置

说明防火墙,其实说白了讲,就是用于实现Linux下访问控制的功能的,它分为硬件的或者软件的防火墙两种。无论是在哪个网络中,防火墙工作的地方一定是在网络的边缘。而我们的任务就是需要去定义到底防火墙如何工作,这... 查看详情

iptables防火墙(代码片段)

...有外网IP,可以开启防火墙服务。大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全。iptables防火墙概念介绍Netfilter/Iptables(以下简称Iptables)是unix/linux自带的一款优秀且开放源代码的完全自由的基于包过滤... 查看详情

iptables路由转发及控制

基于状态的iptables(就是一个包过滤的条件)包过滤的条件:如:-p协议-sport/dportxxx-s/-dxxxx-mstate--state状态如果按照tcp/ip来划分连接状态,有11种之多(课后可以自己去读一下相关知识)但iptables里只有4种状态;ESTABLISHED、NEW、RELATED及INV... 查看详情

iptables

http://www.netfilter.org/projects/iptables/index.html【老男孩教育IPTABLES】35期课堂笔记Iptables是什么?开源的基于数据包过滤的防火墙工具。还可以做NAT映射:1)网关:局域网共享上网。2)IP或端口映射。Iptables主要工作在OSI七层的二、三... 查看详情

iptables原理及规则

iptables简介和原理我们先来了解以下社么是防火墙 防火墙:隔离功能,工作在网络或主机边缘,对进出网络或主机的数据包基于一定的规则检查,并在匹配某规则时由规则定义的行为进行处理的一组功能的组件,基本上的实... 查看详情

企业防火墙之iptables(代码片段)

...况有外网ip,可以开启防火墙服务.大并发的情况,不能开iptables,影响性能,利用硬件防火墙提升架构安全1.1.1 生产中iptables的实际应用主要应用方向1、主机防火墙(filter表的INPUT链)。2、局域网共享上网(nat表的POSTROUTING链)。... 查看详情

iptables简单使用

iptables网络防火墙一、简介防火墙:可以是硬件也可以是软件:规则(匹配标准,处理办法)netfilter:是一种框架,工作在内核中,通过iptables命令(用户空间)来规则交给netfilter(内核空间)。作用实现规则iptables:数据报文过滤,NAT... 查看详情

防火墙iptables

Iptables防火墙1.1Iptables是什么?开源的基于数据包过滤的防火墙工具。还可以做NAT映射:1)网关:局域网共享上网。2)IP或端口映射。Iptables主要工作在OSI七层的二三四层,若果重新编译内核。Iptables也可以支持7层(squid代理+iptab... 查看详情

iptables教程

iptables防火墙简介Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中集成的模... 查看详情

iptables教程

Iptables教程1. iptables防火墙简介Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6... 查看详情

centos7防火墙之iptables(代码片段)

一、安装iptablescentos7默认防火墙是firewalle,要想使用iptables,需要安装。````yuminstall-yiptablesiptables.services启动:serviceiptablesstart状态:serviceiptablesstatus关闭:serviceiptablesstop重启:serviceiptablesrestart保存新建规则:serviceiptablessave配置... 查看详情

转载iptables禁用与解封ip(代码片段)

在Linux下,使用ipteables来维护IP规则表。要封停或者是解封IP,其实就是在IP规则表中对入站部分的规则进行添加操作。要封停一个IP,使用下面这条命令:iptables-IINPUT-s***.***.***.***-jDROP要解封一个IP,使用下面这条命令:iptables ... 查看详情

解析iptables原里及设置规则(代码片段)

文章目录一、前言二、iptables简介三、iptables原理四、iptables设置规则五、Linux常用实例六、注意事项1、命令书写规则2、谨慎使用的动作DROP3、永久生效一、前言其实在IT行业里了,不仅是专职的运维人员需要了解iptables,... 查看详情

iptables原理简介

1.iptables防火墙简介  Iptables也叫netfilter是Linux下自带的一款免费且优秀的基于包过滤的防火墙工具,它的功能十分强大,使用非常灵活,可以对流入、流出、流经服务器的数据包进行精细的控制。iptables是Linux2.4及2.6内核中集成... 查看详情

转载javajdk动态代理(aop)使用及实现原理分析

转自:http://blog.csdn.net/jiankunking/article/details/52143504版权声明:作者:jiankunking出处:http://blog.csdn.net/jiankunking本文版权归作者和CSDN共有一、什么是代理?代理是一种常用的设计模式,其目的就是为其他对象提供一个代理以控制对... 查看详情