kernel nat ipfw VPN PPTP

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2013-11-14 10:08:17

не совсем понял назначение этих правил.
тобишь натим и от сервера пакеты?

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

${fw} add nat 1 tag 8 gre from ${ext_gateway_ip} to any      out via ${ext_if}
${fw} add allow tcp from ${ext_gateway_ip} to any 1723       out via ${ext_if} tagged 8
${fw} add allow gre from ${ext_gateway_ip} to any            out via ${ext_if} tagged 8
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение kharkov_max » 2013-11-14 10:21:28

С этими правилами думаю все ясно

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

${fw} add allow tcp from ${ext_gateway_ip} to any 1723       out via ${ext_if} tagged 8
${fw} add allow gre from ${ext_gateway_ip} to any            out via ${ext_if} tagged 8
А вот это

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

${fw} add nat 1 tag 8 gre from ${ext_gateway_ip} to any      out via ${ext_if}
да похоже на то что Вы предположили, зачем так было сделано уже не помню, т.к. настаивалось давно.
Добавьте эти правила в свой конфиг, проверте работоспособность, а потом выключайте, если Вас оно смущает ...

По сути эти правила с боевого сервера, на нем работает ВПН нат от ПК в сети, он сам строит одно ВПН подключение, а так же сам является ВПН сервером.
Правила для ВПН сервера я не показывал, но Вам они похоже не нужны.

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение kharkov_max » 2013-11-17 10:52:16

так чем закончилось ?

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2013-11-18 12:05:57

не совсем понятно без нумерации правил у вас в конфиге.

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

table\(3\)
я так понимаю это локальные ПК которые нужно натить.

там по логике вашего фаера.
1.Задаем конфиг ната.
2. Натим исходящие пакеты от локальных ПК на любые адреса на порт tcp 1723 и gre.
3. Натим исходящие пакеты от ип адреса самого сервера по протоколу gre
4. Разрешаем исход. пакеты от самого сервера по протоколам tcp порт 1723 и GRE до всех с тэгом.
На счет тэга не понял. ПОЯСНИТЕ.
5. Натим входящие пакеты до ип адреса сервера по протоколам tcp порт 1723 и gre.
6.Пропускаем gre и tcp 1723 от всех до локальных ПК.входящие
7. далее разрешаем tcp от ип сервера до всех на порт 1723
8. разрешаем gre от ип сервера до таблицы 5. это как я понял ип адреса удаленных серверов. с которыми нужно поднять туннели!?
9. разрешаем tcp и gre до сервера.

попробую накидать свой конфиг.
на днях попробую проверить на боевой машине.
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение kharkov_max » 2013-11-18 14:52:10

