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

Исходное сообщение
"Настройка IPSec между DFL-210 и FreeBSD 6.3"

Отправлено ailman , 20-Мрт-09 13:32 
Как настроить?
Пробовал это сделать по разным статьям, таким как:
http://www.opennet.me/base/cisco/cisco_freebsd_ipsec.txt.html
и
http://www.dlink.ru/ru/faq/92/512.html
Не получается.
Файрволл стоит IPFILTER, на всякий случай его полностью отключал:

pass in all
block in all

Может кто настраивал сабж? Помогите, плиз!


Содержание

Сообщения в этом обсуждении
"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено andrey , 20-Мрт-09 14:52 
Настройки ракуна и дфл в студию !

"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 20-Мрт-09 16:49 
>Настройки ракуна и дфл в студию !

FreeBSD внешний IP: A.A.A.A
FreeBSD внутренняя сеть: 192.168.99.0/24
DFL-210 внешний IP: B.B.B.B
DFL-210 внутренняя сеть: 192.168.1.0/24

########################
НАСТРОЙКИ FreeBSD 6.3  #
########################

Файл /usr/local/etc/racoon/racoon.conf:

    path include "/usr/local/etc/racoon";
    path pre_shared_key "/usr/local/etc/racoon/psk.txt";

    log notify;

    padding
    {
        maximum_length 20;    # maximum padding length.
        randomize off;        # enable randomize length.
        strict_check off;    # enable strict check.
        exclusive_tail off;    # extract last one octet.
    }

    listen
    {
        isakmp A.A.A.A [500];
    }
    
    timer
    {
        counter 5;        # maximum trying count to send.
        interval 20 sec;    # maximum interval to resend.
        persend 1;        # the number of packets per send.
        phase1 30 sec;
        phase2 15 sec;
    }
    
    remote B.B.B.B
    {
        exchange_mode main;
        doi ipsec_doi;
        situation identity_only;
        nonce_size 16;
        lifetime time 60 min;    # sec,min,hour    
        initial_contact on;
        support_proxy on;
        proposal_check obey;
        
        proposal {
            encryption_algorithm 3des;
            hash_algorithm hmac_md5;
            authentication_method pre_shared_key;
            dh_group 2;
        }
    }
    
    sainfo subnet 192.168.99.0/24 any address 192.168.1.0/24 any
    {
        pfs_group 2;
        lifetime time 1 hour;
        encryption_algorithm 3des;
        authentication_algorithm hmac_md5;
        compression_algorithm deflate;
    }

Файл psk.txt /usr/local/etc/racoon/psk.txt:

    B.B.B.B        pre-shared-key


/etc/rc.conf:

    racoon_flags="-1 /var/log/racoon.log"
    ipsec_enable="YES"
    ipsec_file="/etc/ipsec.conf"

/etc/ipsec.conf:

    flush;
    spdflush;
    spdadd 192.168.99.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/A.A.A.A-B.B.B.B/unique;
    spdadd 192.168.1.0/24 192.168.99.0/24 any -P out ipsec esp/tunnel/A.A.A.A-B.B.B.B/unique;

#####################
НАСТРОЙКИ DFL-210   #
#####################

Interfaces->IPSec:

    Name: IPSec_FreeBSD
    Local Network: 192.168.1.0/24
    Remote Network: 192.168.99.0/24
    Remote Endpoint: A.A.A.A
    Encapsulation Mode: Tunnel
    
    IKE Algorithms: Medium
    IKE Life Time: 28800
    
    IPSec Algorithms: Medium
    IPSec Life Time: 3600

Objects->Authentification Objects:

    Name: IPSec_FreeBSD
    Passphrase: pre-shared-key

Rules->IP Rules->IPSec_FreeBSD:

1
    Name: IPSec_to_lan
    Action: Allow
    Service: all_services
    Source Interface: IPSec_FreeBSD
    Source Network: 192.168.99.0/24
    Destination Interface: lan
    Destination Networl: 192.168.1.0/24
    
2
    Name: Lan_to_IPSec
    Action: Allow
    Service: all_services
    Source Interface: lan
    Source Network: 192.168.1.0/24
    Destination Interface: IPSec_FreeBSD
    Destination Networl: 192.168.99.0/24


Вот вроде и все.
Чего я не доделал?...
ЗЫ: Сейчас настроен рабочий IPSec через этот же DFL-210 и DL-804HV. То бишь на DFL-210 все настроено корректно, пакеты нигде не рубятся. Мне кажется, дело в неправильной настройке на фряхе. Но в чем именно?


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено andrey , 20-Мрт-09 17:23 
Возможно наоборот
spdadd 192.168.99.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/A.A.A.A-B.B.B.B/unique;
spdadd 192.168.1.0/24 192.168.99.0/24 any -P in ipsec esp/tunnel/B.B.B.B-A.A.A.A/unique;
Где gif0 в rc.conf?

