iptables相关

1.常见防火墙选用

  • 硬件防火墙

  • 开源软件:iptables(默认规则改为INPUT DROP)

  • 云服务器:安全组(阿里云 白名单,默认是拒绝的)

2.iptables使用 执行过程
3.iptables 4表5链
4.准备iptables环境
5.iptables功能之一防火墙
  • 封IP 封端口

  • 准许某个ip访问 网段访问

6.iptables功能之内网服务器上外网(共享上网)
7.iptables功能之 端口转发

2.常见防火墙选用

  • 公司网站入口使用的硬件 防火墙 、三次路由带有防火墙功能
  • itpables访问量小 C5 C6自带,CentOS 7为Firewalld
  • SELinux

3.相关名词与单词

名词 含义 对比
容器 存放内容/存放东西
Netfilter/iptables 是表的容器 国家
(table) 是用来存放链的容器
(chain) 链 存放规则的容器
规则(policy) 准许/拒绝访问 区/县

4.防火墙执行过程

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

5.四表五链

5.1 四表及作用

功能
Filter 过滤,默认的表,防火墙功能
NAT 实现NAT转化:1.共享上网 2.端口转发
mangle 查询帮助man iptables 了解即可
raw 查询帮助man iptables 了解即可

5.2 四表中的5链

image
image
五链:
PREROUTING
FORWARD
INPUT
OUPUT
POSTROUTING

image
image.png

5.3 filter表和nat表

image

5.3.1 filter表

filter表 企业工作场景:主机防火墙
INPUT 就是过滤进入主机的数据包
FORWARD 负责转发流经主机的数据包
OUTPUT 就是处理从主机发出去的数据包

5.3.2 nat表

nat表
PREROUTING 处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING 处理离开服务器的请求 源端口 源ip :共享上网
OUTPUT 和主机放出去的数据包有关,改变主机发出数据包的目的地址

补充:

filter表:
​​INPUT 作用:用于发送到本地套接字的数据包。
​FORWARD 作用:对于正在通过该框路由的数据包
​OUTPUT 作用:用于本地生成的数据包。

nat表:
​PREROUTING 作用:因为他们一进来就改变了包
​OUTPUT 作用:用于在路由之前更改本地划分的数据包。
​POSTROUTING 作用:改变包,因为它们即将离开

6.防火墙之filter表

6.1环境准备

m01 iptables iptables-services
db01 iptables iptables-services
[root@m01 ~]# rpm -qa iptables-services
iptables-1.4.21-28.el7.x86_64
[root@m01 ~]# rpm -ql iptables-services
/etc/sysconfig/ip6tables
/etc/sysconfig/iptables #iptables 配置文件
/usr/lib/systemd/system/ip6tables.service
/usr/lib/systemd/system/iptables.service    #iptables服务管理配置

启动防火墙

[root@m01 ~]# systemctl stop firewalld    #CentOS7关闭firewalld
[root@m01 ~]# systemctl restart iptables
[root@m01 ~]# systemctl enable iptables

手动加载内核模块

[root@m01 ~]# modprobe ip_tables
[root@m01 ~]# modprobe iptable_filter
[root@m01 ~]# modprobe iptable_nat
[root@m01 ~]# modprobe ip_conntrack
[root@m01 ~]# modprobe ip_conntrack_ftp
[root@m01 ~]# modprobe ip_nat_ftp
[root@m01 ~]# modprobe ipt_state

检查防火墙内核模块是否加载成功:

[root@m01 ~]# lsmod |egrep 'nat|ipt|filter'
nf_nat_ftp             12770  0 
nf_conntrack_ftp       18638  1 nf_nat_ftp
ipt_REJECT             12541  2 
nf_reject_ipv4         13373  1 ipt_REJECT
ipt_MASQUERADE         12678  1 
nf_nat_masquerade_ipv4    13412  1 ipt_MASQUERADE
iptable_filter         12810  1 
xt_nat                 12681  2 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  4 nf_nat_ftp,nf_nat_ipv4,xt_nat,nf_nat_masquerade_ipv4
nf_conntrack          133095  8 nf_nat_ftp,nf_nat,xt_state,nf_nat_ipv4,xt_conntrack,nf_nat_masquerade_ipv4,nf_conntrack_ftp,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

6.2 配置规则-禁止访问22端口

