您的位置:首页 > 职场人生

iptables--防火墙规则定义工具

2012-03-27 15:58 302 查看
防火墙:位于网络之间的,根据所定义的规则对进出网络数据做出响应的处理,并匹配到包用指定的处理机制进行处理的硬件、软件或者是二者的结合。
对于防火墙定义规则如何应用,linux的内核引用freebsd的机制--分段式(内核中一段,用户空间中一段)。
Iptables--定义linux内核中软件防火墙规则的编写工具,工作于用户空间;netfilter--网络过滤框架,工作于内核中,称为hook function 钩子函数。
Iptables在TCP/IP协议栈中选了5个卡点:
1、INPUT
2、OUTPUT
3、FORWARD
4、PREROUTING
5、POSTROUTING
Iptables 提供的功能:
filter:在INPUT,FORWARD,OUTPUT上做过滤;
-nat :地址转换,SNAT,DNAT,PNAT--在PREROUTING上在DNAT;在POSTROUTING上做SNAT。
-mangle:对数据包的格式进行修改--在5个卡点上都可以做。
注:在同一个卡点上定义多个功能时,生效次序为:mangle,nat,filter。
-iptables的四个表:
-filter:包过滤,包含3个链INPUT,OUTPUT,FORWARD
-nat:地址转换,3个链PREROUTING,FORWARD,POSTROUTING
-mangle:数据包的修改和重新组合,5个链;INPUT,OUTPUT,FORWARD,PREROUTING,POSTROUTING
-raw:2个链,PREROUTING,OUTPUT
----------------------------------------------------------------------------------
怎样用iptables
格式:
#iptables [-t TABLE] SUB_COMMAND CHAIN [num] [criteria] [-j ACCTION]
TABLE(表):
filter --默认值 |nat | mangle | raw
SUB_COMMAND(子命令):
关于Rule(规则):
-A --append在链最后追加一条规则;
-I --insert 插入一条规则;
-D -- delete 删除一条规则;
-R -- replace 替换一条规则;
关于chain(链):
-F --flush 清空链;
-N -- new 新加一条用户自定义的链;
-X -- 删除用户自定义的空链;
-Z --zero 清空计数器( 每一条规则都有两个计数器,一个用于记录被本条规则所匹配的包的个数,另一个用于记录所匹配到数据包的大小);
-E oldname newname 重命名一条链;
关于policy(策略):
-P chain (ACCEPT|DROP|REJECT)
ACCEPT--接受
DROP--悄悄地丢弃
REJECT--声明拒绝
关于view(视图):
-L --- list 显示所定义的规则;
-n --以数字显示,不解析IP地址
-v |-vv |-vvv --显示详细信息;
-x ---显示精确值,不做单位转换;
--line-number ---显示行号;
匹配条件criteria:
通用匹配:
-s IP|network --指定源地址;
-d IP|network --指定目标地址;
-p protocol {tcp|udp|icmp} --指定协议;
-i --指定input interface
-o --指定output interface
扩展匹配:
隐式扩展:一般指对-p 选项中指定的协议进行的扩展;
-p tcp|
--sport PORT --源端口
--dport PORT --目的端口
--tcpflags mask (要检查的标记)comp(必须为1的标记);
-p icmp
--icmp-type 8|0
8 --echo-request--请求
0 --echo-reply --响应
显式扩展:一般指必须使用-m选项明确指定要加载的扩展;
-m state:连接状态;
--state NEW|ESTABLISHED|RELATED|INVALID
NEW --新发起的连接;
ESTABLISHED --所有已建立的连接;
RELATED --相关联的连接;
INVALID --无效的连接;
-m {mport|multiport} --端口范围
--source-ports ---源端口的范围
--destination-ports --目的端口的范围
-m iprange --ip地址范围
--src-range ip-ip --源地址范围
--dst-range ip-ip --目标地址范围
-m commlimit --限制某个IP的并发连接请求的个数;
--connlimit-above NUM --同一个IP的最大并发连接请求个数;
-m limit --数据包的发送速率限制
--limit RATE (eg:3/hour,/second,/minute,/day)
--limit-burst NUMBER --峰值,上限值(默认为5;)
-m time --指定在某个时间内怎样处理请求;
--timestart value --开始时间
--timestop value --停止时间
--days listofdays (format:Mon,Tue,Wed,Thu,Fri,Sat,Sun)
--datestart date
--datestop date (format:YYYY[:MM[:DD[:hh[:mm[:ss]]]]])
-m string --在请求的数据包中做字符串匹配;
--algo bm|kmp --指定字符串匹配算法;
--string pattern --指定字符串的模式;
----------------------------------------------------------------------------------
eg : 只允许在2012/02/18和2012/02/26之间的8:30到14:30中间访问IP为172.16.13.1的web服务。
#iptables -A INPUT -d 172.16.13.1 -p tcp --dport 80 -m time --timestart 08:30:00 --timestop 14:30:00 --datestart 2012:02:18 --datestop 2012:02:26 -j ACCEPT
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息