分享

linux下iptables命令选项、条件匹配及动作目录说明及案例实训

 忧郁_小刚 2011-10-27
linux下iptables命令选项、条件匹配及动作目录说明及案例实训

iptables命令选项
-A,--append                  在所选择的链的最后添加一条规则     
-D,--delete                  从所选链中删除规则
-R,--replace                 替换规则
-I,--insert                  向所选链中插入新规则
-L,--list                    显示所选链的所有规则,如果没有指定链,则显示表中的所有链
-F,--flush                   清空所选的链,如果没有指定链,则清空指定表中的所有链
-Z,--zero                    把指定链的所有计数器归零
-N,--new-chain               建立自定义的链
-X,--delete-chain            删除指定的用户自定义链,这个链必须没有被引用,如果被引用,在删除之前必须删除或者替换与之有关的规则
-P,policy                    为链设置默认策略
-E,--rename-chain            对自定义的链进行重命名
-v,--verbose                 显示详细信息
-x,--exact                   使--list输出中的计数器显示准确的数值,而不用K、M、G等估值
-n,--numeric                 使输出中的IP地址和端口以数值的形式显示
--line-numbers               显示出每条规则在相应链中的序号
-c,--set-counters            在创建或更改规则时设置计数器
--modprobe                   让iptables推测并装载要使用的模块