[root@m01 ~]# iptables -F  #清除规则
[root@m01 ~]# iptables -X
[root@m01 ~]# iptables -Z
[root@m01 ~]# iptables -nL #查看规则
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination   
[root@m01 ~]# #添加一条规则,禁止22端口访问
[root@m01 ~]# iptables -t filter -A INPUT -p tcp --dport 22 -j DROP
[root@m01 ~]# 
Type `help' to learn how to use Xshell prompt.
[d:\~]$    #断开了~跑下机房

删除规则,重新连接m01
[root@m01 ~]# iptables -nL --line-number #查看防火墙规则
[root@m01 ~]# iptables -t filter -D INPUT 1   #删除第1条规则
[root@m01 ~]# iptables -nL --line-number #再次查看

image

重新连接 22端口就可以用了

Type `help' to learn how to use Xshell prompt.
[d:\~]$ 

Connecting to 10.0.0.61:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.

Last login: Tue Jul  2 17:04:55 2019
[root@m01 ~]# 

配置防火墙规则注意事项:
  1. 去机房重启系统或者登陆服务器删除刚才的禁止规则。

  2. 让机房人员重启服务器或者让机房人员拿用户密码登录进去

  3. 通过服务器的远程管理卡管理(推荐)

  4. 先写一个定时任务,每5分钟就停止防火墙**5. 测试环境测试好,写成脚本,批量执行

6.3 filter表其他规则配置

6.3.1 只让10.0.0.0/24网段进行访问连接

只要是10.0.0.0/24 局域网的用户 访问m01 都ACCEPT

此例子主要限制:网段或ip地址

[root@m01 ~]# iptables -A INPUT -p tcp ! -s 10.0.0.0/24 -j DROP   #"!" 叹号表示取反
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination      

image

去另一台服务器上测试一下是否成功:

[root@db01 ~]# ssh 10.0.0.61  #连接10.0.0.61,可以连接
root@10.0.0.61's password: 
Last login: Tue Jul  2 17:41:01 2019 from 10.0.0.51
[root@m01 ~]# logout  #退出
Connection to 10.0.0.61 closed.
[root@db01 ~]# ssh 172.16.1.61    #连接172.16.1.61,不可以连接
....等到死

image

6.3.2准许或禁止端口

多个端口:表示范围 1-1024范围

[root@m01 ~]# iptables -I INPUT -p tcp ! --dport 1:1024 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpts:!1:1024
2    DROP       tcp  -- !10.0.0.0/24          0.0.0.0/0           

Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

多个端口 不连续 80,443,52113,22

[root@m01 ~]# iptables -I INPUT -p tcp -m multiport ! --dport 80,443,22 -j DROP 
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    DROP       tcp  --  0.0.0.0/0            0.0.0.0/0            multiport dports  !80,443,22
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination  

6.4 iptables命令及参数

iptables
-t 指定表 filter(默认) nat
-A append 把规则追加到末尾
-I (大写字母i ) insert 把规则插入到规则的第1条 (添加拒绝类规则的时候)
-p protocal 指定协议:tcp /udp/icmp
--dport destination port 目标端口
--sport source port 源端口
-d dest ip address 目标ip地址
-s source ip address 源ip地址
-j jump 方法 DROP (拒绝)、 ACCEPT(准许) 、REJECT(拒绝)
iptables查看 删除
-F 清除链中所有规则
-X 清空自定义链的规则
-Z 清空计数器
-n 不要把端口解析服务名字
-L 显示表中的规则
--line-number 给每个链中的规则加上行号
-D 删除规则 根据规则的号码进行删除

7.ICMP协议

简介:

IP协议是一种面向无连接的数据报协议,它是一种不可靠的协议,它不提供任何差错检验。因此网际报文控制协议Internet Control Message Protocol)ICMP出现了,ICMP协议用于IP主机、路由器之间传递控制消息,这里的控制消息可以包括很多种:数据报错误信息、网络状况信息、主机状况信息等,虽然这些控制消息虽然并不传输用户数据,但对于用户数据报的有效递交起着重要作用,从TCP/IP的分层结构看ICMP属于网络层,它配合着IP数据报的提交,提高IP数据报递交的可靠性。ICMP是封装在IP数据报中进行发送的,从这点看来,ICMP协议又有点像一个传输层协议,其实不然,因为ICMP报文的目的不是目的主机上的某个应用程序,它不为应用程序提供传输服务,ICMP报文的目的是目的主机上的网络层处理软件。简单的来说,ICMP协议就像奔波于网络中的一名医生,它能及时检测并汇报网络中可能存在的问题,为解决网络错误或拥塞提供了最有效的手段