не совсем понятно без нумерации правил у вас в конфиге.
table\(3\) я так понимаю это локальные ПК которые нужно натить.
table\(3\ - Да это так.

А нумерацию правил я не ставлю специально. И вам не особо рекомендую ...
Т.к. потом если нужно глобально перекидывать куски конфига между собой, ли бо что то тотально менять, нумерация правил создает определенный гиморой.

По сути нумерация нужна только для ${fw} add skipto, а шаг правил можно в sysctl поправить, если правил много ...

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2013-11-19 8:51:56

Не согласен с вами. нумерация нужна. для той же отладки. и выявление ошибок в написании конфига.
Все таки правила часто не меняют. один раз все правильно сделал и все.
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение kharkov_max » 2013-11-19 9:34:31

CTOPMbI4 писал(а):Не согласен с вами. нумерация нужна. для той же отладки. и выявление ошибок в написании конфига.
Все таки правила часто не меняют. один раз все правильно сделал и все.
Ну тут кому как ...
нумерация правил создает определенный гиморой ...
если нужно глобально перекидывать куски конфига между собой

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2013-11-21 16:23:24

короче не заработало.
убирал ставил правило. не помогло.
либо поднимаются ВПН-ки от сервера либо от компов в локалке.
так же если поднять их сначала на сервере потом установить из локалки.
то уже с сервера они не поднимаются
да в вашем конфиге разрешены только tcp 1723 и gre
остальной трафик не ходит
добавил еще ip как для локалки так и для сервера.
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2013-11-22 8:16:17

Вот конфиг. либо я чего то не понимаю либо....

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

wan_int=Externall_if
lan_int=Internall_if

Разрешаем по локалке
    ${fwcmd} add 10 allow all from any to any via ${lan_int}


Задаем конфиг ната
 ${fwcmd} nat 1 config ip Externall_ip same_ports reset \
redirect_port udp 192.168.1.200:50001 50001 \


Натим исх. 

        ${fwcmd} add 140 nat 1 tcp from 192.168.1.0/24 to any 1723 out via   ${wan_int}

        ${fwcmd} add 150 nat 1 gre from 192.168.1.0/24 to any out via ${wan_int}

        
  Добавил еще ip так как нужно чтобы все остальное  работало 
        ${fwcmd} add 151 nat 1 ip from 192.168.1.0/24 to any out via ${wan_int}

 Обьясните смысл данного правила?!
        ${fwcmd} add 152 nat 1 gre from Externall_ip to any out via ${wan_int}


 Исх. с ип сервера.
        ${fwcmd} add 190 pass tcp from  Externall_ip to any 1723 out via ${wan_int}

        ${fwcmd} add 200 pass gre from  Externall_ip to any out via ${wan_int}

        ${fwcmd} add 220 pass ip from  Externall_ip to any out via ${wan_int}

нат для Вхд. 
        ${fwcmd} add 300 nat 1 tcp from any 1723 to Externall_ip in via ${wan_int}

        ${fwcmd} add 310 nat 1 gre from any to Externall_ip  in via ${wan_int}

        ${fwcmd} add 320 nat 1 ip from any to Externall_ip in via ${wan_int}

Разрешаем вхд. с до локалки

        ${fwcmd} add 400 pass tcp from any 1723 to 192.168.1.0/24 in via ${wan_int}

        ${fwcmd} add 410 pass gre from any to 192.168.1.0/24 in via ${wan_int}

        ${fwcmd} add 430 pass ip from any to 192.168.1.0/24 in via ${wan_int}

Разрешаем. Вхд.  для самого сервера.
        ${fwcmd} add 450 pass tcp from any 1723 to Externall_ip in via ${wan_int}


При первом включении правил ВПН поднимается с шлюза. данное правило срабатывает. далее если поднять ВПН с компа в локалке. 

то ВПН рвется и на данном правиле счетчик не растет. Кроме того если потом отключить ВПН с локального ПК. то ВПН уже не 

поднимается с шлюза. в логах mpd видно 
[b][L1] LCP: parameter negotiation failed[/b]
как я понимаю не проходит входящий gre

        ${fwcmd} add 460 pass gre from any to Externall_ip in via ${wan_int}

        ${fwcmd} add 470 pass ip from any to Externall_ip in via ${wan_int}

one pass=0 соответственно.
Короче либо я логики не понимаю фаера. либо...
пните если что нет так...
За ранее благодарен за помощь.
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!

Аватара пользователя
kharkov_max
капитан
Сообщения: 1811
Зарегистрирован: 2008-10-03 14:56:40

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение kharkov_max » 2013-12-10 13:29:15

Вернулся к Вашему вопросу.
Вообщем в данный момент работает вот такая конфигурация.
Конфиг боевого сервера.

Одновременно:
- НАТ ВПН
- сервер строит ВПН подключение
- сам является ВПН сервером

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

.....
${fw} nat 1 config ip ${ext_gateway_ip} reset same_ports 
.....
# ====================== NAT VPN в инет ======================================================
${fw} add nat 1 tag 8 tcp from table\(3\) to any 1723        out recv ${int_if} xmit ${ext_if}
${fw} add nat 1 tag 8 gre from table\(3\) to any             out recv ${int_if} xmit ${ext_if}
${fw} add allow tcp from ${ext_gateway_ip} to any 1723       out via ${ext_if} tagged 8
${fw} add allow gre from ${ext_gateway_ip} to any            out via ${ext_if} tagged 8

${fw} add nat 1 tag 8 tcp from any 1723 to ${ext_gateway_ip}  in via ${ext_if}
${fw} add nat 1 tag 8 gre from any to ${ext_gateway_ip}       in via ${ext_if}
${fw} add allow tcp from any 1723 to table\(3\)               in via ${ext_if} tagged 8
${fw} add allow gre from any to table\(3\)                    in via ${ext_if} tagged 8
# ============================================================================================

# =============Разрешаем шлюзу создавать VPN подключения ================
${fw} add allow tcp from ${ext_gateway_ip} to any 1723  out via ${ext_if}
${fw} add allow gre from ${ext_gateway_ip} to any       out via ${ext_if}

${fw} add allow tcp from any 1723 to ${ext_gateway_ip}   in via ${ext_if}
${fw} add allow gre from any      to ${ext_gateway_ip}   in via ${ext_if}

# Выпускаем только определенные IP, имя интерфейса задается в mpd.conf
${fw} add allow all from $host_to_budm_vpn to any out via vpn_inet
${fw} add allow all from any to $host_to_budm_vpn  in via vpn_inet
# ========================================================================

# ================================================== Для VPN сервера ================================================================
# -- Общие правила
${fw} add allow tcp from ${ext_gateway_ip} 1723 to any out via ${ext_if}
${fw} add allow gre from ${ext_gateway_ip} to any      out via ${ext_if}

${fw} add allow tcp from any to ${ext_gateway_ip} 1723  in via ${ext_if}
${fw} add allow gre from any to ${ext_gateway_ip}       in via ${ext_if}
.....
Правиля для клиентов
.....

Аватара пользователя
CTOPMbI4
прапорщик
Сообщения: 482
Зарегистрирован: 2008-05-02 20:20:47
Откуда: Made in Russia

Re: kernel nat ipfw VPN PPTP

Непрочитанное сообщение CTOPMbI4 » 2014-04-02 8:04:23

Решил забить на это дело. Ваш последний конфиг тестить не стал.
Это почти неподвижности мука
Мчаться куда то со скоростью звука,
зная преакрасно, что есть уже где то
Некто
Летящий
Со скорости
Света!