设为首页
收藏本站
开启辅助访问
切换到窄版
登录
立即注册
快捷导航
发布信息
搜索
搜索
首页
优惠促销
云服务器
独立服务器
站群服务器
母鸡服务器
服务器托管
全球云服务器
技术文档
联系
每日签到
本版
文章
帖子
用户
主机测评网
»
论坛
›
技术文档
›
其他教程
›
Linux服务器中设置iptables防火墙规则?
返回列表
发新帖
Linux服务器中设置iptables防火墙规则?
[复制链接]
|
主动推送
24
|
0
|
2024-9-11 15:03:04
|
显示全部楼层
|
阅读模式
对于WireGuard及用途,您需要设置和配置服务器防火墙规则。需要配置NAT(网络地址转换),以允许WireGuard客户端访问互联网。在Linux中,我们使用一个术语叫做IP伪装。它的意思是一对多的NAT(1:Many)。我们还需要一个FORWARD链规则。本文介绍了如何在Linux中为WireGuard设置NAT和FORWARD防火墙规则。
步骤1:设定NAT防火墙规则
语法如下:
# iptables -t nat -I POSTROUTING 1 -s {sub/net} -o {interface} -j MASQUERADE
确保所有出站数据包通过VPN编译:
# iptables -t nat -I POSTROUTING 1 -s 10.8.1.0/24 -o eth0 -j MASQUERADE
其中
-t nat :为WireGuard设置nat表。
-I POSTROUTING 1 :在位置1插入规则,用于改变即将发出POSTROUTING链的数据包。
-s 10.8.1.0/24 :只有当源地址由WireGuard wg0接口创建时才进行NAT。
-o eth0:接口名称,通过该接口将发送数据包。在这种情况下,eth0连接到Internet。
-j MASQUERADE: 告诉(跳转)如果数据包根据给定的条件匹配,该怎么做。MASQUERADE目标只在nat表中有效,在POSTROUTING链中。该规则负责为所有WireGuard客户端路由到互联网的流量。
步骤2:接受wg0接口创建的所有流量
允许wg0接口上的所有流量: 上面的规则允许目的地为wg0的数据包。
# iptables -I INPUT 1 -i {interface} -j ACCEPT
# iptables -I INPUT 1 -i wg0 -j ACCEPT
步骤3:配置FORWARD规则
我们必须通过设置FORWARD规则允许数据包通过WireGuard服务器路由。语法为:
# iptables -I FORWARD 1 -i eth0 -o wg0 -j ACCEPT
# iptables -I FORWARD 1 -i wg0 -o eth0 -j ACCEPT
步骤4:打开WireGuard UDP端口#51194
最后,如下打开UDP端口号51194:
# iptables -I INPUT 1 -i eth0 -p udp --dport 51194 -j ACCEPT
步骤5:删除WireGuard iptables规则的命令
我们可以通过删除所有添加的iptabes规则来撤消所有命令,如下所示:
# iptables -t nat -D POSTROUTING -s 10.8.1.0/24 -o eth0 -j MASQUERADE
# iptables -D INPUT -i wg0 -j ACCEPT
# iptables -D FORWARD -i eth0 -o wg0 -j ACCEPT
# iptables -D FORWARD -i wg0 -o eth0 -j ACCEPT
# iptables -D INPUT -i eth0 -p udp --dport 51194 -j ACCEPT
步骤6:在Linux上启用IP转发
对于IPv4,我们将以下Linux内核变量设置为在wg0上接受传入的网络数据包,然后传递到另一个网络接口(例如eth0),然后进行相应的转发:
# sysctl -w net.ipv4.ip_forward=1
对于IPv6,请尝试以下sysctl命令:
# sysctl -w net.ipv6.conf.all.forwarding=1
步骤7:更新Wireguard配置文件以获得防火墙和路由支持
我们需要告诉WireGuard命令和脚本片段,这些命令和脚本片段将通过以下两个指令执行:
# Turn on NAT when wg0 comes up #
PostUp = /path/to/add-nat-routing.sh
# Turn of NAT when wg0 goes down #
PostDown = /path/to/remove-nat-routing.sh
放在一起:WireGuard的防火墙规则
如下更新您的/etc/wireguard/wg0.conf文件:
# vim /etc/wireguard/wg0.conf
附加在[Interface]部分:
PostUp = /etc/wireguard/helper/add-nat-routing.sh
PostDown = /etc/wireguard/helper/remove-nat-routing.sh
如下图所示:
使用mkdir命令创建一个新目录:
# mkdir -v /etc/wireguard/helper/
包含使用cat命令显示的add-nat-routing.sh :
# cat /etc/wireguard/helper/add-nat-routing.sh
和:
# cat /etc/wireguard/helper/remove-nat-routing.sh
确保也使用文本编辑器创建以下文件:
# vim /etc/sysctl.d/10-wireguard.conf
添加以下文本:
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
重新加载所有更改并打开NAT路由:
# sysctl -p /etc/sysctl.d/10-wireguard.conf
# chmod -v +x /etc/wireguard/helper/*.sh
# systemctl restart wg-quick@wg0.service
验证
从客户端测试您的配置。查看是否可以使用ping命令,dig命令 / host命令和Web浏览器访问Internet 。
总结
在本文中,我们向您展示了如何在Linux中为WireGuard VPN客户端启用IP转发和NAT规则,以为内部客户端提供Internet访问。
回复
使用道具
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
立即注册
本版积分规则
发表回复
回帖后跳转到最后一页
尘埃416
142
主题
0
回帖
10
积分
新手上路
新手上路, 积分 10, 距离下一级还需 40 积分
新手上路, 积分 10, 距离下一级还需 40 积分
积分
10
加好友
发消息
回复楼主
返回列表
网络技术教程
软件使用教程
Windows教程
Centos教程
Ubuntu教程
Linux其他教程
综合教程
其他教程
其他文档
服务器商家推荐
华夏互联
蓝速云
米图云
全球云
文章
1
苹果电脑MAC系统登录Windows远程桌面
2
Debian拓展硬盘工具。cloud-utils-growpart、xfsprogs
3
安卓Android手机怎么使用V2rayNG?
4
WINDOWS系统电脑怎么使用WINXRAY?
5
notepad++.8.5.7编辑器,代码编辑器
6
DirectX修复工具增强版_V4.3.0.40864版本DLL修复工具C++安装
7
Visual C++运行库合集包完整版VisualCppRedist_AIO_x86_x64
8
ChromeSetup谷歌浏览器一键安装