使用ufw配置NAT masquerade
安装UFW
sudo apt install ufw基本配置
IPv6
如果Ubuntu server已经激活了IPv6,则确保UFW已经配置支持IPv6,就可以同时管理IPv6和IPv4规则。修改/etc/default/ufw,确保已经激活IPV6
...
IPV6=yes
...设置默认规则
默认时,UFW设置了拒绝所有进入连接并允许所有外出连接。为了设置默认规则,使用以下命令:
拒绝进入连接策略
sudo ufw default deny incoming显示输出
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)允许外出连接策略
显示输出
允许SSH连接
警告:务必允许SSH连接,否则一旦启动防火墙,将无法远程维护服务器。
这个ssh时根据/etc/services文件配置设置端口,允许22端口。也可以使用如下命令
显示输出
当然,如果需要设置其他防火墙端口,例如SSH是监听2222端口,则使用命令
用户添加的规则,例如上述allow 22会被加入配置文件/etc/ufw/user.rules,内容如下:
激活UFW
在激活ufw的时候,会提示可能会中断已经存在的SSH连接。由于我们已经设置了允许SSH连接的规则,所以可以输入y继续。
此时防火墙规则已经激活,此时,可以使用以下命令检查
显示输出
允许其他访问连接
常用的服务端口开启:DNS,WEB
如果需要X11连接,则会使用一个端口范围
6000-60007
特定IP地址允许访问
特定IP地址对端口的访问
允许子网访问
允许子网访问指定端口22
允许特定网络接口
例如允许访问MySQL数据库端口3306
拒绝某个特定IP地址访问
删除规则
基于规则编号删除
首先检查规则编号
例如输出
现在删除规则2
基于激活的规则
或者
停止或重置规则(可选)
停止UFW
重置UFW
NAT masquerade
要使用ufw设置NAT,从内部网络访问外部网络,需要启用IP FORWARD。
注意:ufw有关masquerading的规则被分成了2个不同文件,分别是
ufw命令行规则前执行的,和ufw命令行规则之后执行的。
在配置文件
/etc/default/ufw修改参数DEFAULT_FORWARD_POLICY:
默认配置是
DEFAULT_FORWARD_POLICY="DROP"
修改
/etc/ufw/sysctl.conf,取消注释行:
如果是IPv6还要设置
在
/etc/ufw/before.rules添加规则。默认规则配置filter表。nat表中激活masquerading,注意规则添加在filter规则之前:
我的主机设备是一块无线网卡
wlp3s0(对外)和一块有线网卡enp0s25(对内192.168.0.0/24),所以设置调整成:
但是内网不能访问外部,最后改成取消接口限制才成功,暂时没有搞清
激活修改:
端口映射
作为局域网的网关防火墙,还需要将外部网络和内部服务器端口映射起来对外提供服务。
简单的端口映射(ssh端口)
另外,我有一个实践:Ubuntu 16 NFS设置 设置了相对复杂的NFS穿透防火墙,可参考。
参考
Last updated
Was this helpful?