OpenVPN 서버(Debian)에서 MT를 작동하도록 만드는 데 몇 가지 문제가 있습니다. OVPN 서버에 성공적으로 연결할 수 있지만 트래픽이 OVPN 서버를 통해 라우팅되지 않습니다. 내 구성은 다음과 같습니다.
설정 -https://i.stack.imgur.com/AAH9Y.jpg
OpenVPN 서버(Debian/Linux) 구성
# 고양이 /etc/openvpn/server.conf 로컬 95.2.171.3 포트 1194 프로토 TCP 개발자 툰 ca ca.crt 인증서 서버.crt 키 서버.키 dh dh.pem 서버 10.8.0.0 255.255.255.0 ifconfig-풀-지속 ipp.txt 클라이언트 구성 디렉터리 ccd 경로 192.168.81.0/24 255.255.255.0 연결 유지 10 120 툰엠투 1500 mssfix 1450 암호 AES-256-CBC 인증 샤1 지속 키 지속적인 조정 상태 /var/log/openvpn-status.log 로그 추가 /var/log/openvpn.log 동사 5 crl-검증 /etc/openvpn/easy-rsa/pki/crl.pem # 고양이 /etc/openvpn/ccd/client 루트 192.168.81.0 255.255.255.0 10.8.0.2 ifconfig-푸시 10.8.0.2 10.8.0.1 # 고양이 /proc/sys/net/ipv4/ip_forward 1 # netstat -an | 그렙 1194 tcp 0 0 95.2.171.3:1194 0.0.0.0:* 들어보세요 tcp 0 0 95.2.171.3:1194 81.190.190.100:62973 설정됨 # ifconfig eth0 링크 encap:Ethernet HWaddr 20:cf:30:f2:a8:76 inet 주소:95.2.171.3 Bcast:95.2.171.31 마스크:255.255.255.224 inet6 주소: fe80::22cf:30ff:fef2:a876/64 범위:링크 업 브로드캐스트 실행 중 멀티캐스트 MTU:1500 미터법:1 RX 패킷:255189 오류:0 삭제:0 오버런:0 프레임:0 TX 패킷:333054 오류:0 삭제:0 오버런:0 반송파:0 충돌:0 txqueuelen:1000 RX 바이트:34521411(32.9MiB) TX 바이트:367074147(350.0MiB) 인터럽트:26 기본 주소:0x8000 lo 링크 캡슐:로컬 루프백 inet 주소:127.0.0.1 마스크:255.0.0.0 inet6 주소: ::1/128 범위:호스트 업 루프백 실행 MTU:16436 미터법:1 RX 패킷:15579 오류:0 삭제:0 오버런:0 프레임:0 TX 패킷:15579 오류:0 삭제:0 오버런:0 반송파:0 충돌:0 txqueuelen:0 RX 바이트:1326071(1.2MiB) TX 바이트:1326071(1.2MiB) tun0 링크 캡슐:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet 주소:10.8.0.1 PtP:10.8.0.2 마스크:255.255.255.255 UP POINTOPOINT 실행 NOARP MULTICAST MTU:1500 미터법:1 RX 패킷:57 오류:0 삭제:0 오버런:0 프레임:0 TX 패킷:6 오류:0 삭제:0 오버런:0 반송파:0 충돌:0 txqueuelen:100 RX 바이트:6669(6.5KiB) TX 바이트:504(504.0B) # netstat -rn 커널 IP 라우팅 테이블 대상 게이트웨이 Genmask 플래그 MSS 창 irtt Iface 10.8.0.2 0.0.0.0 255.255.255.255 어 0 0 0 tun0 95.2.171.0 0.0.0.0 255.255.255.224 유 0 0 0 eth0 192.168.81.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 10.8.0.0 10.8.0.2 255.255.255.0 UG 0 0 0 tun0 0.0.0.0 95.2.171.30 0.0.0.0 UG 0 0 0 eth0 # iptables -S -P 입력 수락 -P 앞으로 수락 -P 출력 수락 -A 입력 -i lo -j 수락 -A 입력 -d 127.0.0.0/8 -i !lo -j REJECT --reject-with icmp-port-unreachable -A 입력 -i tun0 -j 수락 -A 입력 -m 상태 --상태 관련, 설정됨 -j 수락 -A 입력 -p tcp -m tcp --dport 1194 -j 수락 -A 입력 -m 제한 --limit 5/min -j LOG --log-prefix "iptables 거부됨: " --log-level 7 -A INPUT -j REJECT --icmp-port-접근 불가능으로 거부 -A 출력 -j 수락 # iptables -t nat -S -P 사전 라우팅 수락 -P 포스트라우팅 수락 -P 출력 수락 -A 포스트라우팅 -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A 포스트라우팅 -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 -A 포스트라우팅 -s 10.8.0.0/24 -j SNAT --to-source 95.2.171.3 # 핑 8.8.8.8 PING 8.8.8.8 (8.8.8.8) 56(84) 바이트의 데이터. 8.8.8.8의 64바이트: icmp_req=1 ttl=55 time=12.9 ms 8.8.8.8의 64바이트: icmp_req=2 ttl=55 time=12.8 ms
이것은 OpenVPN 서버(Debian/Linux)의 모든 구성입니다.
OpenVPN 클라이언트 측(Mikrotik RouterOS 6) 구성
/인터페이스 인쇄 플래그: D - 동적, X - 비활성화, R - 실행 중, S - 슬레이브 # 이름 유형 실제-MTU L2MTU MAX-L2MTU MAC-주소 0 R 에테르1 에테르 1500 1600 4076 D4:CA:6D:31:14:F4 1 S 에테르2 에테르 1500 1598 2028 D4:CA:6D:31:14:F5 2 S 에테르3 에테르 1500 1598 2028 D4:CA:6D:31:14:F6 3 S 에테르4 에테르 1500 1598 2028 D4:CA:6D:31:14:F7 4 S 에테르5 에테르 1500 1598 2028 D4:CA:6D:31:14:F8 5 RS wlan1 wlan 1500 1600 D4:CA:6D:31:14:F9 6 R 브릿지1 브릿지 1500 1598 D4:CA:6D:31:14:F5 7 R ovpn-out1 ovpn-out 1500 FE:3E:27:7D:61:8C /인터페이스 브릿지 프린트 플래그: X - 비활성화됨, R - 실행 중 0 R 이름="브리지1" mtu=자동 실제-mtu=1500 l2mtu=1598 arp=활성화 mac-address=D4:CA:6D:31:14:F5 프로토콜 모드=rstp 우선순위=0x8000 자동-mac=예 관리자 -mac=00:00:00:00:00:00 최대 메시지 연령=20초 전달 지연=15초 전송 보류 횟수=6 노화 시간=5분 /interface 브리지 포트 인쇄 플래그: X - 비활성화됨, I - 비활성 상태, D - 동적 # 인터페이스 브리지 우선순위 경로-비용 지평선 0 I 이더넷2 브리지1 0x80 10 없음 1 I 에테르3 브리지1 0x80 10 없음 2 I 이더넷4 브리지1 0x80 10 없음 3 I 이더넷5 브리지1 0x80 10 없음 4 wlan1 브리지1 0x80 10 없음 /ip 주소 인쇄 플래그: X - 비활성화됨, I - 유효하지 않음, D - 동적 # 주소 네트워크 인터페이스 0 192.168.81.1/24 192.168.81.0 브리지1 1D 192.168.7.200/24 192.168.7.0 에테르1 2D 10.8.0.2/32 10.8.0.1 ovpn-out1 /ip 방화벽 NAT 인쇄 플래그: X - 비활성화됨, I - 유효하지 않음, D - 동적 0 체인=srcnat 액션=가장 주소=0.0.0.0 out-interface=ether1 로그=log-prefix 없음="" /ip 경로 인쇄 플래그: X - 비활성화됨, A - 활성, D - 동적, C - 연결, S - 정적, r - rip, b - bgp, o - ospf, m - mme, B - 블랙홀, U - 도달 불가능, P - 금지 # DST-주소 PREF-SRC 게이트웨이 거리 0 광고 0.0.0.0/0 192.168.7.1 0 1 ADC 10.8.0.1/32 10.8.0.2 ovpn-out1 0 2 ADC 192.168.7.0/24 192.168.7.200 에테르1 0 3 ADC 192.168.81.0/24 192.168.81.1 브리지1 0 /인터페이스 ovpn-클라이언트 인쇄 플래그: X - 비활성화됨, R - 실행 중 0 R 이름="ovpn-out1" mac-address=FE:3E:27:7D:61:8C max-mtu=1500 connect-to=195.13.171.3 포트=1194 모드=ip user="클라이언트" 비밀번호=" " 프로필=기본 인증서=클라이언트 인증=sha1 cipher=aes256 add-default-route=no /핑 10.8.0.1 시퀀스 호스트 크기 TTL 시간 상태 0 10.8.0.1 56 64 6ms 1 10.8.0.1 56 64 9ms 2 10.8.0.1 56 64 7ms 3 10.8.0.1 56 64 6ms 전송됨=4 수신됨=4 패킷 손실=0% min-rtt=6ms 평균-rtt=7ms 최대-rtt=9ms
보시다시피 Mikrotik에서 OpenVPN 서버를 ping할 수 있습니다. 하지만 로컬 PC에서 인터넷을 사용하면 내가 보고 싶은 IP 주소가 아닌 81.190.190.100의 IP 주소가 표시됩니다. OpenVPN 서버 IP - 95.2.171.3입니다.
노트북(192.168.81.100/24)에서 10.8.0.1로 ping/traceroute를 성공적으로 수행할 수 있지만 VPN 터널을 통해 라우팅되지 않는 이유를 이해할 수 없습니다. 서버(Linux) 또는 클라이언트(mikrotik) 라우팅에 뭔가 빠진 것 같습니다.
당신의 도움을 주셔서 감사합니다! 나는 지금 한동안 이것을 플레이하고 있는데 실행할 수 없습니다 :(
좋은 하루 보내세요!
답변1
mikrotik에 경로(기본 게이트웨이)가 없기 때문에 클라이언트가 OVPN 터널을 통해 라우팅하지 않습니다!
따라서 OVPN 서버 10.8.0.1의 대상이 있는 라우팅 표시가 있는 mikrotik에 다른 게이트웨이를 추가하세요.
/ip route add dst-address=0.0.0.0/0 gateway=10.8.0.1 routing-mark=clientmark
물론 다음과 같이 라우팅 표시에 대한 맹글 규칙을 추가해야 합니다.
/ip firewall mangle add action=mark-routing chain=prerouting src-address=192.168.81.0/24 new-routing-mark=clientmark
또한 클라이언트(src-addresses 192.168.81.0/24)에 대한 nat 규칙이 있어야 합니다.
ip firewall nat add action=masquerade chain=srcnat src-address=192.168.81.0/24 out-interface=ovpn-out1