VPN+VLAN+NAT
-
Приветствую, тема OpenVPN очень заезжена. Но тут не нашел решения.
Есть два сервера pfsense, каждый является шлюзом для множества сетей (на каждом по 15Vlan.)
Так же настроен OpenVPN на WAN интерфейсах. На одном pfsense в качестве сервера - на другом в качестве клиента.
Сети сервера: 192.168.1.0, клиента 192.168.2.1Настройки сервера
route 192.168.0.0 255.255.0.0; push "route 192.168.0.0 255.255.0.0"; client-to-client;
Все прекрасно работает.
Но вот понадобилось поднять на одном из vlan клиент openvpn. Сервер на машине с Linux. Сеть за сервером 192.168.100.0, сеть клиента 10.2.16.0
Клиент делаю на psense, где уже есть клиентское соединение. Создаю второй клиент, в качестве интерфейса выбираю 16 vlan (с этого интерфейса необходимо настроить доступ.)
Конфиг сервера:
eth0 - инет.
virbr1 - lan/etc/arno-iptabless-firewall/custom-rules iptables -A FORWARD -i virbr1 -o eth0 -j ACCEPT iptables -A FORWARD -i eth0 -o virbr1 -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A FORWARD -i virbr1 -o tun0 -j ACCEPT iptables -A FORWARD -i tun0 -o virbr1 -m state --state ESTABLISHED,RELATED -j ACCEPT # Allow TUN interface connections to OpenVPN server iptables -A INPUT -i tun+ -j ACCEPT # Allow TUN interface connections to be forwarded through other interfaces iptables -A FORWARD -i tun+ -j ACCEPT # Allow TAP interface connections to OpenVPN server iptables -A INPUT -i tap+ -j ACCEPT # Allow TAP interface connections to be forwarded through other interfaces iptables -A FORWARD -i tap+ -j ACCEPT iptables -t nat -A POSTROUTING -s 192.168.100.0/24 -o eth0 -j SNAT --to-source 14.36.187.233 ``` /etc/openvpn/server.conf
dev tun
proto udp
ca /etc/openvpn/keys/ca.crt
cert /etc/openvpn/keys/server.crt
key /etc/openvpn/keys/server.key # This file should be kept secret
dh /etc/openvpn/keys/dh1024.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
route 10.2.16.0 255.255.255.0 # сеть за клиентом
push "route 192.168.100.0 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 4.4.4.4"
comp-lzo
persist-key
persist-tun
log /var/log/openvpn.log
verb 3настройки fw pfsense: vlnan16_net * * * * (разрешено все.) таблица на pfsense: > [2.1-RELEASE][admin@probi-vol.localdomain]/root(1): netstat -r > Routing tables > > Internet: > Destination Gateway Flags Refs Use Netif Expire > default host-85-237-59-129 UGS 0 84724521 em1_vl > > 10.2.16.0 link#25 U 0 1628062 em0_vl > 10.2.16.1 link#25 UHS 0 6 lo0 > > 10.8.0.1/32 10.8.0.33 UGS 0 0 ovpnc2 > 10.8.0.33 link#39 UH 0 0 ovpnc2 > 10.8.0.34 link#39 UHS 0 0 lo0 > > 10.16.0.0 10.16.0.29 UGS 0 0 ovpnc1 > 10.16.0.29 link#32 UH 0 0 ovpnc1 > 10.16.0.30 link#32 UHS 0 0 lo0 > 85.237.59.128/28 link#9 U 0 0 em1_vl > host-85-237-59-130 link#9 UHS 0 0 lo0 > localhost link#5 UH 0 852 lo0 > 192.168.0.0 10.16.0.29 UGS 0 1848182 ovpnc1 > 192.168.1.0 10.16.0.29 UGS 0 205616 ovpnc1 > 192.168.3.0 link#8 U 0 318126921 em0_vl > probi-vol link#8 UHS 0 0 lo0 > 192.168.100.0 10.8.0.33 UGS 0 6 ovpnc2 если выбрать диагностику - пинг. интерфейс vlan16, ping 192.168.100.2 - пакеты отбрасываются. если выбрать default - то пинг идет.
Ping output:
PING 192.168.100.1 (192.168.100.1) from 10.2.16.1: 56 data bytes--- 192.168.100.1 ping statistics ---
3 packets transmitted, 0 packets received, 100.0% packet loss -
Судя по таблице на pf :
192.168.100.0 10.8.0.33 UGS 0 6 ovpnc2
Он все пакеты , адресованные сети 192.168.100.0 отправляет через ovpnc2.
Далее, выбирая в диагностике default в кач-ве интерфейса , то прохождение пакетов будет согласно таблице маршрутизации (см. выше). Не стоит выбирать конкретный интерфейс.Что Вас смущает?
-
смущает то, что из сети 10.2.16.0 (сеть vlan_16, на этом же интерфейсе поднят клиент openvpn - ovpnc2) невозможно получить доступ к сети за сервером OpenVPN (192.168.100.0/24). Возможно дело в фаерволле.
Но на интерфейсе OpenVPN разрешено все, и в правилах на vlan_16 тоже разрешено все.
Причем из сети 10.2.16.0 пингуется ip туннеля 10.8.0.34
Диагностикой я смотрю появляется ли доступ с интерфейса 10.2.16.1 в удаленную сеть, если появится на этом интерфейсе, то и у пользователей сети все должно быть ок.![?????? ?????? ?? 2014-02-28 16:00:45.png](/public/imported_attachments/1/?????? ?????? ?? 2014-02-28 16:00:45.png)
![?????? ?????? ?? 2014-02-28 16:00:45.png_thumb](/public/imported_attachments/1/?????? ?????? ?? 2014-02-28 16:00:45.png_thumb)
![?????? ?????? ?? 2014-02-28 15:59:56.png](/public/imported_attachments/1/?????? ?????? ?? 2014-02-28 15:59:56.png)
![?????? ?????? ?? 2014-02-28 15:59:56.png_thumb](/public/imported_attachments/1/?????? ?????? ?? 2014-02-28 15:59:56.png_thumb) -
Разбирайтесь с Linux-сервером. Особенно с директивой iroute и с конфигурационным файлом клиента.
-
спасибо, заработало.
сделал папку ccd, в ней файл с именем как у сертификата, а в нем прописал iroute 10.2.16.0 255.255.255.0;
в server.conf добавил route 10.2.16.0 255.255.255.0
все работает. -
Ну и хорошо :D
P.s. Добавьте в название темы фразу [РЕШЕНО] , пож-та.