# Ubuntu 18.04 配置 IPtables

提示

IPtables 是一款 Linux 系统上的防火墙

安装 IPtables

apt install iptables

查看防火墙信息

iptables -L -n

显示如下表示安装成功

root@VM-0-3-ubuntu:~# 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

添加配置文件 iptables.rules

vi /etc/iptables.rules

写入以下常用规则(示例)并退出

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0] 
:FORWARD ACCEPT [0:0] 
:OUTPUT ACCEPT [0:0] 
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT 
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited 
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

从文件加载规则

iptables-restore < /etc/iptables.rules

# 保存命令规则

IPtables 命令添加的规则默认会在服务器重启后失效,且不会保存到文件

注意

需要先将规则保存到文件,然后再从文件中加载

  • 保存规则到文件
iptables-save > /etc/iptables.rules
  • 从文件中加载规则
iptables-restore < /etc/iptables.rules

# 恢复设置

服务器重启后 IPtables 规则会被重置,需要手动从文件中加载

注意

在网卡中添加启动脚本的方式已不再适用于 Ubuntu 18.04 或更高版本

编辑配置文件

vi /etc/rc.local

添加 iptables-restore < /etc/iptables.rules 即可