iptables [-t table] command chains (NUM) match condition -j action
iptables [-t table] command [match] [target]
概念
iptables 由表(tables),链(chains),规则(rules)组成
默认iptables内置了四个表(tables):filter表 nat表 mangle表和raw表
五个链:INPUT ,OUTPUT ,PREROUTING ,POSTROUTING ,FORWARD
filter表:INPUT ,OUTPUT ,FORWARD ---一般用于信息表过滤
nat表:PREROUTING ,POSTROUTING, OUTPUT ---用于要转发的信息包
mangle表:ALL(跟路由无关,在任何点都行,ye最高) ----包含一些规则来标记用于高级路由的信息包
命令选型
--append -A append 在规则表的最后追加一条规则
--insert -I [n] 插到第n条规则之前
--replade -R n replace 第n条新规则
--delete -D n delete第n条规则
--flush -F 清空表中所有规则
--policy -P ACCEPT|DROP 默认策略动作
--new-chain -N z自定义新链
--rename-chain -E 重命名用户自定义的链
--zero -Z 清零计数器
1.所有被本规则匹配到的数据包的个数
2. 所有被本规则匹配到的数据包的数据之和
--list -L list链中的所有规则 默认保存在/etc/sysconfig/iptables
-x 显示-Z选项中的数据时,不作单位换算,显示精确值
-n 不作名称解析,以数字的格式显示ip
-v | -vv |-vvv|-vvvv | 显示详细的信息
--line-numbers 显示行号
-S 同-L ,print出来
filter是最常用的表,在filter表中最常用的三个目标是ACCEPT、DROP和REJECT。DROP会丢弃数据包,不再对其进行任何处理。REJECT会把出错信息传送至发送数据包的主机
匹配选型
A.通用匹配
--proto -p protocol协议类型
--source -s src-address数据包匹配的源地址
--destination -d dst-address数据包匹配到目标地址
--in-terface -i in_interface数据入口
--out-interface -o out-interface数据出口
B.扩展匹配
扩展又分为隐含扩展和显式扩展
隐含匹配 显式扩展
tcp --source-port -m tcp
--dport -m state --state NEW|ESTABLISHED|RELATED| INVALID
--sport -m limit --limit n/days |minute
--limit-burst N 峰值
--type-flags -m string --string
--syn -m mac --mac—source
-m multiport --source-ports
--destination-ports
--tcp-flags mask comp
Udp --sport
--dport
Icmp --icmp-types
8 echorequest
0 echo-reply
3 destination unreachable
动作
-j DROP 丢弃数据包(“悄悄地“)
REJECT 丢弃数据包(明确的)
ACCEPT 接收数据包
SNAT 源端口转换
DNAT 目的端口转换
LOG 记录日志
REDIRECT 端口转换
MASQUERADE 端口伪装(动态获取网关时用,耗系统资源)
例子
1.iptables -F #清空表中所有规则
iptables -X #清除所有自定义规则
iptables -Z #各项计数归零
2.iptables -t nat -F 清除旧规则
3.iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
4.iptables -L -n 查看已有的规则
5.iptables -t filter -A INPUT -s 123.456.789.0/24 -j DROP
本例中的规则将会阻止来自某一特定IP范围内的数据包,因为该IP地址范围被管理员怀疑有大量恶意攻击者在活动
iptables -t filter -A OUTPUT -d 123.456.789.0/24 -j DROP
阻止所有流向攻击者IP地址的数据包
6.iptables -A INPUT -p tcp --dport 52814 -j ACCEPT
7.iptables -A INPUT -s 172.16.100.0 /24 -j ACCEPT
8.iptables -t filter -A INPUT -i eth0 -p tcp --syn -j DROP
--syn则表示带有syn标识设置的TCP数据包
9.
10.iptables-save > iptables-script ----把策略保存到文件
iptables-restore iptables-script ----恢复策略
service iptables restart
11.iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
12.iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
------让所有流出的信息看起来都是来自防火墙机器的,而并不会显示出防火墙后面还有一个局域网
DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢
未完待续、、、、
阅读(318) | 评论(0) | 转发(0) |