Страница 1 из 1

OpenVPN+IPFW Kernel NAT

Добавлено: 2015-10-04 22:10:22
VoxVeritas
Здравствуйте коллеги.
Сам я не новичек в UNIX системах, но вот на днях столкнулся с непонятно проблемой.
Имею FreeBSD 10.0 х64 в качестве рабочего шлюза.
Инет через PPPoE. Поднят MPD5 для VPN клиентов по PPTP. И стоит SQUID+SAMS
Все исправно работает. Инет у всех на работе есть, фильтрация, клиенты по VPN подключаются и т.д.

Но есть один сотрудник, который живет в Польше. И он не может подключиться по VPN.
Наверное провайдеры там блокируют GRE.

Было решение поднять на шлюзе OpenVPN.
Установил, настроил. Коннект происходит. Но вот LAN в офисе не доступен.
Пингуется только 10.8.0.1

Что только не делал: и различные правила в IPFW и варианты директив push, route в конфиге openvpn.conf


Но вот что самое главное.
У меня на ноуте развернута на виртуалке LAN сеть для теста.
Там у меня 3 гостевых системы. Первая FreeBSD, вторая CentOS, третья Винда
Так вот.
FreeBSD стоит 10.1 х86
Настроен IPFW + Kernel NAT. И установлен и настроен OpenVPN.

Так вот. C моей хостовой машины (ноут) коннект идет на виртуальную FreeBSD и далее я могу подключиться по RDP к Винде.

А вот на рабочую FreeBSD коннект есть, но до локалки не достучаться.

Вроде все настроки идентичны, как на виртуалке, так и на рабочей машине.
И теперь я не пойму что за фигня такая.
Единственное осталось грешить на конфликт интерфейсов tun. Но это вроде смахивает на фантастику.

часть IPFW

Код: Выделить всё

$cmd add allow all from any to any via tun0
$cmd add allow all from any to ${extip} 1194 in via ${extif} keep-state
$cmd add allow all from 10.8.0.0/24 to ${LN} out via ${intif} keep-state
openvpn.conf

Код: Выделить всё

dev tun
server 10.8.0.0 255.255.255.0
keepalive 10 120
comp-lzo
persist-key
persist-tun
Помогите пожалуйста решить эту дилемму.
Спасибо.

OpenVPN+IPFW Kernel NAT

Добавлено: 2015-10-05 11:16:33
Dmitriy_3206
Вы не указали какая подсеть у вас в лан.
Вы не указали какая подсеть у клиента (крайне желательно что бы не совпадали)

Предположим у Вас локалка 172.16.172.ххх

Использовать команду push "172.16.172.ххх 255.255.255.0"
в одном из вариантов :
1.в конфиге сервера глобально
2.в CCD конкретно для этого клиента эту же строку
3.в конфиге клиента на удаленной машине эту строку

В связи что OpenVPN у вас шлюз по умолчанию для локалки, локалка будет правильно возвращать пакеты

OpenVPN+IPFW Kernel NAT

Добавлено: 2015-10-05 11:19:19
Dmitriy_3206
Вы не указали какая подсеть у вас в лан.
Вы не указали какая подсеть у клиента (крайне желательно что бы не совпадали)

Предположим у Вас локалка 172.16.172.ххх

Использовать команду push "172.16.172.ххх 255.255.255.0"
в одном из вариантов :
1.в конфиге сервера глобально
2.в CCD конкретно для этого клиента эту же строку
3.в конфиге клиента на удаленной машине эту строку

В связи что OpenVPN у вас шлюз по умолчанию для локалки, локалка будет правильно возвращать пакеты

Отправлено спустя 2 минуты 46 секунд:
Это без без НАТ Здесь http://forum.ixbt.com/topic.cgi?id=14:49976 есть статья-доступ к сетям за сервером

OpenVPN+IPFW Kernel NAT

Добавлено: 2015-10-05 11:43:32
VoxVeritas

Код: Выделить всё

$cmd add allow all from any to any via tun9
$cmd add allow all from any to ${extip} 1194 in via ${extif} keep-state
$cmd add allow all from 10.8.0.0/24 to ${LN} out via ${intif} keep-state
при отсутствии push "192.168.0.0 255.255.255.0" - пакеты идут только через второе правило
как только добавляю push "192.168.0.0 255.255.255.0" - пакеты идут на всех трех правилах

результат как и был:
на виртуалках все работает, на рабочей машине - нет


rc.conf

Код: Выделить всё

ifconfig_re1="inet 192.168.0.2 netmask 255.255.255.0"
ifconfig_re2="inet 192.168.1.2 netmask 255.255.255.0"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_profile="tcm"
firewall_enable="YES"
firewall_nat_enable="YES"
firewall_script="/etc/ipfw"
firewall_logging="YES"
mpd_enable="YES"
openvpn_enable="YES"
соответственно
192.168.0.0/24 - это локалка


netstat -rn

Код: Выделить всё

Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            84.201.225.100     UGS         0   146452   tun0
10.8.0.0/24        10.8.0.2           UGS         0        0   tun9
10.8.0.1           link#6             UHS         0        0    lo0
10.8.0.2           link#6             UH          0        0   tun9
84.201.225.100     link#5             UHS         0        0   tun0
84.201.232.226     link#5             UHS         0      518    lo0
127.0.0.1          link#4             UH          0     2647    lo0
192.168.0.0/24     link#2             U           0   204874    re1
192.168.0.2        link#2             UHS         1        0    lo0
192.168.0.60       link#7             UH          0     9348    ng0
192.168.1.0/24     link#3             U           0      236    re2
192.168.1.2        link#3             UHS         0        0    lo0