甲骨文Oracle Cloud免费VPS Ubuntu 18.04/20.04 系统防火墙(UFW和iptables)的正确配置方法

之前写过一篇文章,记录如何配置甲骨文的CentOS 7 系统防火墙(firewalld和iptables)。但是改成Ubuntu系统后,启用UFW防火墙后,发现重启系统后,ufw会变成未激活状态(inavtive),设置的iptables也恢复成了默认状态。下面介绍一下大佬们总结的几种解决办法。

一 甲骨文控制台开放端口

不管哪种办法,先在甲骨文网页控制台开放端口是基本操作。这里复制一下之前的内容。

登陆Oracle Cloud网页后台,进行设置

进入“实例”,点击“实例信息”下的“虚拟云网络”右侧类似“VirtualCloudNetwork-2019****-****”的按钮并进入;

在“(根)区间中的子网”下,如果存在多个类似“公共子网 pbOp:***-**-1 ”的项目列表,就随便点进去一个

在“安全列表”下,点击并进入“Default Security List for VirtualCloudNetwork-2019****-****”。

编辑“入站规则”下“目的地端口范围”为22那条规则,或者参照这条规则新建也可以。
将“目的地端口范围”下的“22”改为“22,80,443”,然后“保存更改”即可。 系统会自动根据添加的IP生成新的两条规则。

注意:每个端口或范围间隔需要英文逗号;如果需要增加UDP端口,就在“IP 协议 ”下选择“UDP”。

二 大佬们的几种方法

2.1 彻底禁用防火墙

简单粗暴,能用就行。不太推荐。

2.1.1 直接删除iptables规则

sudo rm -rf /etc/iptables && reboot

2.1.2 开放所有端口

sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -F
sudo apt-get purge netfilter-persistent
reboot

2.2 使用iptables开放端口

这个大佬使用iptalbes开放了必要的端口,可以用。

sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 8888 -j ACCEPT 
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -s 0.0.0.0/0 -p tcp --dport 443 -j ACCEPT 
sudo iptables-save
sudo apt-get update
sudo apt-get install iptables-persistent -y
sudo netfilter-persistent save
sudo netfilter-persistent reload

三 如何正确使用UFW

首先理解UFW只是iptables的配置工具,所以想用UFW就不要把iptables删除或禁用,放着不管就好了。但问题是,就如开头所说,重启会使配置失效。下面来说一下正确使用UFW的流程。

3.1 安装相关软件包

sudo apt-get install iptables-persistent netfilter-persistent ufw

3.2 修改UFW启动配置文件

sudo vi /lib/systemd/system/ufw.service

增加一行“After=netfilter-persistent.service”到[Unit]段最后,改成这个样子:

[Unit]
Description=Uncomplicated firewall
Documentation=man:ufw(8)
DefaultDependencies=no
Before=network.target
After=netfilter-persistent.service

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/lib/ufw/ufw-init start quiet
ExecStop=/lib/ufw/ufw-init stop

[Install]
WantedBy=multi-user.target

重启系统。

3.3 正常配置UFW防火墙

按常规方式开放22,80,443端口即可。

sudo ufw reset

sudo ufw default deny incoming
sudo ufw default allow outgoing

sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https

sudo ufw enable

这样应该就可以了。

4 thoughts on “甲骨文Oracle Cloud免费VPS Ubuntu 18.04/20.04 系统防火墙(UFW和iptables)的正确配置方法

  1. 路人

    Ubuntu镜像使用UFW存在已知问题 见https://docs.oracle.com/en-us/iaas/Content/knownissues.htm#ufw
    digitalocean的建议是同一时间只用一个防火墙,避免配置冲突导致debug困难 见https://www.digitalocean.com/community/tutorials/initial-server-setup-with-ubuntu-22-04#step-4-setting-up-a-firewall
    仅供参考

    回复
  2. Pingback引用通告: 使用K3s部署预算友好的ARM-X86混合Kubernetes集群 – Frank's Weblog

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注