一、iptables是什么类型的防火墙
是包过滤型,需要在input和output方向都做包过滤策略,默认情况下iptables更像ACL。
通过-m state选项,可以让iptables的功能得到更多的扩展,比如,实现FTP协议的端口放开等类似ALG功能
二、 iptables在CentOS7上的开启和关闭方法
1. 停止并禁用 firewalld
sudo systemctl stop firewald.service && sudo systemctl disable firewald.service
2.安装iptables-services、iptables-devel
sudo yum install iptables-services iptables-devel
3.启用并启动iptables
sudo systemctl enable iptables.service && sudo systemctl start iptables.service
1. 立即生效
systemctl stop iptables.service
2. 永久生效
systemctl enable iptables.service
三、 iptables的配置文件
vim /etc/sysconfig/iptables
在没有安装iptables.services和iptables-devel前,系统(CentOS7)上并没有这个文件
四、iptables有区域的概念吗?
没有,但firewalld有
五、iptables能做什么?
1. 单机防火墙:针对发往本主机的数据包进行过滤
2. 网络防火墙:针对通过本机进行转发的数据进行NAT和过滤
六、 四表五链
常用的表其实就nat和filter
nat的常见用法是:在PREROUTING端做DNAT,在POSTROUTING端做SNAT
filter包括两部分:针对本机的数据包,在INPUT和OUTPUT做过滤;针对转发的数据包在FORWARD的双向做过滤
四表: 实现不同的功能
1. raw: 用于关闭NAT表上启用的连接追踪
2. mangle: 拆解报文,做出修改,并重新进行封装
3. nat: 网络地址转换
4. filter: 负责数据包的过滤功能
5. security: 在CentOS7中新加的一个表
五链: 规则列表,对对应的包进行匹配并进行动作处理。也可以理解为规则作用的点。
1. PREROUTING: 流入的数据包路由之前
2. INPUT: 数据包入口,作用于目的地是本机的流量
3. FORWARDING: 转发,作用于目的地不是本机的流量
4. OUTPUT: 数据包出口,由本机发出的流量
5. POSTROUTING: 路由之后
功能<--链:
raw:PREROUTING, OUTPUT
mangle:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
nat:PREROUTING,[INPUT,]OUTPUT,POSTROUTING
filter:INPUT,FORWARD,OUTPUT
七、iptables的默认规则
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
#针对已经创建了连接的数据包,允许流入;也可以理解为允许回包进入本机
-A INPUT -p icmp -j ACCEPT
#允许ICMP协议的进入
-A INPUT -i lo -j ACCEPT
#允许本机回环回入方向的流量
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
#允许所有主机到本机TCP22端口的访问
-A INPUT -j REJECT --reject-with icmp-host-prohibited
#拒绝所有到本机的流量