URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 88296
[ Назад ]

Исходное сообщение
"FreeBSD 7.2 Natd + IPSec"

Отправлено xtc , 02-Мрт-10 06:45 
Добрый день. Имеется офис c локальной сетью и сервером на БСД 7.2, у которого есть внешний и внутренний интерфейсы. (Он служит в качестве ВЕБ, ФТП, файлового сервера, Роутера и IPSec сервера с топологией Звезда для соединения с другими офисами.)

Внешний интерфейс раньше имел выход по средствам РРРОЕ (pptpclient)на котором НАТ включался автоматически при старте самого соединения параметром в rc.conf (ppp_nat="YES"). Работал Интернет и работали IPSEC каналы было все хорошо.

Сейчас сменился провайдер, у него внешние настройки статически прописываются, т.к. сеть локальная фэйковая приходиться запускать НАТ для выхода ЛВС в Интернет. Но появилась проблема не могу одновременно заставить работать НАТ и IPSEC каналы. Получается либо Локалка в Интернет ходит, (При этом подымаются IPSEC каналы, но пакеты не ходят по нему, т.к. ведать заворачиваются в НАТ) Либо выключать НАТ и при этом IPSEC каналы работают замечательно, но ЛВС не выходит в Интернет.

Подскажите куда копать? или как запускать НАТ правильно?

Сейчас стартует так

rc.conf

natd_enable="YES"
natd_interface="ed0"

rc.firewall

#!/bin/sh
ipfw -f flush

fwcmd="/sbin/ipfw -q"

${fwcmd} add 100 deny icmp from any to any in icmptype 5,9,13,14,15,16,17
${fwcmd} add 110 pass all from any to any via lo0
${fwcmd} add 120 deny all from any to 127.0.0.0/8

# Allow NATD to
${fwcmd} add 200 divert natd all from 192.168.77.0/24 to any out via ed0
${fwcmd} add 202 divert natd all from any to any in via ed0

For TEST
${fwcmd} add 500 allow all from any to any


Пробовал по разному ранжировать правила все равно не получается.


Содержание

Сообщения в этом обсуждении
"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 10:17 
ifconfig -a
netstat -r
ipfw show


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 11:23 
>ifconfig -a
>netstat -r
>ipfw show

ifconfig -a

em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:50:91:0a
        inet 212.xxx.xxx.6 netmask 0xffffff00 broadcast 212.xxx.xxx.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:15:17:50:91:0b
        inet 192.168.77.1 netmask 0xffffff00 broadcast 192.168.77.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 127.0.0.1 netmask 0xff000000


netstat -r

Destination        Gateway            Flags    Refs      Use  Netif Expire
default            212.xxx.xxx.1      UGS         0   887435    em0
localhost          localhost          UH          0     1956    lo0
192.168.77.0       link#2             UC          0        0    em1
192.168.77.1       00:15:17:50:91:0b  UHLW        1       56    lo0
192.168.77.10      00:21:85:3a:9f:9a  UHLW        1    72902    em1   1127
192.168.77.14      00:e0:4c:18:7c:c0  UHLW        1    41606    em1   1190
192.168.77.17      00:15:17:50:93:db  UHLW        1    60645    em1   1089
192.168.77.89      00:16:d4:9d:1a:7a  UHLW        1    61787    em1   1171
192.168.77.90      90:e6:ba:5c:5d:66  UHLW        1      243    em1   1147
192.168.77.91      00:25:b3:6e:c8:bf  UHLW        1     7087    em1   1188
192.168.77.92      00:11:d8:b4:9d:10  UHLW        1      157    em1   1173
192.168.77.94      00:25:11:ca:fe:7a  UHLW        1    39731    em1   1188
192.168.77.98      00:25:11:c9:ed:a8  UHLW        1    32478    em1   1198
192.168.77.99      00:15:58:13:05:3c  UHLW        1   971915    em1    919
192.168.77.111     00:80:48:2e:1e:df  UHLW        1     7688    em1   1200
192.168.77.140     00:08:74:e8:04:04  UHLW        1        5    em1   1054
192.168.77.144     00:13:d4:b1:bd:5c  UHLW        1    10596    em1   1135
192.168.77.168     00:1d:92:39:d2:2b  UHLW        1   131406    em1   1187
192.168.77.169     00:1f:e2:5b:bf:30  UHLW        1    29197    em1   1150
192.168.77.175     00:24:01:02:ab:29  UHLW        1      359    em1   1027
192.168.77.198     00:1a:92:78:90:68  UHLW        1       18    em1   1072
192.168.77.225     00:50:ba:ca:61:f7  UHLW        1        5    em1   1199
192.168.77.227     00:08:74:06:32:0b  UHLW        1       49    em1   1090

ipfw show

