
TUN 연결을 통해 조정하려는 기계가 세 대 있습니다.
FREEBSD
VPN의
로컬 서브넷 10.0.202.1/24에서 OpenVPN 서버(tun) 10.0.200.21/24를 실행하는 상자
REMOTE
VPN의 공용 IP 10.0.202.6/24
WEBSERVER
로컬 서브넷의 10.0.200.31/24
REMOTE
OpenVPN을 통해 VPN에 연결할 수 FREEBSD
있으며 연결은 양호하지만 잘못 구성되었습니다. 의 브라우저 에 의 IP 주소를 입력하여 REMOTE
에서 까지 연결하려고 하면 에 연결할 수 없습니다. 로컬 서브넷에 직접 연결하면 도달 가능합니다 .WEBSERVER
WEBSERVER
REMOTE
WEBSERVER
REMOTE
문제를 해결하는 동안 다음을 배웠습니다.
REMOTE
핑FREEBSD
과 SSH도 가능합니다.FREEBSD
의 이더넷 포트 에 설정된 패킷 캡처는REMOTE
의 VPN IP 10.0.202.6과 주고받는 패킷을 캡처하지 않습니다. 따라서 REMOTE의 패킷은 로컬 서브넷에 도달하지 않습니다.- 그만큼openvpn.log파일에
FREEBSD
다음 줄이 있습니다.GET INST BY VIRT: 10.0.200.31 [failed]
FREEBSD
따라서 OpenVPN은 TUN 장치에서 수신된 패킷을 '의 이더넷 어댑터로 전달하고 로컬 서브넷으로 전달 하지 않는 것 같습니다 .
내 server.conf 파일에 다음 줄이 있습니다.
push "route 10.0.200.0 255.255.255.0"
이 줄을 추가하려고 시도했지만 도움이 되지 않았습니다.
route 10.0.200.0 255.255.255.0
라우팅 테이블은 다음과 같습니다.FREEBSD
라우팅 테이블 인터넷: 대상 게이트웨이 플래그 참조 Netif Expire 사용 기본값 10.0.200.1 UGS 0 4306 re0 10.0.200.0 링크#9 U 0 61582 re0 10.0.200.21 링크#9 UHS 0 41 lo0 10.0.201.0 10.0.200.1 UGS 0 0 re0 10.0.202.0 10.0.202.2 UGS 0 0 tun0 10.0.202.1 링크#12 UHS 0 0 lo0 10.0.202.2 링크#12 UH 0 0 tun0 로컬호스트 링크#11 UH 0 193743 lo0
메시지 에 대해 온라인에서 읽었 GET INST BY VIRT: 10.0.200.31 [failed]
으며 Linux 시스템에서는 다음 명령을 실행하는 것이 좋습니다. 나는 그것을 이해하지 못하고 이상한 구성에
echo 1 > /proc/sys/net/ipv4/ip_forward
들어가고 싶지 않기 때문에 그것을 실행하는 것이 두렵습니다 . FREEBSD
또한 저는 OpenVPN이 닫힐 때 적절하게 관리되고 제거되도록 필요한 구성을 자동으로 생성하도록 server.conf 파일을 수정하는 솔루션을 강력히 선호합니다.
이 문제에 대한 해결책은 무엇입니까?
답변1
문제를 발견했습니다. 위에서 언급한 FreeBSD 기반 NAS 어플라이언스 소프트웨어인 FreeNAS는 0으로 설정 FREEBSD
되어 있는 것으로 나타났습니다 net.inet.ip.forwarding
. 이는 명령을 사용하여 볼 수 있습니다 sysctl -a | grep net.inet.ip.forwarding
. 패킷을 전달하려면 sysctl net.inet.ip.forwarding=1
.
이 변경 사항은 재부팅 후에도 유지되지 않습니다. /etc/rc.conf 파일을 사용하여 set 해야 할 수도 있을 것 같은데 gateway_enable="YES"
, 지금까지 이 설정은 재부팅할 때까지 처리되지 않는 것으로 나타났으며, 불행히도 FreeNAS에서는 재부팅할 때마다 rc.conf가 덮어쓰이는 것 같습니다. 이 변수를 시스템의 기본값을 저장하고 rc.conf의 사용자 정의 구성으로 덮어쓰는 /etc/defaults/rc.conf에 쓰는 것이 가능할 수 있지만 /etc/defaults/rc.conf 파일 상단에 편집하지 말라는 경고가 있습니다.
따라서 이 문제가 완전히 해결된 것은 아니지만 적어도 문제가 무엇인지 파악했습니다. 이제 이 내용을 이해했으므로 로컬 서브넷에서 https 웹 관리 어플라이언스에 로그인하는 데 문제가 있음을 알게 되었습니다. 그것은 해결해야 할 또 다른 문제가 될 것입니다.
답변2
좋습니다. VPN 클라이언트에는 네트워크에 연결되는 경로가 있고 10.0.200.0/24
VPN 서버에도 경로가 있습니다. 하지만 문제는 귀하의 웹 서버가 네트워크 10.0.200.31
에 접근할 수 있는 경로를 가지고 있느냐는 것입니다.10.0.202.0/24
freebsd 상자에서 tcpdump를 수행하십시오. 호스트 의 트래픽이 전달되는 것을 볼 수 있지만 10.0.202.6
반환 트래픽은 표시되지 않습니다.