You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

生产服务器UFW规则配置咨询:限制SSH及多数端口仅允许指定IP直连与WireGuard访问

生产服务器UFW规则配置咨询:限制SSH及多数端口仅允许指定IP直连与WireGuard访问

嗨,针对你生产服务器的UFW配置需求,我给你梳理了一套安全且符合要求的调整方案,一步步操作就不会有问题:

第一步:先备份现有UFW规则(重中之重!)

防止误操作导致无法连接服务器,先把当前规则导出备份:

sudo ufw show added > ufw_rules_backup.txt

第二步:清理不合理的现有规则

当前你的UFW允许任意IP访问OpenSSH(规则[2]和IPv6的规则[6]),这不符合你“仅允许指定IP和VPN访问”的需求,需要删除:

# 删除IPv4的任意IP SSH规则
sudo ufw delete 2
# 删除IPv6的任意IP SSH规则(如果不需要IPv6可跳过)
sudo ufw delete 6

你的自定义IP(YYY.YYY.YYY.YYY)全端口访问规则(规则[3])可以保留,它已经满足你直连所有端口的需求。

第三步:允许WireGuard子网访问所有端口

你的WireGuard服务器使用10.8.0.1/24网段,所以需要添加规则允许整个VPN子网的客户端访问服务器所有端口:

# IPv4规则
sudo ufw allow in from 10.8.0.0/24 to any
# 如果你的WireGuard配置了IPv6,对应你的IPv6子网(比如fdxx:xxxx:xxxx::/64)添加:
# sudo ufw allow in from fdxx:xxxx:xxxx::/64 to any

第四步:开放SMB端口给所有IP

根据你的需求,SMB需要对所有IP开放,默认SMB使用139和445端口,执行以下命令添加规则:

# 开放SMB的TCP端口(IPv4)
sudo ufw allow in 139/tcp
sudo ufw allow in 445/tcp
# 若需要支持IPv6,添加对应规则:
# sudo ufw allow in 139/tcp (v6)
# sudo ufw allow in 445/tcp (v6)

如果你的SMB用了自定义端口,把上面的端口号替换成你实际使用的即可。

第五步:设置默认入站规则为拒绝

这一步能确保所有未被明确允许的流量都被阻挡,是实现“仅允许指定IP和VPN访问”的关键:

sudo ufw default deny incoming

⚠️ 注意:执行这条命令前,请务必确认你已经配置好自己IP和WireGuard的访问规则,否则会导致你无法直连服务器!

第六步:验证规则并生效

最后检查调整后的规则是否符合预期,然后重启UFW确保规则生效:

# 查看编号形式的规则列表
sudo ufw status numbered
# 重启UFW应用规则
sudo ufw reload

关于WireGuard配置的说明

你当前的/etc/wireguard/wg0.conf里的PostUp/PreDown规则是正确的,它们负责处理VPN的路由转发和NAT,不需要修改,已经能满足VPN客户端访问服务器及出站互联网的需求。

完成以上操作后,你的服务器会实现:

  • 只有你的IP(YYY.YYY.YYY.YYY)可以直连所有端口(包括SSH、Java端口等)
  • 所有其他IP必须通过WireGuard VPN才能访问服务器的非SMB端口
  • SMB端口对所有IP开放,满足业务需求

备注:内容来源于stack exchange,提问作者John14

火山引擎 最新活动