Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Linux и FreeBSD » Программное обеспечение Linux и FreeBSD » OpenVPN + IPFW Kernel NAT

Ответить
Настройки темы
OpenVPN + IPFW Kernel NAT

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте коллеги.
Сам я не новичек в UNIX системах, но вот на днях столкнулся с непонятно проблемой.
Имею FreeBSD 10.0 х64 в качестве рабочего шлюза в компании.
Инет через PPPoE. Поднят MPD5 для VPN клиентов по PPTP. И стоит SQUID
Все исправно работает. Инет у всех на работе есть, фильтрация, клиенты по 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 в офисе коннект есть, но до локалки не достучаться.

Вроде все настроки идентичны (ipfw, openvpn.conf), как на виртуалке, так и на рабочей машине.
И теперь я не пойму что за фигня такая.

Единственное осталось грешить на конфликт интерфейсов tun. Но это вроде смахивает на фантастику.

IPFW

Код: Выделить весь код
#!/bin/sh
fwcmd="ipfw"
LanIf="re1"
LN="192.168.0.0/24"
LanIp="192.168.0.2"
WanIf="tun0"
WanIp="84.201.232.226"

${fwcmd} -f flush
${fwcmd} add 1 allow ip from any to any via lo0
${fwcmd} add 300 deny ip from any to 127.0.0.0/8
${fwcmd} add 301 deny ip from 127.0.0.0/8 to any
${fwcmd} add 319 allow all from any to me 5192 via tun0 setup limit src-addr 2
#${fwcmd} add 350 allow all from any to any via ${LanIf} keep-state
#${fwcmd} add 351 allow all from any to any via ${WanIf} keep-state
${fwcmd} add 400 allow icmp from any to any icmptypes 0,8,11
${fwcmd} add 411 allow all from 192.168.1.0/24 to any via re1
${fwcmd} add 412 allow all from any to 192.168.1.0/24 via re2 setup keep-state
${fwcmd} add 500 check-state
#############################     DNS
${fwcmd} add 700 allow udp from any to ${WanIp} 53 in via ${WanIf}
${fwcmd} add 710 allow udp from ${WanIp} 53 to any out via ${WanIf}
${fwcmd} add 712 allow udp from any 53 to ${WanIp} in via ${WanIf}
${fwcmd} add 714 allow udp from ${WanIp} to any 53 out via ${WanIf}
##############################    DNS

###############################   VPN SERVER
${fwcmd} add 800 allow all from any to me 1723
${fwcmd} add 801 allow all from me 1723 to any
${fwcmd} add 802 allow gre from any to any

${fwcmd} add 820 allow all from any to any via tun9
${fwcmd} add 821 allow all from any to ${WanIp} 1194 in via ${WanIf} setup keep-state
${fwcmd} add 822 allow all from 10.8.0.0/24 to ${LN} out via ${LanIf} setup keep-state
############################  VPN  SERVER
#${fwcmd} add 900 allow all from any to any via ${LanIf} keep-state
#${fwcmd} add 901 allow all from any to any via ${WanIf} keep-state
############################   SQUID
${fwcmd} add 950 allow tcp from me to any out via ${LanIf} keep-state uid squid
${fwcmd} add 951 fwd 127.0.0.1,3121 tcp from ${LN} to any 21,80,443 out via ${WanIf}
############################   NAT
${fwcmd} add 984 allow all from ${WanIp} to any out via ${WanIf} keep-state
${fwcmd} add 985 allow all from ${LN} to any in via ${LanIf}
${fwcmd} add 987 nat 1 all from ${LN} to any out via ${WanIf}
${fwcmd} add 989 nat 1 all from any to ${WanIp} in via ${WanIf}
${fwcmd} add 990 allow all from any to ${LN} out via ${LanIf}
${fwcmd} nat 1 config log if ${WanIf} deny_in reset same_ports unreg_only
#############################   NAT
#############################   NAT 2
#${fwcmd} add 1003 nat 2 all from 10.8.0.0/24 to any
#${fwcmd} add 1006 nat 2 all from any to ${WanIp}
#${fwcmd} nat 2 config log if ${WanIp}
#############################   NAT 2
#############################   NAT 3
#${fwcmd} add 1008 nat 2 all from 10.8.0.0/24 to any
#${fwcmd} add 1009 nat 2 all from any to 10.8.0.0/24
#${fwcmd} nat 2 config log if tun9
#############################   NAT 3