"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено andrey , 20-Мрт-09 17:35 
gif_interfaces="gif0"
ifconfig_gif0="192.168.99.1 netmask 255.255.255.0 192.168.1.1 netmask 255.255.255.0"
gifconfig_gif0="A.A.A.A netmask 255.255.255.0 B.B.B.B netmask 255.255.255.0"

"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 20-Мрт-09 17:52 
Добавил gif0-интерфейс.
Нашел у себя один косяк в ipsec.conf - во входящем траффике написал вместо "in" "out".
Пробовал поменять адреса местами в ipsec.conf - не помогло. Может ошибка в конфиге racoon?
Я не уверен, что правильно указал алгоритмы hach_algorithm, authentication_algorithm...

"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 20-Мрт-09 17:54 
И еще почему то у меня после перезагрузки не грузится процесс racoon.
# ps -ax | grep racoon
Его нет...

"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено diver2daze , 02-Апр-09 17:54 
>gif_interfaces="gif0"
>ifconfig_gif0="192.168.99.1 netmask 255.255.255.0 192.168.1.1 netmask 255.255.255.0"
>gifconfig_gif0="A.A.A.A netmask 255.255.255.0 B.B.B.B netmask 255.255.255.0"

В данном случае gif не нужен вообще.
psk.txt верно прописан?
файрволом открой как в мане написано на внешнем интерфейсе.

У меня эта связка работает после кучи уботого времени.
там еще прикол с mtu будет.


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 20-Апр-09 19:15 
>В данном случае gif не нужен вообще.
>psk.txt верно прописан?

Да, верно

>файрволом открой как в мане написано на внешнем интерфейсе.

Стоит IPFILTER. Правило для сделал IPSEC следующим:
...
pass in quick on eth0 proto udp from any to any port = 500
...
, где eth0-внешний сетевой интерфейс.

>У меня эта связка работает после кучи уботого времени.
>там еще прикол с mtu будет.

Хотелось бы посмотреть на рабочие конфиги, уже задолбался со всем этим :(


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено diver2daze , 21-Апр-09 10:38 
>[оверквотинг удален]
>pass in quick on eth0 proto udp from any to any port
>= 500
>...
>, где eth0-внешний сетевой интерфейс.
>
>>У меня эта связка работает после кучи уботого времени.
>>там еще прикол с mtu будет.
>
>Хотелось бы посмотреть на рабочие конфиги, уже задолбался со всем этим :(
>

ipfw add 10 allow esp from any to any
ipfw add 10 allow ipencap from any to any
ipfw add 30 allow udp from any 500 to any
ipfw add 40 allow ip from ${твоя локальная сеть} to ${удаленная сеть}


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 24-Апр-09 12:18 
>[оверквотинг удален]
>>>там еще прикол с mtu будет.
>>
>>Хотелось бы посмотреть на рабочие конфиги, уже задолбался со всем этим :(
>>
>
>ipfw add 10 allow esp from any to any
>ipfw add 10 allow ipencap from any to any
>ipfw add 30 allow udp from any 500 to any
>ipfw add 40 allow ip from ${твоя локальная сеть} to ${удаленная сеть}
>

Может кому понадобиться, для IPFilter эти правила будут выглядеть так:
pass in quick proto esp from any to any
pass out quick proto esp from any to any
pass in quick proto ipencap from any to any
pass out quick proto ipencap from any to any
pass in quick proto udp from any port = 500 to any
pass out quick proto udp from any port = 500 to any
pass out quick proto ip from ${mylan} to ${remotelan}


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 26-Май-09 13:29 
Блин, задолбался уже со всем этим. Не работает. Туннель устанавливается, но пинги не ходят, пишет "invalid argument". Файрволл отрубал нафиг, результата ноль. (((

to diver2daze:

Хелп!!! Не мог бы ты показать свои конфиги racoon.conf, ipsec.conf и соответствующие строки в rc.conf? И какой маршрут нужно добавлять на фре?


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 26-Май-09 13:50 
На данный момент получилось следующее.

ipsec.conf:
flush;
spdflush;
spdadd 192.168.99.0/24 192.168.1.0/24 any -P out ipsec esp/tunnel/A.A.A.A-B.B.B.B/require;
spdadd 192.168.1.0/24 192.168.99.0/24 any -P in ipsec esp/tunnel/B.B.B.B-A.A.A.A/require;


racoon.conf:
path include "/usr/local/etc/racoon";
path pre_shared_key "/usr/local/etc/racoon/psk.txt";
#log debug;
padding
{
        maximum_length 20;      # maximum padding length.
        randomize off;          # enable randomize length.
        strict_check off;       # enable strict check.
        exclusive_tail off;     # extract last one octet.
}
listen
{
       isakmp A.A.A.A [500];
}
timer
{
        counter 5;              # maximum trying count to send.
        interval 20 sec;        # maximum interval to resend.
        persend 1;              # the number of packets per send.
        phase1 30 sec;
        phase2 15 sec;
}
remote B.B.B.B
{
    exchange_mode main;
    doi ipsec_doi;
    situation identity_only;
    my_identifier address A.A.A.A;
    peers_identifier address B.B.B.B;
    nonce_size 16;
    #lifetime time 28800 sec;
    initial_contact on;
    #support_proxy on;
    proposal_check obey;
  
    proposal {
        encryption_algorithm 3des;
        hash_algorithm md5;
        authentication_method pre_shared_key;
        dh_group 2;
        lifetime time 28800 sec;
    }
}
sainfo subnet 192.168.99.0/24 any subnet 192.168.1.0/24 any
{
       pfs_group 2;
       lifetime time 3600 sec;
       encryption_algorithm 3des;
       authentication_algorithm hmac_md5;
       compression_algorithm deflate;
}

соответствующий rc.conf:
ipsec_enable="YES"
ipsec_file="/etc/ipsec.conf"
racoon_enable="YES"
racoon_flags="-l /var/log/racoon.log -f /usr/local/etc/racoon/racoon.conf"


В итоге логи ракуна говорят о том, что туннель поднимается.
2009-05-26 13:29:59: INFO: @(#)ipsec-tools 0.7.1 (http://ipsec-tools.sourceforge.net)
2009-05-26 13:29:59: INFO: @(#)This product linked OpenSSL 0.9.7e-p1 25 Oct 2004 (http://www.openssl.org/)
2009-05-26 13:29:59: INFO: Reading configuration from "/usr/local/etc/racoon/racoon.conf"
2009-05-26 13:29:59: INFO: Resize address pool from 0 to 255
2009-05-26 13:29:59: INFO: A.A.A.A[500] used as isakmp port (fd=5)
2009-05-26 13:30:00: INFO: IPsec-SA request for B.B.B.B queued due to no phase1 found.
2009-05-26 13:30:00: INFO: initiate new phase 1 negotiation: A.A.A.A[500]<=>B.B.B.B[500]
2009-05-26 13:30:00: INFO: begin Identity Protection mode.
2009-05-26 13:30:00: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-00
2009-05-26 13:30:00: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
2009-05-26 13:30:00: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02

2009-05-26 13:30:00: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-03
2009-05-26 13:30:00: INFO: received Vendor ID: RFC 3947
2009-05-26 13:30:00: INFO: received Vendor ID: DPD
2009-05-26 13:30:00: INFO: ISAKMP-SA established A.A.A.A[500]-B.B.B.B[500] spi:ae5f4e8760e26da0:0d6dc6ed14c21965
2009-05-26 13:30:01: INFO: initiate new phase 2 negotiation: A.A.A.A[500]<=>B.B.B.B[500]
2009-05-26 13:30:01: INFO: IPsec-SA established: ESP/Tunnel B.B.B.B[0]->A.A.A.A[0] spi=42043261(0x281877d)
2009-05-26 13:30:01: INFO: IPsec-SA established: ESP/Tunnel A.A.A.A[0]->B.B.B.B[0] spi=3549110462(0xd38b20be)

Также на DFL-210 туннель этот активен.

Дальше добавляю на фре маршрут на сеть 192.168.1.0/24
# route add 192.168.1.0/24 B.B.B.B

и пытаюсь пропинговать хост в сети за B.B.B.B:
# ping 192.168.1.100
PING 192.168.1.100 (192.168.1.100): 56 data bytes
ping sendto: Invalid argument
ping sendto: Invalid argument
ping sendto: Invalid argument
^C

В чем может быть дело??? Хелп, плиз!!!!


"Настройка IPSec между DFL-210 и FreeBSD 6.3"
Отправлено ailman , 28-Май-09 10:39 
Урааа!!! Наконец-то спустя 2 месяца все получилось ))
Если к последним конфигам добавить в rc.conf:

cloned_interfaces="gif0"
gif_interfaces="gif0"
gifconfig_gif0="A.A.A.A B.B.B.B"
ifconfig_gif0="inet 192.168.99.10 192.168.1.1 netmask 0xffffffff"
static_routes="RemoteLan"
route_RemoteLan="192.168.1/24 -interface gif0"

То пинги удачно ходят и туда и обратно, т.к. маршрут на сеть 192.168.1.0/24 прописывается через gif-интерфейс. Теперь все работает.
Однако, как-то слышал, что можно обойтись без gif-интерфейса. Тогда какую маршрутизацию нужно прописывать на фре???