00100     780      28080 deny icmp from any to any in icmptypes 5,9,13,14,15,16,17
00110   12940    7466100 allow ip from any to any via lo0
00120       0          0 deny ip from any to 127.0.0.0/8
00200    4947    1037072 divert 8668 ip from 192.168.77.0/24 to any out via ed0
00202    6067    3708380 divert 8668 ip from any to any in via ed0
00500   13508    1861183 allow ip from any to any
65535   30895    2263207 deny ip from any to any


"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 11:26 
а где "канал" под ipsec?

"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:07 
setkey -D
212.ххх.ххх.6 212.ххх.ххх.24
        esp mode=tunnel spi=123670869(0x075f1155) reqid=0(0x00000000)
        E: 3des-cbc  62c305c9 0dac321e c46df913 691ffdfe 1daa526f 5dced4a7
        A: hmac-sha1  8a9b070f ecac1f6c fc3d1b2e 23e8a37a 3c473061
        seq=0x00000000 replay=4 flags=0x00000000 state=mature
        created: Mar  2 16:02:44 2010   current: Mar  2 16:03:01 2010
        diff: 17(s)     hard: 86400(s)  soft: 69120(s)
        last:                           hard: 0(s)      soft: 0(s)
        current: 0(bytes)       hard: 0(bytes)  soft: 0(bytes)
        allocated: 0    hard: 0 soft: 0
        sadb_seq=5 pid=5308 refcnt=1
212.ххх.ххх.24 212.ххх.ххх.6
        esp mode=tunnel spi=82041374(0x04e3da1e) reqid=0(0x00000000)
        E: 3des-cbc  ff10c30a 662192c2 e7188c8c ea7b6ad5 db09b501 8c6c5f47
        A: hmac-sha1  77bf2fbb 0cde5cfe ec38a959 efba136f d74c9dfa
        seq=0x00000000 replay=4 flags=0x00000000 state=mature
        created: Mar  2 16:02:44 2010   current: Mar  2 16:03:01 2010
        diff: 17(s)     hard: 86400(s)  soft: 69120(s)
        last:                           hard: 0(s)      soft: 0(s)
        current: 0(bytes)       hard: 0(bytes)  soft: 0(bytes)
        allocated: 0    hard: 0 soft: 0
        sadb_seq=4 pid=5308 refcnt=1


setkey -DP
192.168.103.0/24[any] 192.168.77.0/24[any] any
        in ipsec
        esp/tunnel/212.xxx.xxx.24-212.xxx.xxx.6/require
        spid=12 seq=24 pid=5313
        refcnt=1
192.168.77.0/24[any] 192.168.103.0/24[any] any
        out ipsec
        esp/tunnel/212.xxx.xxx.6-212.xxx.xxx.24/require
        spid=11 seq=9 pid=5313
        refcnt=1


IPSec реализован на racoon


"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 12:12 
никаких gif не создается?

"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:19 
>никаких gif не создается?

Нет и кстати полно примеров чтоб даже гифов не создавать.

Просто на удаленных офисах стоят в качестве роутеров PFSens'ы, и я их конфиги глядел вроди тоже не нашел ни каких гифов.


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:16 
Стоит убрать 202 правило из фаервола, Интернет пропадает в Локалке, но сразу появляется связь с удаленным офисом через канал IPSec.

каким образом соединение
/usr/sbin/ppp -quiet -ddial -nat pppoe

НАТ запускался встроенный в ppp соединение, и он ведь не требовал дополнительных правил в фаерволе. Возможно также сделать на простом статическом IP адресе?



"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 12:21 
не видно не одного маршрута в сеть 192.168.103.0

"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:26 
>не видно не одного маршрута в сеть 192.168.103.0

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

я как понял параметр net.inet.ip.forwarding: 1
поумолчанию все маршрутизирует, а записи в setkey -DP достаточно чтоб он понимал что ему надо идти в тунель

причем кстати отчищал весь сеткей -ф флуш спдфлуш

и при попытке пинговать 192.168.103.1 маршрут он ломится уже на дфаулт гэйтвэй. т.е. в инет.


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:35 
Тот провайдер что дает интерент через pppoe еще рабочий, переключаюся на него, изменяю настройки внешнего интерфейса, запускаю подключение pppoe меняю IPSec конфиге IP адреса внешнего интерфейса и все работает замечательно.

НАТ для ЛВС запускается ключом -nat b каналы IPSеc тоже замечательно работают.

Без Гифов и дополнительных маршрутов. я их не делал как на ПФСенсе так и на этом роутере БСД.



"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 12:43 
netstat -r
ifoncfig -a
при соединении с pppoe

"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:53 
>netstat -r
>ifoncfig -a
>при соединении с pppoe

gw# netstat -r
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            10.10.0.1          UGS         0   981094   tun0
10.10.0.1          193.xxx.xxx.126    UH          0        0   tun0
localhost          localhost          UH          0     2030    lo0
192.168.77.0       link#2             UC          0        0    em1
192.168.77.1       00:15:17:50:91:0b  UHLW        1       80    lo0
192.168.77.10      00:21:85:3a:9f:9a  UHLW        1    89431    em1   1152
192.168.77.14      00:e0:4c:18:7c:c0  UHLW        1    41610    em1   1194
192.168.77.17      00:15:17:50:93:db  UHLW        1    61500    em1   1121
192.168.77.89      00:16:d4:9d:1a:7a  UHLW        1    73500    em1   1131
192.168.77.90      90:e6:ba:5c:5d:66  UHLW        1      256    em1    973
192.168.77.91      00:25:b3:6e:c8:bf  UHLW        1     9290    em1   1193
192.168.77.92      00:11:d8:b4:9d:10  UHLW        1      213    em1   1019
192.168.77.94      00:25:11:ca:fe:7a  UHLW        1    50668    em1   1174
192.168.77.98      00:25:11:c9:ed:a8  UHLW        1    35960    em1   1199
192.168.77.99      00:15:58:13:05:3c  UHLW        1   975763    em1    933
192.168.77.111     00:80:48:2e:1e:df  UHLW        1    11600    em1   1198
192.168.77.140     00:08:74:e8:04:04  UHLW        1        5    em1   1071
192.168.77.144     00:13:d4:b1:bd:5c  UHLW        1    17039    em1   1166
192.168.77.168     00:1d:92:39:d2:2b  UHLW        1   154749    em1    977
192.168.77.169     00:1f:e2:5b:bf:30  UHLW        1    31285    em1    975
192.168.77.175     00:24:01:02:ab:29  UHLW        1     3762    em1    924
192.168.77.198     00:1a:92:78:90:68  UHLW        1     9397    em1    916
192.168.77.227     00:08:74:06:32:0b  UHLW        1      123    em1   1072


gw# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=19b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,TSO4>
        ether 00:15:17:50:91:0a
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
em1: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=9b<RXCSUM,TXCSUM,VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
        ether 00:15:17:50:91:0b
        inet 192.168.77.1 netmask 0xffffff00 broadcast 192.168.77.255
        media: Ethernet autoselect (100baseTX <full-duplex>)
        status: active
lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> metric 0 mtu 16384
        inet 127.0.0.1 netmask 0xff000000
tun0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1492
        inet 193.xxx.xxx.126 --> 10.10.0.1 netmask 0xffffffff
        Opened by PID 505


и все фунциклирует.

строчки в файерволе 200-202 убраны.


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:57 
по гуглил и нашел что в ppp встроен свой нат. Он ведать отличается от того что в ядро в компилен, т.к. ему не требуются записи в фаерволе.

я вот думаю сейчас попробовать поднять все на ПФСенсе со статик IP внешним, и поднять там все тоже самое.

единственное там идет другой фаервол не ipfw.


"FreeBSD 7.2 Natd + IPSec"
Отправлено rr , 02-Мрт-10 13:18 
может так
${fwcmd} add 200 divert natd all from 192.168.77.0/24 to not 192.168.103.0/24 out via ed0

natd запускать с -u


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 03-Мрт-10 07:20 
>может так
>${fwcmd} add 200 divert natd all from 192.168.77.0/24 to not 192.168.103.0/24 out
>via ed0
>
>natd запускать с -u

Сегодня попробую, и отпишуся.


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 03-Мрт-10 15:13 
Получилось сделать, но пока только для одного тунеля

вот так

${fwcmd} add 200 divert natd all from 192.168.77.0/24 to any out via ed0
${fwcmd} add 202 divert natd all from not 212.xxx.xxx.61 to 212.xxx.xxx.6 in via ed0

если дописываю еще строчку

${fwcmd} add 202 divert natd all from not 212.xxx.xxx.59 to 212.xxx.xxx.6 in via ed0

То он просто ее уже не обрабатывает.
А возможно сразу несколько IP тут указать в одной строчке типа not 212.xxx.xxx.59 212.xxx.xxx.61 и так далее?


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 03-Мрт-10 15:58 
ipfw add 202 divert natd all from { not 212.ххх.ххх.59 or not 212.ххх.ххх.61 } to 212.ххх.хххх.6 in via em0

не помогает, может какой другой синтаксис надо использовать?


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 03-Мрт-10 17:15 
>ipfw add 202 divert natd all from { not 212.ххх.ххх.59 or not
>212.ххх.ххх.61 } to 212.ххх.хххх.6 in via em0
>
>не помогает, может какой другой синтаксис надо использовать?

Решилось вот таким видом записи в правиле 202
ipfw add 202 divert natd in via em0 not src-ip 212.ххх.ххх.59 not src-ip 212.ххх.ххх.61 dst-ip 212.xxx.xxx.6


"FreeBSD 7.2 Natd + IPSec"
Отправлено fx , 02-Мрт-10 11:13 
>выход по средствам

посредством?


"FreeBSD 7.2 Natd + IPSec"
Отправлено xtc , 02-Мрт-10 12:11 
>>выход по средствам
>
>посредством?

с русским языком еще и со школы было сложно, его полностью знать тяжело -(
-)