iptables防火墙学习
iptables防火墙学习
基础概念
iptables 是 Linux平台下的基于内核的包过滤防火墙煤科院完成封包过滤、封包重定向和网络地址转换(NAT)等功能,功能非常强大。iptables只是Linux防火墙的管理工具,真正实现防火墙功能的是netfilter,它是Linux内核中实现包过滤的内部结构,两个一起简称iptables。
工作机制
iPtables内置有四张表和五个链。
4个内置表:
- filter表,默认表,在定义链规则时没有指定的话默认是配置filter表,主要控制数据包的过滤,日常使用较多的表。
- nat表,主要处理数据的转换转发。
- mangle表,修改数据包的服务类型、TTL、并且可以配置路由实现QOS内核模块。
- raw表,决定数据包是否被状态跟踪机制处理,使用不多。
优先级关系:
raw > mangle > nat > filter
5个内置链:
- INPUT——进来的数据包应用此规则链中的策略
- OUTPUT——外出的数据包应用此规则链中的策略
- FORWARD——转发数据包时应用此规则链中的策略
- PREROUTING——对数据包作路由选择前应用此链中的规则
- POSTROUTING——对数据包作路由选择后应用此链中的规则
对应关系:
规则链的匹配顺序:
入站顺序:PREROUTING->INPUT
出站顺序:OUTPUT->POSTROUTING
转发顺序:PREROUTING->FORWARD->POSTROUTING
注意事项:
- 没有指定规则表默认指filter
- 不指定规则链则默认指表内所有的规则链
- 在规则链中匹配规则时会依次检查,匹配则停止,若没有匹配按链的默认状态处理。
常见的命令参数
参数 | 作用 |
---|---|
-P | 设置默认策略,iptables -P INPUT (DROP |
-F | 清空规则链 |
-L | 查看规则链 |
-A | 在规则链的底部加入规则 |
-I | 在规则链的顶部加入新规则 |
-D | 删除某一条规则 |
-s | 匹配源地址:IP/MASK |
-s | 匹配目标地址:IP/MASK |
-i 网卡名称 | 匹配从这块网卡流入的数据 |
-o 网卡名称 | 匹配从这块网卡流出的数据 |
-p | 匹配协议如:tcp,udp,icmp |
--sport 端口号 | 匹配源端口号 |
--dport 端口号 | 匹配目的端口号 |
配置
基本的配置模式:
iptables -t [表名] [选项] [链名] 规则匹配条件 -j [匹配之后执行的操作]
示例:
iptables -t filter -I INPUT -p tcp --dport 80 -j ACCEPT
解析:在filter表的INPUT链第一行插入一条规则,目标端口是tcp80端口匹配ACCEPT(转发)操作。
基础操作
一般情况下先查看iptables中的规则,然后根据需求进行设置策略
1.查看防火墙规则策略
# 查看防火墙规则策略,默认-t参数不设置是filter表
iptables -t[表名] --list/-L
效果:filter表中有INPUT、OUTPUT、FORWARD三个表,在链表的旁边显示policy ACCEPT表示默认策略是允许转发的,因此我们需要添加DROP策略,或者如图在最后一条加上拒绝所有的策略,策略匹配从上往下匹配,即时生效。
[root@centos84 ~]# iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere tcp dpt:http
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
显示序号可以在上述命令后面添加--line-number参数。
2.设置默认规则
# 在INPUT链的最后添加,匹配转发或者丢弃
iptables -P INPUT (DROP/ACCEPT)
3.删除指定规则
# 删INPUT的第一条规则
iptables -D INPUT 1
4.禁止访问本机22端口
iptables -I INPUT -p tcp --dport 22 -j DROP
5.限制访问网址www.baidu.com
iptables -I FORWARD -d www.baidu.com -j DROP
6.限制ip地址上网
iptables -I FORWARD -s 192.168.1.10 -j DROP
7.nat转发
# linux作为转发需要开启转发功能,SNAT源地址转换,配置POSTROUTING链,DNAT将外网卡地址数据映射到内网,配置PREROUTING链
# 内网卡地址:192.168.1.1
# 外网卡地址:202.202.202.1
# 内网终端地址:192.168.0.101
iptables -t nat -A PREROUTING -d 202.202.202.1 -j DNAT --to-destination 192.168.0.101
iptables -t nat -A POSTROUTING -d 192.168.0.101 -j SNAT --to 192.168.1.1
8.保存规则
# iptables规则配置完成即可生效,但是重启之后会失效,因此需要保存到文件中使之永久生效,文件保存在/etc/sysconfig/iptables
service iptables save
总结
策略配置步骤:
1.查看默认规则和已有规则
2.根据需求进行策略配置
3.保存配置
点点滴滴,积少成多,终有一日能发挥用处。