${fwcmd} add 3000 allow all from any to any via ${LanIf}
${fwcmd} add 3100 allow all from ${LN} to any setup
#${fwcmd} add 3150 allow all from any to any via ${LanIf} keep-state
#${fwcmd} add 3151 allow all from any to any via ${WanIf} keep-state
${fwcmd} add 3200 allow tcp from any to any established
как видно, я пытался и разрешающие правила добавлять и НАТить VPN


openvpn.conf

Код: Выделить весь код
port 1194
proto tcp
dev tun9
server 10.8.0.0 255.255.255.0
# добавлял push - все-равно не работает, тем более на виртуалке и без этого работает
;push "route 192.168.0.0 255.255.255.0"
keepalive 10 120
comp-lzo
persist-key
persist-tun
verb 3
rc.conf

Код: Выделить весь код
ifconfig_re1="inet 192.168.0.2 netmask 255.255.255.0"  # To LAN
ifconfig_re2="inet 192.168.1.2 netmask 255.255.255.0"  # To Modem
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"
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
ifconfig

Код: Выделить весь код
re1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether ec:22:80:eb:9f:f7
        inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
        media: Ethernet autoselect (none)
        status: no carrier
re2: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=8209b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC,LINKSTATE>
        ether 38:2c:4a:bf:31:f1
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        options=600003<RXCSUM,TXCSUM,RXCSUM_IPV6,TXCSUM_IPV6>
        inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        options=80000<LINKSTATE>
        inet 84.201.232.226 --> 84.201.225.100 netmask 0xffffffff
        Opened by PID 822
tun9: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1500
        options=80000<LINKSTATE>
        inet 10.8.0.1 --> 10.8.0.2 netmask 0xffffffff
        Opened by PID 1345
ng0: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> metric 0 mtu 1396
        inet 192.168.0.2 --> 192.168.0.60 netmask 0xffffffff

Помогите пожалуйста решить эту дилемму.
Спасибо.

Отправлено: 23:38, 06-10-2015

 

Новый участник


Сообщения: 2
Благодарности: 0

Профиль | Отправить PM | Цитировать


В общем, такая ситуация. Все работает)
Перевел на tap интерфейс openvpn.

Но вот что выяснил:
Работает, работает, а потом примерно через 3-4 дня openvpn коннектится, но по RDP не пускает (в общем локалки снова нету)

Перезагружаю сервак - и все снова работает. И снова через 3-4 дня не работает.

ДУмал, что память что-то жрет. Перезапускал и выключал полностью apache22, mysql, squid (они жрали неплохо). Но это не помогло.
Только полный ребут.

Всего на серваке 2Gb RAM. Понимаю, что мало, но я не подумал, что так будет она расходываться.
По команде top в основном жрут apache22, mysql, squid

Вот у меня к вам вопрос:
Как можно выяснить, из-за чего не пускается пакеты через openvpn ?

Отправлено: 10:57, 19-10-2015 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.



Компьютерный форум OSzone.net » Linux и FreeBSD » Программное обеспечение Linux и FreeBSD » OpenVPN + IPFW Kernel NAT

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
FreeBSD - Настройка ipfw+nat Clod57 Общий по FreeBSD 1 29-12-2014 14:02
FreeBSD - [решено] ipfw+nat rip88 Общий по FreeBSD 1 07-10-2013 16:56
FreeBSD - ipfw + NAT FloID1986 Общий по FreeBSD 1 04-05-2012 18:02
FreeBSD - Задача с IPFW+NAT zlx Общий по FreeBSD 3 10-01-2010 00:25
FreeBSD - [решено] IPFW+NAT+MPD mss_sarvarbek Общий по FreeBSD 14 27-02-2009 21:11




 
Переход