iptables面试题

iptables 面试题

iptables是什么?

iptables是linux的防火墙管理工具,真正实现防火墙功能的是netfilter,我们配置了iptables规则后netfilter通过这些规则来进行防火墙过滤等操作。

iptables的工作流程,以及过滤循序?

过滤循序

  1. 防火墙是层层过滤的,实际是按照配置规则的顺序从上到下,从前到后进行过滤的。
  2. 如果匹配上规则,即明确表示是阻止(DROP)还是通过(ACCEPT)数据包就不再向下匹配新的规则。
    1. 如果规则中没有明确表明是阻止还是通过的,也就是没有匹配规则,向下进行匹配,直到匹配默认 规则得到明确的阻止还是通过。
  3. 防火墙的默认规则是所有规则执行完才执行的。

iptables 有几个表以及每个表有几个链?

filter:INPUT,OUTPUT,FORWARD
NAT   :POSTROUTING,PREROUTING,OUTPUT
mangle:INPUT,OUTPUT,FORWARD,POSTROUTING,PREROUTING
raw   : PREROUTING, OUTPUT

1.3 iptables 的几个表以及每个表对应链的作用,对应企业应用场景?

#####filter:

强调:主要和主机自身有关,真正负责主机防火墙功能的(过滤流入流出主机的数据包。)filter表iptables默认使用的表。这个表包含了三个链(chains)
企业工作场景:主机防火墙
INPUT:负责过滤所有目标地址是本机地址的数据包,通俗的讲,就是过滤进入主机的数据包
FORWARD:负责转发流经主机的数据包。起转发的作用,和nat关系很大,
OUTPUT:处理所有源地址是本机地址的数据包,通俗的讲,就是处理从主机发出去的数据包

强调:对于filter表的控制是实现本机防火墙功能的重要手段,特别是对INPUT链的控制

#####nat表:

负责网络地址转换,即来源与目的ip地址的port的转换,应用:和主机本身无关。一般用于局域网共享上网或特殊的端口转换服务相关。
NAT功能一般企业工作场景
1.用于做企业路由(zebra)或网关(iptables),共享上网(postrouting)
2.做内部外部IP地址一对一映射(dmz),硬件防火墙映射IP到内部服务器,ftp服务(prerouting)
3.web,单个端口的映射。直接映射80端口(prerouting)
这个表定义了三个链(chains),nat功能就相当于网络的acl控制。和网络交换机类似
OUTPUT:和主机发出去的数据包有关,改变主机发出数据包的目标地址。
PREROUTING:在数据包到达防火墙时进行路由判断之前执行的规则。作用时改变数据包的目的地址,目的端口等。
POSTROUTING:在数据包离开防火墙时进行路由判断之后执行的规则,作用改变数据包的源地址,源端口等。。例如:笔记本和虚拟机都是192.168.1.0/24,就是出网的时候被我们企业路由器把源地址改成了公网地址了。生产应用:局域网共享上网。
另外两个,raw和mangle在工作不常用,不做过多的解释了

画图讲解 iptables 包过滤经过不同表和链简易流程图并阐述。

iptables面试题_第1张图片
image.png

描述 tcp 3 次握手及四次断开过程?

iptables面试题_第2张图片
image.png

第一次握手:客户端/发送一个tcp标志位SYN=1,ACK=0的数据包给服务端,并随机会产生一个seq=j。当服务端接收到这个数据后,服务端有SYN=1可知客户端想要建立连接;

第二次握手:服务端要对客户端的联机请求进行确认,向客户端发送应答号ACK=1,SYN=1 确认号Ack=j+1,此值是客户端的序列号加1,还会产生一个随机的序列号Seq=k,这样就告诉客户可以进行连接。

第三次握手:客户端收到数据后检查Ack是否为j+1,以及标志位ACK的值是否为1,若为1,则会发送ACK=1,确认号码Ack=k+1,告诉服务端,你的请求连接被确认,连接可以建立,Client和server进入ESTABLISHED状态,完成三次握手,随后Client和Server之间可以开始床上数据了。

iptables面试题_第3张图片
image.png

(1)第一次挥手:Client发送一个FIN,用来关闭Client到Server的数据传送,Client进入FIN_WAIT_1状态。
(2)第二次挥手:Server收到FIN后,发送一个ACK给Client,确认序号为收到序号+1(与SYN相同,一个FIN占用一个序号),Server进入CLOSE_WAIT状态。
(3)第三次挥手:Server发送一个FIN,用来关闭Server到Client的数据传送,Server进入LAST_ACK状态。
(4)第四次挥手:Client收到FIN后,Client进入TIME_WAIT状态,接着发送一个ACK给Server,确认序号为收到序号+1,Server进入CLOSED状态,完成四次挥手,连接关闭

详细描述 HTTP 工作原理?

1.地址解析

2.封装HTTP请求数据包

3.封装成TCP包,建立TCP连接

4.客户端发送请求

5.服务器响应

6.服务器关闭连接

请描述 iptables 的常见生产应用场景。

主机防火墙(filter表的INPUT链)
局域网共享上网(nat表的POSTROUTING链),半个路由器,NAT功能
端口及IP(一对一)映射(nat表的PRETOUTING链),硬件防火墙的NAT功能。

数据包留进来的时候都会经过PREROUTING链,数据包出去的时候都会经过POSTROUTING链。

接下来会进行路由选择,判断目的地址是不是我本机,如果是就经过INPUT链,进行

笔试题

1.请写入查看iptables当前所有规则的命令。

iptables -L -n --line-numbers

2.禁止来自10.0.0.7 ip地址访问80端口的请求。

iptables -A INPUT -p tcp -s 10.0.0.7 --dport 80 -j DROP

3.如何在命令行执行的iptables规则永久生效。
/etc/init.d/iptables save

iptables-save >/etc/sysconfig/iptables
4.实现把访问10.0.0.3:80 的请求转到 172.16.1.17:80
iptables -t nat -A PREROUTING -d 10.0.0.4 --dport 80 -j DNAT --to-destination 172.16.1.6:80
5.实现172.16.1.0/24端所有主机通过124.32.54.26外网ip共享上网
iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -j SNAT --to-source 124.32.54.26

你可能感兴趣的:(iptables面试题)