CentOS 7(CentOS 7과 연결되지 않음)에서 실행되는 새로운 OpenVPNas 서버가 있습니다. 값비싼 상용 VPN을 공용 고정 IP로 교체하려고 합니다. OpenVPNas 서버가 개인 VPN 서버 역할을 하기 때문에 상업용 서버를 교체하려면 몇 개의 포트만 고정 내부 VPN 주소로 전달하면 됩니다.
VPN 클라이언트를 설정하고 서버에서 클라이언트의 고정 IP로, 고정 IP에서 서버의 공용 IP로 ping할 수 있습니다.
서버 IP의 다음 포트를 내부 VPN으로 전달/NAT/가장하고 싶습니다.
공개 TCP 80은 서버의 공개입니다: 80 -> 172.28.28.28:80 공용 UDP 포트 2074-2093 공용 TCP 포트 15425-15427 공용 UDP 포트 5198-5200 공용 TCP 포트 5198-5200
route
다른 / 명령을 시도했지만 iptables
아직 마법의 총알을 찾지 못했습니다. 나는 이것이 간단한 과정이라고 생각하지만 해결책이 나를 혼란스럽게 합니다. SSH를 통해 서버는 VPN 포트 80에 연결할 수 있으며 VPN의 웹 인터페이스를 통해 클라이언트의 포트를 얻을 수 있습니다. 따라서 기본 라우팅이 예상대로 작동합니다.
서버 페이지의 포트 80으로 향하는 패킷을 전달하기 위해 라우팅하는 마법의 방법을 알 수 없습니다.
[root@vpn ~]# sysctl net.ipv4.ip_forward net.ipv4.ip_forward = 1 [root@vpn ~]# 라우팅 -n 커널 IP 라우팅 테이블 Iface를 사용하는 대상 게이트웨이 Genmask 마크 메트릭 참조 0.0.0.0 209.182.218.1 0.0.0.0 UG 0 0 0 eth0 169.254.0.0 0.0.0.0 255.255.0.0 유 1002 0 0 eth0 172.27.224.0 0.0.0.0 255.255.252.0 유 0 0 0 as0t0 172.27.228.0 0.0.0.0 255.255.252.0 유 0 0 0 as0t1 172.27.232.0 0.0.0.0 255.255.252.0 유 0 0 0 as0t2 172.27.236.0 0.0.0.0 255.255.252.0 유 0 0 0 as0t3 172.28.28.28 0.0.0.0 255.255.255.255 어 0 0 0 as0t0 209.182.218.0 0.0.0.0 255.255.255.0 유 0 0 0 eth0 [root@vpn ~]# IP 라우팅 목록 기본값은 209.182.218.1 dev eth0입니다. 169.254.0.0/16 dev eth0 범위 링크 메트릭 1002 172.27.224.0/22 dev as0t0 프로토타입 커널 범위 링크 src 172.27.224.1 172.27.228.0/22 dev as0t1 프로토타입 커널 범위 링크 src 172.27.228.1 172.27.232.0/22 dev as0t2 프로토타입 커널 범위 링크 src 172.27.232.1 172.27.236.0/22 dev as0t3 프로토타입 커널 범위 링크 src 172.27.236.1 172.28.28.28 dev as0t0 원래 정적 209.182.218.0/24 dev eth0 프로토타입 커널 범위 링크 src 209.182.218.187 [root@vpn ~]# ifconfig as0t0: 플래그=4305 mtu 1500 inet 172.27.224.1 넷마스크 255.255.252.0 대상 172.27.224.1 inet6 fe80::4da2:53e9:7fba:8f11 prefixlen 64scopeid 0x20 지정되지 않음 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200(UNSPEC) RX 패킷 219바이트 13438(13.1KiB) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 250바이트 202093(197.3KiB) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0 as0t1: 플래그=4305 mtu 1500 inet 172.27.228.1 넷마스크 255.255.252.0 대상 172.27.228.1 inet6 fe80::d557:1adc:c34c:4954 prefixlen 64scopeid 0x20 지정되지 않음 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200(UNSPEC) RX 패킷 0바이트 0(0.0B) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 3바이트 144(144.0B) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0 as0t2: 플래그=4305 mtu 1500 inet 172.27.232.1 넷마스크 255.255.252.0 대상 172.27.232.1 inet6 fe80::be1a:bfd3:3c25:20f9 prefixlen 64scopeid 0x20 지정되지 않음 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200(UNSPEC) RX 패킷 0바이트 0(0.0B) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 3바이트 144(144.0B) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0 as0t3: 플래그=4305 mtu 1500 inet 172.27.236.1 넷마스크 255.255.252.0 대상 172.27.236.1 inet6 fe80::bfed:3f81:6938:bbc7 prefixlen 64scopeid 0x20 지정되지 않음 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 200(UNSPEC) RX 패킷 0바이트 0(0.0B) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 3바이트 144(144.0B) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0 eth0: 플래그=4163mtu 1500 inet 209.182.218.187 넷마스크 255.255.255.0 브로드캐스트 209.182.218.255 inet6 fe80::216:3eff:fecc:ddf3 prefixlen 64 범위 ID 0x20 이더넷 00:16:3e:cc:dd:f3 txqueuelen 1000(이더넷) RX 패킷 11673바이트 1350674(1.2MiB) RX 오류 0 드롭 14 오버플로 0 프레임 0 TX 패킷 5295바이트 1099520(1.0MiB) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0 짜잔: 플래그=73 mtu 65536 inet 127.0.0.1 넷마스크 255.0.0.0 inet6::1 prefixlen 128scopeid 0x10 Loop txqueuelen 1000(로컬 루프백) RX 패킷 9바이트 748(748.0B) RX 오류 0 드롭 0 오버플로 0 프레임 0 TX 패킷 9바이트 748(748.0B) TX 오류 0 드롭 0 오버플로 0 캐리어 0 충돌 0
답변1
OpenVPN-AS에 인터페이스에 동적 또는 고정 공용 IP가 할당되어 있다고 가정합니다.이더넷 0, 방화벽 규칙을 생성할 때 인터페이스 이름을 사용합니다. 이 접근 방식을 사용하면 두 경우 모두에서 규칙이 작동합니다. 이 경우 구성해야 합니다.대상 NAT
VPN 서버에 터널 인터페이스가 있는 경우Tun0IP는172.28.28.1IP가 있는 내부 웹 서버172.28.28.28청취 포트80
$ sudo iptables -t nat -A PREROUTING -p tcp -m tcp -d eth0 --dport 80 -j DNAT --to-destination 172.28.28.28
$ sudo iptables -t nat -A POSTROUTING -o tun0 -p tcp -m tcp -d 172.28.28.28 --dport 80 -j SNAT --to-source 172.28.28.1