目录
2、“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含 多个数据链,防火墙规则需要写入到这些具体的数据链中。
——OUTPUT 出站链 (一般不配规则 否则数据无法出去)
一、iptables简介 :
(1)基本认识:
- iptables 是集成在 Linux 内核中的包过滤防火墙系统。使用 iptables 可以添加、删除具体的过滤规则,iptables 默认维护着 4 个表和 5 个链,所有的防火墙策略规则都被分别写入这些表与链中。
- 防火墙在做数据包过滤决定时,有一套遵循和组成的规则,这些规则存储在专用的数据包过滤表中,而这些表集成在 Linux 内核中。在数据包过滤表中,规则被分组放在我们所谓的链(chain)中。而netfilter/iptables IP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。
- 虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。
- netfilter 组件也称为内核空间(kernelspace),是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。
- iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。
(2) 四表五链:
1、“四表”是指 iptables 的功能
——filter 表(过滤规则表):控制数据包是否允许进出及转发
——nat 表(地址转换规则表):控制数据包中地址转换
——mangle(修改数据标记位规则表):修改数据包中的原数据
——raw(跟踪数据表规则表):控制 nat 表中连接追踪机制的启用状况
2、“五链”是指内核中控制网络的 NetFilter 定义的 5 个规则链。每个规则表中包含 多个数据链,防火墙规则需要写入到这些具体的数据链中。
——INPUT(入站数据过滤) :处理来自外部的数据
——OUTPUT(出站数据过滤):处理向外发送的数据。
——FORWARD(转发数据过滤):将数据转发到本机的其他网卡设备上。
——PREROUTING(路由前过滤) :– 处理刚到达本机并在路由转发前的数据包。它会转换数据包中的目标IP地址(destination ip address),通常用于DNAT(destination NAT)。
——POSTROUTING(路由后过滤): – 处理即将离开本机的数据包。它会转换数据包中的源IP地址(source ip address),通常用于SNAT(source NAT)。
3、 iptables的结构:
iptables -> Tables -> Chains -> Rules. tables由chains组成,而chains又由rules组成。
4、图解:

——————————————————————————————————————————————————————————
二、安装iptables服务:
设备:centos 7x64位
1、安装iptables
root@localhost poem]# yum install iptables
2、 出现问题(个人):
3、 解决:更改yum源
——备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
——下载yum源
wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
——清理旧的并生成新的
yum clean all && yum makecache
(运行 yum makecache 生成缓存)
4、敲入以下代码并按两下tab键下载 iptables.service 服务
root@localhost poem]# yum install iptables
[root@localhost poem]# yum install iptables-services -安装服务
[root@localhost poem]# systemctl restart iptables -开启服务
安装成功!!!!!
————————————————————————————————————————————————————————
三、路由转发配置:
sysctl -p 查看是否开启路由转发功能
————配置
[root@localhost poem]# vim /etc/sysctl.conf
再查看:
——————————————————————————————————————————————————————————
四、filte表:
——查看 filter 的详细规则
[root@localhost poem]# iptables -t filter -nvL
—— INPUT 入站链(找我的:
—— FORWARD 转发规则链 (找别人的)
对 iptables -t filter -nvL
• watch -n1 iptables -t filter -nvL (每秒钟观察状态)
然后再去 windos 上 ping -t
——OUTPUT 出站链 (一般不配规则 否则数据无法出去)
filter 规则写入:
格式
iptables -t filter -I INPUT -p tcp --dport 90 -j ACCEPT
—— 查看filter规则表:
这样,我们就可以在外部访问这台服务器的网站了。
——————————————————————————————————————————————————————————
五、iptables 的基本语法
—— 注意事项:
- 1. 不指定表名时,默认指向 filter 表
- 2. 不指定链名时,默认表内所有链
- 3. 除非设置链的默认策略,负责必须指定匹配条件
- 4. 选项、链名、控制类型使用大写字母,其余均为小写
——数据包的基本控制类型
- • ACCEPT 允许通过
- • DOROP 直接丢弃,不给出任何提示
- • REJECT 拒绝通过,必要时给出提示
- • LOG 记录日志信息,然后传给下一条规则继续匹配 我们可以实际操作(icmp 协议 PING)看一下 DOROP 的 REJECT 的区别
——写入规则
• iptables -I FORWARD -s 0.0.0.0/0 -d 0.0.0.0/0 -j DROP DRO
—— 添加新的规则:
—— 查看规则列表
• -L 列出所有规则条目
• -n 数字的形式显示地址、端口信息
• -v 以更详细的方式显示规则信息
• --line-number 查看规则时,显示规则的序号
—— 删除、清空规则
• -D 删除链内指定序号(或内容)的一条规则
• -F 清空所有的规则
例子:
删除 FORWARD 链中的序号 2 对应的规则
iptables -D FORWARD 2
清空 FORFARD 链中所有的规则
iptables -F FORWARD
当我们清空后,是不是规则就一直没有了呢
防火墙默认时保存其原来的配置的,只要重启 iptables 防火墙的服务,它之前 的规则就又会出来了
——指定默认策略
• service iptables restart 指定默认策略
• -P
注:默认策略的选择只有 DROP 和 ACCEPT
例子:
将 FORWARD 的默认策略改为 DROP
iptables -P FORWARD DROP
—— 匹配条件
常见的通用匹配条件
• 协议匹配 -p [协议名]
• 地址匹配 -s [源地址] -d [目的地址]
• 接口匹配 -i [入站网卡] 、-o [出站网卡]
常见的隐含匹配条件
• 端口匹配 --sport [源端口]、--dport [目的端口]
• TCP 标记端口 --tcp-flags [检查范围] [被设置的标记]
• ICMP 类型匹配 --icmp-type [ICMP 类型]
例如:
ICMP 类型 : 8 请求 0 回显 3 不可达
常见的显示匹配条件
• 多端口匹配 -m multiport -- sport [源端口列表]、-m multiport -- sport [目的 端口列表]
• IP 范围匹配 -m iprange --src-range [IP 范围]
• MAC 地址匹配 -m mac --mac-source [MAC 地址]
——导出导入备份规则
• iptables-save 工具
• 可结合重定向输出保存到指定文件 将当前状态保存到一个桌面的文件中
导出:
• iptables-save > /root/Desktop/ipt.txt
导入:
• iptables-restore < /root/Desktop/ipt.txt 将当前状态保存为默认规则
• service iptables save 无论你重启多次,它也会一直存在生效