ICMP报文有很多类型,不同的类型有不同的代码。最常用的类型是主动请求为8,主动请求的应答为0。

网络出问题了使用ping命令,ping命令是基于ICMP协议工作的,ICMP报文是封装在IP包里面的。

image
image
image
NEW

ESTABLISHED

RELATED

INVALID

8.准许或禁止ping

现在是可以ping通的

[root@m01 ~]# ping 10.0.0.61
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
64 bytes from 10.0.0.61: icmp_seq=1 ttl=64 time=0.064 ms
64 bytes from 10.0.0.61: icmp_seq=2 ttl=64 time=0.038 ms
^C
--- 10.0.0.61 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.038/0.051/0.064/0.013 ms
[root@m01 ~]# ping 172.16.1.61
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
64 bytes from 172.16.1.61: icmp_seq=1 ttl=64 time=0.079 ms
64 bytes from 172.16.1.61: icmp_seq=2 ttl=64 time=0.039 ms
^C
--- 172.16.1.61 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 0.039/0.059/0.079/0.020 ms
[root@m01 ~]# 

添加icmp,禁止ping

[root@m01 ~]# iptables -I INPUT -p icmp --icmp-type any -j DROP     #禁止ping
[root@m01 ~]# 
[root@m01 ~]# ping 10.0.0.61    #ping不通了
PING 10.0.0.61 (10.0.0.61) 56(84) bytes of data.
^C
--- 10.0.0.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms

[root@m01 ~]# ping 172.16.1.61  #ping不通了
PING 172.16.1.61 (172.16.1.61) 56(84) bytes of data.
^C
--- 172.16.1.61 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2001ms

[root@m01 ~]# ping 127.0.0.1    #ping不通了
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
^C
--- 127.0.0.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1003ms

8.限制访问频率

image
iptables -I INPUT -s 10.0.1.0/24 -p icmp --icmp-type 8 -m limit --limit 6/min --limit-burst 5 -j ACCEPT

9.永久保存规则

[root@m01 ~]# cat /etc/sysconfig/iptables   #防火墙的默认规则
# sample configuration for iptables service
# you can edit this manually or use system-config-firewall
# please do not ask us to add additional ports/services to this default configuration
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
[root@m01 ~]# iptables-save     #当前的防火墙规则
# Generated by iptables-save v1.4.21 on Wed Jul  3 09:28:21 2019
*filter
:INPUT ACCEPT [93:6196]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [69:7412]
-A INPUT -s 10.0.1.0/24 -p icmp -m icmp --icmp-type 8 -m limit --limit 6/min -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type any -j DROP
COMMIT
# Completed on Wed Jul  3 09:28:21 2019
# Generated by iptables-save v1.4.21 on Wed Jul  3 09:28:21 2019
*nat
:PREROUTING ACCEPT [39:2360]
:INPUT ACCEPT [2:104]
:OUTPUT ACCEPT [44:3050]
:POSTROUTING ACCEPT [44:3050]
-A POSTROUTING -s 10.8.0.0/24 ! -d 10.8.0.0/24 -j SNAT --to-source 10.0.0.61
-A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
COMMIT
# Completed on Wed Jul  3 09:28:21 2019
[root@m01 ~]# iptables-save   >/etc/sysconfig/iptables
[root@m01 ~]# 
[root@m01 ~]# iptables-restore < /etc/sysconfig/iptables
[root@m01 ~]# iptables -nL
Chain INPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     icmp --  10.0.0.0/24          0.0.0.0/0            icmptype 8 limit: avg 6/min burst 5
ACCEPT     icmp --  10.0.1.0/24          0.0.0.0/0            icmptype 8 limit: avg 6/min burst 5
DROP       icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 255

