一、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

#拒绝所有到本机的流量

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

#拒绝所有转发的流量