我在 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}
我受到这篇文章的启发: