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

관련 정보