OpenVPN 和 iptables - 允许流量到达服务器端的某些特定主机

OpenVPN 和 iptables - 允许流量到达服务器端的某些特定主机

我在 Raspberry Pi 上设置了一个 OpenVPN 服务器并根据如何。我想公开服务器子网 (192.168.123.0/24) 中的某些主机和客户端。

我用了

push route 192.168.123.0 255.255.255.0

在 server.conf 文件中。我还设置了iptables以下方式:

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#allow ssh and vpn on pi - working fine
...

根据OpenVPN - 访问策略这应该允许流量转发到特定主机或整个子网(从 HOWTO 中提取的行 - 这些地址不是我的实际地址范围):

# Employee rule
iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ACCEPT

# Sysadmin rule
iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ACCEPT

# Contractor rule
iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.66.4.12 -j ACCEPT

这都没有帮助。但是如果我设置

iptables -P FORWARD ACCEPT

没有别的,我可以看到所有的主机,这是我不想要的。我究竟做错了什么?

感谢您的帮助。

答案1

第 8 层始终存在错误!

我忘记允许流量通过我的隧道设备传回。

解决办法是

#Set default policy of chain 
iptables -P FORWARD DROP

#allow traffic to route from VPN subnet to specific host in subnet
iptables -A FORWARD -i tun0 -s {VPN subnet} -d {host in server subnet} -j ACCEPT
#allow traffic from host in server subnet back to VPN subnet
iptables -A FORWARD -o tun0 -s {host in server subnet} -d {VPN subnet}

我受到这篇文章的启发:

https://forums.openvpn.net/viewtopic.php?t=20369

相关内容