Iptables

OpenVPN & iptables - 允許流量到伺服器端的某些特定主機

  • April 10, 2018

我在 Raspberry Pi 上設置了一個 OpenVPN 伺服器,並根據HOWTO對其進行了配置。我想從客戶端公開伺服器子網(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

僅此而已,我可以看到所有我不想要的主機。我究竟做錯了什麼?

感謝您的幫助。

第 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

引用自:https://unix.stackexchange.com/questions/436677