Всем привет! Есть следующая проблема, имеется удаленный сайт к которому есть доступ через openvpn (tun0), нужно пропробросить его в локальную сеть (eth0), и к пользователям моей сети через свою openvpn сеть (tun1). Сайт работает по портам 80 и 99, при чем 80 - тестовая версия сайта, 99 - рабочий вариант.
~$ ifconfig
eth0 Link encap:Ethernet HWaddr 00:15:5d:00:01:42
inet addr:10.59.0.118 Bcast:10.59.0.255 Mask:255.255.255.0
inet6 addr: fe80::215:5dff:fe00:142/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:3116 errors:0 dropped:504 overruns:0 frame:0
TX packets:435 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:258700 (258.7 KB) TX bytes:56377 (56.3 KB)
lo Link encap:Локальная петля (Loopback)
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:246 errors:0 dropped:0 overruns:0 frame:0
TX packets:246 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1
RX bytes:19408 (19.4 KB) TX bytes:19408 (19.4 KB)
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.255.2.22 P-t-P:10.255.2.21 Mask:255.255.255.255
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:9 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:1197 (1.1 KB) TX bytes:1065 (1.0 KB)
tun1 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:10.0.1.6 P-t-P:10.0.1.6 Mask:255.255.255.0
UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
#!/bin/sh
#Включаем форвардинг пакетов
echo 1 > /proc/sys/net/ipv4/ip_forward
#Разрешаем траффик на lo
iptables -A INPUT -i lo -j ACCEPT
#Разрешаем доступ из внутренней сети наружу
iptables -A FORWARD -i eth0 -o tun0 -j ACCEPT
iptables -A FORWARD -i tun1 -o tun0 -j ACCEPT
#Включаем NAT
iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
#Форвардинг 80
iptables -t nat -A PREROUTING -d 10.59.0.118 -p tcp --dport 80 -j DNAT --to-destination 192.168.37.7:80
iptables -t nat -A PREROUTING -d 10.0.1.6 -p tcp --dport 82 -j DNAT --to-destination 192.168.37.7:80
#Форвардинг 99
iptables -t nat -A PREROUTING -d 10.59.0.118 -p tcp --dport 99 -j DNAT --to-destination 192.168.37.7:99
iptables -t nat -A PREROUTING -d 10.0.1.6 -p tcp --dport 99 -j DNAT --to-destination 192.168.37.7:99
#Разрешаем ответы из внешней сети
iptables -A FORWARD -i tun0 -m state --state ESTABLISHED,RELATED -j ACCEPT
#Запрещаем доступ снаружи во внутреннюю сеть
iptables -A FORWARD -i tun0 -o eth0 -j REJECT
iptables -A FORWARD -i tun0 -o tun1 -j REJECT
схема подключения:
| В этом сегменте ни чего изменить не могу (нет доступа) |Моя сеть с полным доступом, шлюз на ubuntu server 16
|_________________ |______________
|Удаленный сервер |=======tun0 с адресом 10.255.2.22======>| 10.59.0.118 |<==eth0 10.59.0.x======пользователи внутри моей сети
|с сайтом |192.168.37.7:99-рабочий вариант сайта |мой шлюз с nat|
|_________________|192.168.37.7:80-тестовая версия сайта |___10.0.1.6___|<==tun1 10.0.1.x=======удаленные пользователи моей сети