Chain FORWARD (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
[root@m01 ~]# systemctl restart iptables.service 

注意事项:

  • iptables-save >/etc/sysconfig/iptables
  • iptables 是关闭状态 stop/disable
  • 关闭时不要使用iptables -nL查看状态 ,一查看就打开了
  • 查看防火墙状态:systemctl is-active iptables

10.生产环境防火墙配置

1.逛公园:防火墙默认的规则 默认规则都是允许(Chain INPUT (policy ACCEPT))

2.电影院:默认规则是拒绝DROP 凭票进入

image
image
image

10.1 允许SSH登录端口进入

[root@m01 ~]# iptables -A INPUT -p tcp --dport 22 -j ACCEPT  

10.2 允许机回环Io接口数据流量流出与流入

[root@m01 ~]# iptables -A OUTPUT -o lo -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -i lo -j ACCEPT 

-i input 与 INPUT链一起使用

-o output 与 OUTPUT 链一起使用

10.3准许icmp协议通过

[root@m01 ~]# iptables -A INPUT -p icmp --icmp-type 8 -j ACCEPT

10.4准许用户使用的端口通过 80,443

#先把信任网段删掉再进行测试
[root@m01 ~]# iptables -A INPUT -p tcp --dport 80 -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -p tcp --dport 443 -j ACCEPT 

#俩台虚拟机上测试
[root@m01 ~]# nc -l 80


[root@db01 ~]# telnet 10.0.0.61 80
Trying 10.0.0.61...
Connected to 10.0.0.61.
Escape character is '^]'.

10.5 允许用户与服务器建立连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

10.6 开启信任的IP网段

[root@m01 ~]# iptables -A INPUT -s 10.0.0.0/24 -p all -j ACCEPT 
[root@m01 ~]# iptables -A INPUT -s 172.16.1.0/24 -p all -j ACCEPT 

10.7 修改默认规则

[root@m01 ~]# iptables -P INPUT DROP
[root@m01 ~]# iptables -P FORWARD DROP
[root@m01 ~]# iptables -P OUTPUT ACCEPT

查看设置的规则

[root@m01 ~]# iptables -nL
Chain INPUT (policy DROP)
target     prot opt source               destination         
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:22
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0            icmptype 8
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:80
ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0            tcp dpt:443
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED
ACCEPT     all  --  10.0.0.0/24          0.0.0.0/0           
ACCEPT     all  --  172.16.1.0/24        0.0.0.0/0           

Chain FORWARD (policy DROP)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0            state RELATED,ESTABLISHED

11.NAT 表

nat表
PREROUTING 处理用户请求中的目的地址 目的端口 端口转发 ip映射
POSTROUTING 处理离开服务器的请求 源端口 源ip :**共享上网
OUTPUT 和主机放出去的数据包有关,改变主机发出数据包的目的地址

保存好之前的规则删除

[root@m01 ~]# iptables-save >/root/iptables.rule
[root@m01 ~]# ll iptables.rule 
-rw-r--r-- 1 root root 969 Jul  3 10:33 iptables.rule

跑机房修改默认规则:

image

11.1 PREROUTING

image
[root@m01 ~]# #iptables -t nat -A PREROUTING -d 10.0.0.61 -p tcp --dport 8080 -j DNAT --to-destination 10.0.0.51:22
[root@m01 ~]# iptables -nL -t nat
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            10.0.0.61            tcp dpt:8080 to:10.0.0.51:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.8.0.0/24         !10.8.0.0/24          to:10.0.0.61
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61

[root@m01 ~]# iptables -nL -t nat   #查看nat表
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         
DNAT       tcp  --  0.0.0.0/0            10.0.0.61            tcp dpt:9000 to:10.0.0.51:22

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  10.8.0.0/24         !10.8.0.0/24          to:10.0.0.61
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61
[root@m01 ~]# cat /proc/sys/net/ipv4/ip_forward #查看防火墙是否打开
1
[root@m01 ~]# lsmod |egrep 'nat|ipt|filter' #检查
iptable_filter         12810  1 
xt_nat                 12681  3 
iptable_nat            12875  1 
nf_nat_ipv4            14115  1 iptable_nat
nf_nat                 26787  2 nf_nat_ipv4,xt_nat
nf_conntrack          133095  3 nf_nat,nf_nat_ipv4,nf_conntrack_ipv4
ip_tables              27126  2 iptable_filter,iptable_nat
ipt_REJECT             12541  0 
nf_reject_ipv4         13373  1 ipt_REJECT
libcrc32c              12644  3 xfs,nf_nat,nf_conntrack

#现在连接应该是不通,此刻需要添加一条内核优化
[root@m01 ~]# #第一种方法:
[root@m01 ~]# echo 1 > /proc/sys/net/ipv4/ip_forward
[root@m01 ~]# cat /proc/sys/net/ipv4/ip_forward
1
[root@m01 ~]# #第二种方法:
[root@m01 ~]# echo 'net.ipv4.ip_forward=1' >> /etc/sysctl.conf 

#让其生效
[root@m01 ~]# sysctl -p

11.2 POSTROUTING

image
#添加NAT共享上网命令
[root@m01 ~]# iptables -t nat -A POSTROUTING -s 172.16.1.0/24 -o eth0 -j SNAT --to-source 10.0.0.61
[root@m01 ~]# iptables -t nat -nL
Chain PREROUTING (policy ACCEPT)
target     prot opt source               destination         

Chain INPUT (policy ACCEPT)
target     prot opt source               destination         

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination         

Chain POSTROUTING (policy ACCEPT)
target     prot opt source               destination         
SNAT       all  --  172.16.1.0/24        0.0.0.0/0            to:10.0.0.61

去db01上关闭网卡eth0

#关闭eth0网卡
[root@db01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
BOOTPROTO=none
NAME=eth0
DEVICE=eth0
ONBOOT=no       #把eth0网卡关闭
IPADDR=10.0.0.51
PREFIX=24
GATEWAY=10.0.0.254
DNS1=10.0.0.254
或者
[root@db01 ~]# ifdown eth0  #暂时将eth0网卡关闭
#可以利用m01进行ssh远程连接db01的内网地址
[root@m01 ~]# ssh 172.16.1.51
Last login: Wed Jul  3 11:12:04 2019 from 10.0.0.1
[root@db01 ~]# 

#修改eth1网卡网关
[root@db01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth1
TYPE=Ethernet
BOOTPROTO=static
IPADDR=172.16.1.51
PREFIX=24
NAME=eth1
DEVICE=eth1
ONBOOT=yes
GATEWAY=172.16.1.61 #修改网关为m01的内网地址
DNS1=223.5.5.5  #DNS按原理来说会自动分配,如果不通的话就加入此条DNS解析即可
[root@db01 ~]# systemctl restart network    #重启网卡
[root@db01 ~]#
[root@db01 ~]# ping baidu.com   #可以上网了
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=127 time=7.74 ms
64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=127 time=11.8 ms
^C
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 7.249/9.136/11.833/1.812 ms
[root@db01 ~]#

image

【防火墙】面试题

1.选择

1.1 rule permit ip source 210.78.1.1 0.0.255.255 destination202.38.5.2 0.0.0.0 的含义是(B)

资料连接:https://bbs.51cto.com/thread-889882-1.html

A.允许主机210.78.1.1访问主机202.38.5.2

B.允许210.78.0.0的网络访问202.38.0.0的网络

C.允许主机202.38.5.2 访问网络210.78.0.0

D.允许210.78.0.0的网络访问主机202.38.5.2

1.2在防火墙上允许tcp和udp端口21、 23、 25访问内网,下列那张协议包可以进来 (多选)A_C_D
A.SMTP
B.STP
C.FTP
D.Telnet
E.HTTP
F.POP3

1.3 以下不属于防火墙能够实现的功能是(B )
A、网络地址转换

B、差错控制

C、数据包过滤

D、数据转发

1.4 哪个不属于iptables的表(D)

filter

nat

mangle

INPUT

1.5 以下对防火墙的描述正确的是:(B)

完全阻隔了网络

能在物理层隔绝网络

仅允许合法的通讯

无法阻隔黑客的侵入

2 填空

2.1 防火墙是设置在被保护网络和外部网络之间的一道屏障,以防止破坏性侵入(内部网络)

2.2 在centos7下,我想关闭掉防火墙,应该用命令systemctl stop firewalld来关闭掉。如果以后开机都不想它启动起来,执行___systemctl disable firewalld____命令

2.3 在Centos7 配置ip转发需要在/etc/sysctl.conf里加入net.ipv4.ip_forward=1执行sysctl -p命令后生效

相关链接https://blog.csdn.net/drxRose/article/details/88797494

3 简答

iptables save //保存规则
systemctl restart iptables    //重启iptables服务以便生效

相关链接https://www.cnblogs.com/wajika/p/6382853.html

image
filter表:
​INPUT   作用:用于发送到本地套接字的数据包。
​FORWARD 作用:对于正在通过该框路由的数据包。
​OUTPUT  作用:用于本地生成的数据包。

nat表:
​PREROUTING  作用:因为他们一进来就改变了包
​OUTPUT      作用:用于在路由之前更改本地划分的数据包。
​POSTROUTING 作用:改变包,因为它们即将离开 

3.1 防火墙策略,开放服务器80端口,禁止来自10.0.0.188的地址访问服务器80端口的请求。

iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp -d 10.0.0.188 --dport 80 -j DROP

3.2 防火墙策略,实现把访问10.0.0.3:80的请求转到172.16.1.17:8080上。

iptables -t nat -A PREROUTING -d 10.00.3 -p tcp --dport 80 -j DNAT --to-destination 172.16.1.17:8080

3.3 防火墙策略配置说明。阐述出10.10.10.1访问192.168.1.1所有端口策略需要的配置过程

3.4 iptables使用的表有哪些?请简要的描述iptables使用的表以及它们所支持的链。

Filter表、Nat表、Mangle表、Raw表

Filter表 : Filter表是iptables中使用的默认表,它用来过滤网络包。如果没有定义任何规则,Filter表则被当作默认的表,并且基于它来过滤。支持的链有​INPUT链,​OUTPUT链,​FORWARD链。

Nat表 : Nat表主要用于网络地址转换。根据表中的每一条规则修改网络包的IP地址。流中的包仅遍历一遍Nat表。例如,如果一个通过某个接口的包被修饰(修改了IP地址),该流中其余的包将不再遍历这个表。通常不建议在这个表中进行过滤,由NAT表支持的链称为​PREROUTING链,​POSTROUTING链和​OUTPUT链。

Mangle表 : 正如它的名字一样,这个表用于校正网络包。它用来对特殊的包进行修改。它能够修改不同包的头部和内容。Mangle表不能用于地址伪装。支持的链包括​PREROUTING链,​OUTPUT链,​Forward链,​Input链和​POSTROUTING链。

Raw表 : Raw表在我们想要配置之前被豁免的包时被使用。它支持​PREROUTING链和​OUTPUT链。

3.5 屏蔽192.168.1.5访问本机dns服务端口:

iptables -A INPUT -s 192.168.1.5 -j DROP

3.6 允许10.1.1.0/24访问本机的udp 8888 9999端口

相关链接:https://blog.csdn.net/zhaoyangjian724/article/details/52572632

iptables -A INPUT -p udp -s 10.1.1.0/24 -m multiport ! --dport 8888,9999 -j DROP 

3.7 iptables禁止10.10.10.1访问本地80端口

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

3.8 如何利用iptables屏蔽某个IP对80端口的访问

iptables -A INPUT -p tcp -s #屏蔽的IP# --dport 80 -j DROP

3.9 写出iptables四表五链,按照优先级排序

iptables四个表与五个链间的处理关系:https://www.bbsmax.com/A/kmzLBxAG5G/

默认表是filter(没有指定表的时候就是filter表)

iptables的四表优先级:raw--->mangle--->nat--->filte
​​filter:一般的过滤功能
​​nat:用于nat功能(端口映射,地址映射等)
​​mangle:用于对特定数据包的修改
​​raw:有限级最高,设置raw时一般是为了不再让iptables做数据包的链接跟踪处理,提高性能

iptables的五链:PREROUTING,INPUT,FORWARD,OUTPUT,POSTROUTING
​​PREROUTING:数据包进入路由表之前
​​INPUT:通过路由表后目的地为本机
​​FORWARDING:通过路由表后,目的地不为本机
​​OUTPUT:由本机产生,向外转发
​​POSTROUTIONG:发送到网卡接口之前

3.10如何通过iptables将本地80端口的请求转发到8080端口,当前主机IP为192.168.2.1

3.11请写一条命令,只允许80端口,其他端口都拒绝,eth1网卡ip为192.168.1.12

3.12限制连接到192.168.100.100:8080 后端服务最大1000

3.13请简述防火墙的基本功能和特点

3.14内网环境中,A(10.0.0.1)机与B(10.0.0.2)机互通,现在需要在A机上简历安全策略,禁止B机访问A机的SSH服务(22端口)有几种方法?如何操作?

3.15service iptables stop 与 iptables -F 有何区别?

3.16Iptables封禁eth0网卡与192.168.1.1通讯的所有数据包

3.17Iptables禁止所有到本机(eth0:10.10.10.200)22端口的TCP访问

3.18如何禁止192.168.500.2访问本机ssh端口?解释这条规则:/sbin/iptables -t nat -A PREROUTING -d 192.168.20.99/32 -p udp -m udp --dport 99 -j DNAT --to-destination 192.168.20.11

3.19有一台主机内网IP:10.4.82.200,公网IP:118.186.111.121,现欲使10.4.82.0/24网段,(该网段默认网关为10.4.82.254),使用10.4.82.200作为跳板机出往,请给出配置方法

3.20配置跳板机主机的某个内核参数,并使其生效

3.21配置跳板机的iptables防火墙规则

3.22把10.10.0.0 网段流出的数据的原地址修改为66.66.66.66

3.23本机有两张网卡,分别为eth0和eth1,请写出仅允许从eth0访问本机web(80)服务的iptables规则,允许eth1所有访问

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容