iptables条件匹配
-p,--protocol                 匹配指定的协议
-s,--src,--source             匹配数据包中的源IP地址
-d,--dst,--dstination         匹配数据包中的目的IP地址
-i,--in-interface             以数据包进入本地所使用的网络接口进行匹配
-o,--out-interface            以数据包离开本地所使用的网络接口进行匹配
-f,--fragment                 匹配一个被分片的包的第二片或及以后的部分
--sport,--source-port         匹配基于TCP协议数据包的源端口
--dport,--destination-port    匹配基于TCP协议数据包的目的端口
--tcp-flags                   匹配指定的TCP标记
--syn                         匹配那些SYN标记被设置而ACK和RST标记没有设置的数据包
--tcp-option                  匹配TCP协议数据包的头部信息
--icmp-type                   根据ICMP类型匹配数据包
--linit                       为linit match设置最大平均匹配速率,也就是单位时间内linit match可以匹配几个包,这个匹配操作必须由-m limit明确指定才能使用
--mac-source                  基于数据包的MAC源地址进行匹配。这个匹配操作必须由-m mac明确指定才能使用
--mark                        以数据包被设置的mark值来匹配。这个匹配操作必须由-m mark明确指定才能使用
--uid-owner                   按生成数据包的用户的ID(UID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用
--gid-owner                   按生成数据包的用户所在组的ID(GID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用
--pid-owner                   按生成数据包的进程的ID(UID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用
--sid-owner                   按生成数据包的会话的ID(SID)来匹配外出的包。这个匹配操作必须由-m owner明确指定才能使用
--state                       指定要匹配数据包的状态,一共有4种状态可以使用:INVALID、ESTABLISHED、NEW和RELATED。这个匹配操作必须由-m state明确指定才能使用
--tos                         根据TOS字段匹配数据包,这个匹配操作必须由-m tos明确指定才能使用
--ttl                         根据TTL的值来匹配数据包,这个匹配操作必须由-m ttl明确指定才能使用

iptables动作/目标
ACCEPT                        允许符合条件的数据包通过
DROP                          拒绝符合条件的数据包通过
LOG                           用来记录与数据包相关的信息
MARK                          设置mark值,这个值是一个无符号的整数
MASQUERADE                    和SNAT的作用相同,区别在于它不需要指定--to-source
SNAT                          源网络地址转换
DNAT                          目的网络地址转换
REDIRECT                      转发数据包一另一个端口
REJECT                        REJECT和DROP都会将数据包丢弃,区别在于REJECT除了丢弃数据包外,还向发送者返回错误信息
RETURN                        使数据包返回上一层
TOS                           用来设置IP头部中的Type Of Service字段
TTL                           用于修改IP头部中Time To Live字段的值
ULOG                          ULOG可以在用户空间记录被匹配的包的信息,这些信息和整个包都会通过netlink socket被多播
QUEUE                         为用户空间的程序或应用软件管理包队列
MIRROR                        颠倒IP头部中的源目地址,然后再转发包


iptables -A                  添加记录
#iptables -A INPUT -p icmp -j DROP             添加一条输入的ICMP的拒绝记录
iptables -D                  删除记录
#iptables -D OUTPUT -p icmp -j DROP            删除一条输出的ICMP的拒绝记录
iptables -F                  清除记录
#iptables -F                 清除所有记录
iptables -L                  列出记录
#iptables -L                 列出所有记录
iptables -I                  插入记录
#iptables -I INPUT 3 --dport 80 -j DROP       在位置3的后面插入一条输入的80端口的拒绝记录
#iptables -P INPUT -j DROP                    将列表中所有INPUT的链默认策略定义为拒绝
#iptables -t net -P OUTPUT -j ACCEPT          将net表中所有OUTPUT的链默认策略定义为拒绝
#iptables -L FORWARD                          查看表中FORWARD链的规则记录
#iptables -A INPUT -p tcp --dport 80 -j ACCEPT                    向列表中添加一条允许访问TCP协议的80端口记录
#iptables -I INPUT -s 192.168.1.0/24 -j DROP                      向列表中插入一条拒绝源IP为192.168.1.0网段的数据包通过
#iptables -D INPUT 2                          删除列表中输入的第二条记录
#iptables -F OUTPUT                           清除列表中所有OUTPUT记录
#iptables -A FORWARD -d hi.baidu.com./ylinuxs -j DROP                     禁止客户端访问域名hi.baidu.com./ylinuxs的网站
#iptables -A FORWARD -d 202.16.28.6 -j DROP                         禁止客户端访问IP地址为202.16.28.6的网站

#iptables -I FORWARD -p tcp --dport 8000 -j DROP
#iptables -I FORWARD -p udp --dport 8000 -j DROP
#iptables -I FORWARD -d tcpconn.tencent.com -j DROP                 上面三行的意思为禁止用户访问qq(有可能不太全,可以在qq安装目录下有qq号码的目录下找到config.db文件,打开里面有全部的qq服务器地址)

#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice                   指定记录日志,并指定等级为notice
#iptables -A INPUT -p tcp --dport 80 -j LOG \ --log-level notice --log-prefix "iptables:"                 在已经记录日志信息之前加上指定的前缀
#iptables -A INPUT -p tcp -j LOG --log-tcp-sequence                              把数据包的TCP序列号和其它日志信息一起记录下来
#iptables -A FORWARD -p tcp -j LOG --log-tcp-options                             记录TCP包头中的字段大小不变的选项
#iptables -A FORWARD -p tcp -j LOG --log-ip-options                              记录IP包头中的字段大小不变的选项
#iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 192.168.1.1            将数据包的源地址改为公网地址
DNAT(网络地址转达换):
#iptables -t nat -A PREROUTING -i 网络接品 -p 协议 --dport 端口 -j SNAT --to-destination IP地址
如:
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to-destination 192.168.1.1        使用DNAT将发送到202.19.26.63,并且端口为80的数据包转发至192.168.1.1
#iptables -t nat -A PREROUTING -d 202.19.26.63 -p tcp --dport 80 -j DNAT --to 192.168.1.1-192.168.1.2        将公司内部的2台服务器,全部响应为外部地址202.19.26.63
MASQUERADE(伪装接口之间的数据):
#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.1.0/24 -j MASQUERADE             将192.168.1.0/24的内部地址,转换为ppp0的公网地址,并把数据伪装
#iptables -A INPUT -i lo -j ACCEPT                  添加一条允许使用回环地址的记录
#iptables -A FORWARD -p tcp --dport 80 -j ACCEPT          添加一条记录是允许80端口转发
#iptables -A FORWARD -p udp --dport 53 -j ACCEPT
#iptables -A FORWARD -p tcp --dport 53 -j ACCEPT          上面两条是添加记录是允许53端口转发
#iptables -A INPUT -p tcp --dport 22 -j ACCEPT            允许客户端访问服务器的ssh

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多