防火墙 iptables
1.防火墙的作用:
防火墙是一个组件,工作在网络边缘(主机边缘),对进出网络数据包基于一定的规则检查,并在匹配某规则时由规则定义的处理进行处理的一组功能的组件。
2.防火墙类型
根据工作的层次的不同来划分,常见的防火墙工作在OSI第三层,即网络层防火墙,工作在OSI第七层的称为应用层防火墙,或者代理服务器(代理网关)。
网络层防火墙又称包过滤防火墙,在网络层对数据包进行选择,选择的依据是系统内设置的过滤逻辑,通过检查数据流中每个数据的源地址,目的地址,所用端口号和协议状态等因素来确定是否允许该数据包的通过,以及数据包的流向等。
还可以分为硬件防火墙和软件防火墙
3.软件防火墙
EL6上的防火墙叫做iptables。
EL7上的防火墙叫做firewalld。
4.语法
iptables -t table CMD chain rule-matcher -j target
表 动作 链 规则匹配 执行操作
表table
filter 表:用于过滤数据包
nat 表:用于修改数据包的来源和目的地
mangle 表:用户修改数据包的生存周期等等
raw 表:跟踪机制
使用 -t 来指定表,如果省略,则代表对 filter 表进行操作
CMD动作
A 追加
I 插入
D 删除
L 罗列
F 清空
表当中包含链chain
链是用来区分数据包的流向状态
INPUT 入站的数据包
OUTPUT 出站的数据包
PREROUTING 路由判断之前的数据包
POSTROUTING 路由判断之后的数据包
FORWARD 第一次路由判断之后,到最后一词路由判断之前
规则rule
是用来判断数据包的具体情况
-p 协议
-s 来源
-d 目的地
--sport 来源端口
--dport 目的端口
-i 入站网络接口
-o 出站网络接口
! 取反
执行操作target
ACCEPT 接受
DROP 丢弃
REJECT 拒绝
DNAT 目标地址转换
SNAT 源地址转换
应用示例
0.查看规则 iptables -L
1.规则清空 iptables -F
2.预选策略 iptables -P INPUT ACCEPT
3.保存策略 service iptables save
iptables-save > /etc/sysconfig/iptables
4.开机后重新导入 iptables-restore < /etc/sysconfig/iptables
rhel6 172.25.0.11
1.只允许172.25.0.250和你自己的服务器能够访问ftp服务(rhel6)
来源 -s 172.25.0.250
-s 172.25.0.11
进来的 INPUT
目标
端口号 –dport 21
协议 -p tcp
允许 ACCEPT
iptables -A INPUT -s 172.25.0.250 -p tcp –dport 21 -j ACCEPT
iptables -A INPUT -s 172.25.0.11 -p tcp –dport 21 -j ACCEPT
iptables -A INPUT -p tcp –dport 21 -j DROP
除了他们其他不允许
2.禁止ping包
进来 INPUT
协议 icmp
扔掉
iptables -A INPUT -p icmp -j DROP
=========================================
3.仅允许172.25.0.0/24网段和172.25.15.0/24网段用户能够访问我的邮件服务器
进来 INPUT
来源 -s 172.25.0.0/24
-s 172.25.15.0/24
协议 -p tcp
端口 –dport 25
允许 -j ACCEPT
其他人都不允许
iptables -A INPUT -s 172.25.0.0/24 -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -s 172.25.15.0/24 -p tcp –dport 25 -j ACCEPT
iptables -A INPUT -p tcp –dport 25 -j DROP
==============================================================================
rhel6 172.25.x.11
练习题目
1.清空规则
2.预设filter表INPUT是ACCEPT
3.仅允许172.25.254.250和172.25.254.X 能够ssh到我的服务器(rhel6 172.25.X.11)上
进来 INPUT
来源 -s 172.25.254.250
-s 172.25.254.16
协议 -p tcp
端口号 –dport 22
允许 -j ACCEPT
iptables -A INPUT -s 172.25.254.250 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -s 172.25.254.16 -p tcp –dport 22 -j ACCEPT
iptables -A INPUT -p tcp –dport 22 -j DROP
4.仅允许172.25.254.0/24和172.25.X.0/24能够ping我的服务器
INPUT
-s 172.25.254.0/24
-s 172.25.X.0/24
-p icmp
-j ACCEPT
iptables -A INPUT -s 172.25.254.0/24 -p icmp -j ACCEPT
iptables -A INPUT -s 172.25.16.0/24 -p icmp -j ACCEPT
iptables -A INPUT -p icpm -j DROP
5.不允许172.25.254.254访问我的邮件服务器
INPUT
-s 172.25.254.254
-p tcp
–dport 25
-j DROP
iptables -A INPUT -s 172.25.254.254 -p tcp –dport 25 -j DROP
6.保存规则
rhel6 servcie iptables save
iptables-save > /etc/sysconfig/iptables
7.查看规则
iptables -L
8.关机重启
iptables-restore < /etc/sysconfig/iptables