The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Настройка шлюза FreeBSD между двумя локалками и интернетом через VPN, !*! sedfom, 10-Июл-06, 22:28  [смотреть все]
Вводные:

Компьютер под FreeBSD5.4
Сетевые адаптеры:
fxp1: 10.200.10.36:255.255.255.0
fxp2: 192.168.0.1:255.255.255.0

Ядро скомпилировано GENERIC + опции
options BRIDGE
options IPDIVERT
options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_VERBOSE_LIMIT=10
options IPFIREWALL_FORWARD
options IPFIREWALL_FORWARD_EXTENDED # на всякий пожарный
device pf
device pflog
device pfsync

rc.conf:

natd_enable="YES"
natd_interface="fxp1"
defaultrouter="10.200.10.1"
firewall_enable="YES"
pf_enable="YES"
pf_rules="/etc/pf.conf"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

Сеть провайдера: 10.0.0.0:255.0.0.0
10.200.10.1 - gateway для моего сегмента
10.200.4.1 - VPN сервер
10.200.4.100 - Сервер с расшаренными по "Netbios over TCP/IP" папками с видеофильмами

Моя маленькая сеть 192.168.0.0:255.255.255.0
192.168.0.2 - Web, FTP, POP3, SMTP сервер
192.168.0.11 - рабочая станция 1
192.168.0.12 - рабочая станция 2

Возникшие вопросы:

1) Настроил ipfw для хождения с 192.168.0.11 на 10.200.4.100 через natd работает и сейчас. Затем настроил шлюз для хождения с 192.168.0.11 на 10.200.4.100, но на этот раз в качестве NAT выступал PF.

В pf.conf для этого я добавил только одну строку
nat on fxp1 from 192.168.0.0/24 to 10.0.0.0/8 -> (fxp1)

Работает, но ping -l 2000 10.200.4.100 работает только при NAT=natd, а при pf такой пинг не проходит. Ну и с natd соответственно файлы копируются с сервера на рабочую станцию 3-4 минуты, а с pf 9-10 минут. Для pf "магическая" длина пакета оказалась 1472 (мог соврать +/- 3, точно не помню)
При этом правило ipfw для nat выглядело вот так:
${fwcmd} add 500 divert natd all from any to any via fxp1

А для pf я такого не писал. Может как то тоже через divert передавать в pf. Или в pf.conf еще каких параметров надо добавить чтобы он пропускал пакеты до 25000 длиной?

PS использовать PF в качестве одного единственного файрвола пока не хочу, ибо пока я в нем совсем новичек.

2) Вот по этой статье
https://www.opennet.ru/base/net/pptp_client.txt.html
Добавил в ppp.conf секцию vpn со всеми описанными строками без изменений, за исключением пароля и логина. Установил пакет pptp
Затем прописал в /etc/rc.d/*NETWORKING
route add -host 10.200.4.1 10.200.10.1
route add -net 10.0.0.0 10.200.10.1
/usr/local/sbin/pptp 10.200.4.1 vpn &

В resolv.conf DNS провайдера записан

При загрузке все вроде идет без ошибок до появления приглашения login(ttyv0):
проходит пара секунд и появляется сообщение:
ppp[303]: tun0: Error: rt_Set: Cannot add a route with gateway 0.0.0.0

После чего интернет работает, но все попытки пропинговать интернет хосты проваливаются со 100% потерей. При просмотре счетчиков ipfw выяснилось что все пинги на интернет почемуто идут просто на fxp1, а не на tun0.

В случае с PPTP я организую второй NAT на PF
nat on tun0 from 192.168.0.0/24 to !10.0.0.0/8 -> (tun0)

Хочется добить icmp на интернет

Последняя непристойность: после всех перезагрузок и настроек появились файлы pptp.core в корне и в папке /root  - это нормально при shutdown -r now ?

В логах ppp просто куча сообщений:
15:00:04 ppp[303]: tun0: CPP: DeflateInput: Seq error: Got 110, expected 108
15:00:04 ppp[303]: tun0: CPP: deflink: SendResetReq(116) state = Openned
15:00:04 ppp[303]: tun0: CPP: deflink: RecvResetReq(116) state = Openned
15:00:04 ppp[303]: tun0: CPP: deflate: Input channel reset
15:00:08 ppp[303]: tun0: CPP: DeflateInput: Seq error: Got 83, expected 81
15:00:08 ppp[303]: tun0: CPP: deflink: SendResetReq(117) state = Openned
15:00:08 ppp[303]: tun0: CPP: deflink: RecvResetReq(117) state = Openned
15:00:08 ppp[303]: tun0: CPP: deflate: Input channel reset
15:00:11 ppp[303]: tun0: CPP: DeflateInput: Seq error: Got 157, expected 156
15:00:11 ppp[303]: tun0: CPP: deflink: SendResetReq(118) state = Openned
15:00:11 ppp[303]: tun0: CPP: deflink: RecvResetReq(118) state = Openned
15:00:11 ppp[303]: tun0: CPP: deflate: Input channel reset

и т.п и т.д.

Прошу помощи. Спасибо что не поленились дочитать. :)

  • Настройка шлюза FreeBSD между двумя локалками и интернетом ч..., !*! KlounAda, 04:18 , 12-Июл-06 (1)
    • Настройка шлюза FreeBSD между двумя локалками и интернетом ч..., !*! MaximKat, 15:02 , 12-Июл-06 (2)
    • Настройка шлюза FreeBSD между двумя локалками и интернетом ч..., !*! sedfom, 16:51 , 12-Июл-06 (3)
      >АЙ.. не дочитал :-) Задачу твою нихрена не понял.
      >
      >"PS использовать PF в качестве одного единственного файрвола пока не хочу, ибо
      >пока я в нем совсем новичек." - а стОит!
      >

      Задача:

      Есть сеть вот такой структуры:

      https://www.opennet.ru/base/net/freebsd_2x_natd.jpg

      Картинка не моя, но структура у меня такая же.

      Напишите работоспособный конфиг для PF который позволит:

      1) Натить мою локалку - если смотреть на этот рисунок, то 10.0.0.0/8 в любой сегмент локалки 192.168.xxx.0/24

      2) Натить мою локалку - если смотреть на этот рисунок, то 10.0.0.0/8 в интернет через PPTP интерфейс tun0

      3) В моей локалке 10.0.0.0/8 есть мой сервер web, ftp,pop3,smtp его надо промапить в локалку провайдера только по портам этих сервисов.

      Проблемы с которыми я столкнулся в PF на этом пути:

      1) строка
      nat on fxp1 from 192.168.0.0/24 to 10.0.0.0/8 -> (fxp1)
      срезает все пакеты превышающие длину 1472, что ведет к тормозам. Все парамерты в этой строке из моего первого поста выше, а не с рисунка   :-)

      2) строка
      nat on tun0 from 192.168.0.0/24 to !10.0.0.0/8 -> (tun0)

      Все парамерты в этой строке из моего первого поста выше, а не с рисунка

      Перед 10.0.0.0/8 стоит восклицательный знак

      Вообще не пропукает пинг - все пакеты идут по прежнему в локалку провайдера, а не на ВПН тунель, но при этом http,ftp она пропускает в интернет нормально




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру