!
也想出现在这里? 联系我们
广告位
当前位置:首页>教程分享>服务器教程>Linux服务器中设置iptables防火墙规则?

Linux服务器中设置iptables防火墙规则?

对于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

如下图所示:

Linux服务器中设置iptables防火墙规则?

使用mkdir命令创建一个新目录:

# mkdir -v /etc/wireguard/helper/

包含使用cat命令显示的add-nat-routing.sh :

# cat /etc/wireguard/helper/add-nat-routing.sh

Linux服务器中设置iptables防火墙规则?

和:

# cat /etc/wireguard/helper/remove-nat-routing.sh

Linux服务器中设置iptables防火墙规则?

确保也使用文本编辑器创建以下文件:

# 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 [email protected]

验证

从客户端测试您的配置。查看是否可以使用ping命令,dig命令 / host命令和Web浏览器访问Internet 。

总结

在本文中,我们向您展示了如何在Linux中为WireGuard VPN客户端启用IP转发和NAT规则,以为内部客户端提供Internet访问。

给TA打赏
共{{data.count}}人
人已打赏
服务器教程

修改Debian系统的APT软件源:轻松上手

2021-4-17 17:37:34

服务器教程

宝塔面板nginx设置禁止通过IP直接访问网站80、443端口防止SSL泄露IP恶意解析

2021-4-17 17:37:36

声明 本站上的部份代码及教程来源于互联网,仅供网友学习交流,若您喜欢本文可附上原文链接随意转载。无意侵害您的权益,请发送邮件至 [email protected] 或点击右侧 私信:吉吉国王 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索
OneEase