2018-06-28 08:53:07 +08:00
|
|
|
|
如何暂时禁用 iptables 防火墙
|
2018-06-21 16:13:59 +08:00
|
|
|
|
======
|
|
|
|
|
|
2018-06-30 09:08:02 +08:00
|
|
|
|
> 了解如何在 Linux 中暂时禁用 iptables 防火墙来进行故障排除。还要学习如何保存策略以及如何在启用防火墙时恢复它们。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
![How to disable iptables firewall temporarily][1]
|
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
有时你需要关闭 iptables 防火墙来做一些连接故障排除,然后你需要重新打开它。在执行此操作时,你还需要保存所有[防火墙策略][2]。在本文中,我们将引导你了解如何保存防火墙策略以及如何禁用/启用 iptables 防火墙。有关 iptables 防火墙和策略的更多详细信息[请阅读我们的文章][3]。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
### 保存 iptables 策略
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
临时禁用 iptables 防火墙的第一步是保存现有的防火墙规则/策略。`iptables-save` 命令列出你可以保存到服务器中的所有现有策略。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
root@kerneltalks # # iptables-save
|
|
|
|
|
# Generated by iptables-save v1.4.21 on Tue Jun 19 09:54:36 2018
|
|
|
|
|
*nat
|
|
|
|
|
:PREROUTING ACCEPT [1:52]
|
|
|
|
|
:INPUT ACCEPT [1:52]
|
|
|
|
|
:OUTPUT ACCEPT [15:1140]
|
|
|
|
|
:POSTROUTING ACCEPT [15:1140]
|
|
|
|
|
:DOCKER - [0:0]
|
|
|
|
|
---- output trucated----
|
|
|
|
|
|
|
|
|
|
root@kerneltalks # iptables-save > /root/firewall_rules.backup
|
|
|
|
|
```
|
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
因此,iptables-save 是可以用来备份 iptables 策略的命令。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
### 停止/禁用 iptables 防火墙
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
对于较老的 Linux 内核,你可以选择使用 `service iptables stop` 停止 iptables 服务,但是如果你在用新内核,则只需清除所有策略并允许所有流量通过防火墙。这和你停止防火墙效果一样。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
使用下面的命令列表来做到这一点。
|
2018-06-30 09:08:02 +08:00
|
|
|
|
|
2018-06-21 16:13:59 +08:00
|
|
|
|
```
|
|
|
|
|
root@kerneltalks # iptables -F
|
|
|
|
|
root@kerneltalks # iptables -X
|
|
|
|
|
root@kerneltalks # iptables -P INPUT ACCEPT
|
|
|
|
|
root@kerneltalks # iptables -P OUTPUT ACCEPT
|
|
|
|
|
root@kerneltalks # iptables -P FORWARD ACCEPT
|
|
|
|
|
```
|
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
这里 –
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-30 09:08:02 +08:00
|
|
|
|
* `-F`:删除所有策略链
|
|
|
|
|
* `-X`:删除用户定义的链
|
|
|
|
|
* `-P INPUT/OUTPUT/FORWARD` :接受指定的流量
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
完成后,检查当前的防火墙策略。它应该看起来像下面这样接受所有流量(和禁用/停止防火墙一样)
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# iptables -L
|
|
|
|
|
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
|
|
|
|
|
```
|
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
### 恢复防火墙策略
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
故障排除后,你想要重新打开 iptables 的所有配置。你需要先从我们在第一步中执行的备份中恢复策略。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
root@kerneltalks # iptables-restore </root/firewall_rules.backup
|
|
|
|
|
```
|
2018-06-30 09:08:02 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
### 启动 iptables 防火墙
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
然后启动 iptables 服务,以防止你在上一步中使用 `service iptables start` 停止了它。如果你已经停止服务,那么只有恢复策略才能有用。检查所有策略是否恢复到 iptables 配置中:
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
# iptables -L
|
|
|
|
|
Chain INPUT (policy ACCEPT)
|
|
|
|
|
target prot opt source destination
|
|
|
|
|
|
|
|
|
|
Chain FORWARD (policy DROP)
|
|
|
|
|
target prot opt source destination
|
|
|
|
|
DOCKER-USER all -- anywhere anywhere
|
|
|
|
|
DOCKER-ISOLATION-STAGE-1 all -- anywhere anywhere
|
|
|
|
|
-----output truncated-----
|
|
|
|
|
```
|
|
|
|
|
|
2018-06-28 08:53:07 +08:00
|
|
|
|
就是这些了!你已成功禁用并启用了防火墙,而不会丢失你的策略规则。
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
via: https://kerneltalks.com/howto/how-to-disable-iptables-firewall-temporarily/
|
|
|
|
|
|
|
|
|
|
作者:[kerneltalks][a]
|
|
|
|
|
选题:[lujun9972](https://github.com/lujun9972)
|
2018-06-28 08:53:07 +08:00
|
|
|
|
译者:[geekpi](https://github.com/geekpi)
|
2018-06-30 09:08:02 +08:00
|
|
|
|
校对:[wxy](https://github.com/wxy)
|
2018-06-21 16:13:59 +08:00
|
|
|
|
|
|
|
|
|
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
|
|
|
|
|
|
|
|
|
[a]:https://kerneltalks.com
|
|
|
|
|
[1]:https://a2.kerneltalks.com/wp-content/uploads/2018/06/How-to-disable-iptables-firewall-temporarily.png
|
|
|
|
|
[2]:https://kerneltalks.com/networking/configuration-of-iptables-policies/
|
|
|
|
|
[3]:https://kerneltalks.com/networking/basics-of-iptables-linux-firewall/
|