LINUX.ORG.RU

Сообщения NutipA

 

Проблема с игнорированием SA в IPSec

Форум — Security

Всем привет. Необходимо поднять IPSec туннель между двумя офисами, при следующей конфигурации:

LAN1 (192.168.1.0/24)
|
FreeBSD 8.2 (192.168.1.2) + ipfw NAT over PPTP(X.X.X.X)
|
|
internet
|
|
ZyXEL ZyWALL USG50 (192.168.10.1) + NAT over PPTP (Y.Y.Y.Y)
|
LAN2 (192.168.10.0/24)

Туннель поднимается, трафик между двумя VPN-гейтами с белыми адресами X.X.X.X и Y.Y.Y.Y успешно инкапсулруется, шифруется и в снифере виден как пакеты с ESP-заголовками. Добавил два статических роута на шлюзах в частные сети. Но при попытке пинга с клиентской машины в LAN1 гейта ZyXEL LAN2 вижу в снифере (на фряхе) следующую картину:

19:33:42.506971 IP X.X.X.X > Y.Y.Y.Y : IP 192.168.1.102 > 192.168.10.1: ICMP echo request, id 13941, seq 4, length 64 (ipip-proto-4)

То есть по каким-то причинам пакет, пройдя первый этап инкапсуляции на gif-интерфейсе, далее не икапсулируется при помощи ipsec-tools и идет нешифрованным в обход политик безопасности и установленных SA:

192.168.10.0/24[any] 192.168.1.0/24[any] any
        in ipsec
        esp/tunnel/Y.Y.Y.Y-X.X.X.X/use
        spid=6 seq=1 pid=23533
        refcnt=1
192.168.1.0/24[any] 192.168.10.0/24[any] any
        out ipsec
        esp/tunnel/X.X.X.X-Y.Y.Y.Y/use
        spid=5 seq=0 pid=23533
        refcnt=1

Пожалуйста помогите понять, в чем тут проблема. Одно время думал, что нужно включить NAT-T, но, насколько я понял, он нужен для случая, когда гейт находится за NAT'ом, не имея своего белого адреса, в моем случае как таковой трансляции адреса не происходит, а происходит инкапсуляция, то есть нат тут не участвует. Т.к. SA носят односторонний характер, то можно утверждать, что уже на этапе гейта LAN1 имеем неправильное поведение, поэтому настройки второго гейта можно пока не рассматривать. Насколько я понимаю, трафик от клиентских машин хотя бы в направлении LAN1->LAN2 должен выглядеть следующим образом (т.е. как минимум дважды инкапсулироваться и наверх шифроваться):

21:34:16.486698 IP Y.Y.Y.Y > X.X.X.X: ESP(spi=0x043488c2,seq=0x66), length 116

Выводы команд и конфиги:

[19:00]root@beta:/home/NutipA# cat /usr/local/etc/racoon/setkey.conf
flush;
spdflush;
# To the second office network
spdadd 192.168.1.0/24 192.168.10.0/24 any -P out ipsec esp/tunnel/X.X.X.X-Y.Y.Y.Y/use;
spdadd 192.168.10.0/24 192.168.1.0/24 any -P in ipsec esp/tunnel/Y.Y.Y.Y-X.X.X.X/use;
[19:02]root@beta:/home/NutipA# cat /usr/local/etc/racoon/racoon.conf
path    pre_shared_key  "/usr/local/etc/racoon/psk.txt"; #location of pre-shared key file
log     debug;  #log verbosity setting: set to 'notify' when testing and debugging is complete

padding # options are not to be changed
{
        maximum_length  20;
        randomize       off;
        strict_check    off;
        exclusive_tail  off;
}

timer   # timing options. change as needed
{
        counter         5;
        interval        20 sec;
        persend         1;
#       natt_keepalive  15 sec;
        phase1          30 sec;
        phase2          15 sec;
}

listen  # address [port] that racoon will listening on
{
        isakmp          X.X.X.X [500];
        isakmp_natt     X.X.X.X [4500];
}

remote  Y.Y.Y.Y [500]
{
        exchange_mode   main,aggressive;
        doi             ipsec_doi;
        situation       identity_only;
        my_identifier   address X.X.X.X;
        peers_identifier        address Y.Y.Y.Y;
        lifetime        time 8 hour;
        passive         off;
        proposal_check  obey;
#       nat_traversal   off;
        generate_policy off;

                        proposal {
                                encryption_algorithm    3des;
                                hash_algorithm          md5;
                                authentication_method   pre_shared_key;
                                lifetime time           30 sec;
                                dh_group                1;
                        }
}

sainfo  (address 192.168.1.0/24 any address 192.168.10.0/24 any)    # address $network/$netmask $type address $network/$netmas
{                               # $network must be the two internal networks you are joining.
        pfs_group       1;
        lifetime        time    36000 sec;
        encryption_algorithm    3des,des;
        authentication_algorithm        hmac_md5,hmac_sha1;
        compression_algorithm   deflate;
}
[18:53]root@beta:/home/NutipA# ifconfig
em0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
        options=2098<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM,WOL_MAGIC>
        ether 00:17:31:55:a6:07
        inet 192.168.1.2 netmask 0xffffff00 broadcast 192.168.1.255
        media: Ethernet autoselect (1000baseT <full-duplex>)
        status: active
<output ommitted>
tun0: flags=8151<UP,POINTOPOINT,RUNNING,PROMISC,MULTICAST> metric 0 mtu 1400
        options=80000<LINKSTATE>
        inet X.X.X.X --> 81.25.33.1 netmask 0xffffffff 
        Opened by PID 32338
gif0: flags=8051<UP,POINTOPOINT,RUNNING,MULTICAST> metric 0 mtu 1280
        tunnel inet X.X.X.X --> Y.Y.Y.Y
        inet 192.168.1.2 --> 192.168.10.1 netmask 0xffffff00 
        options=1<ACCEPT_REV_ETHIP_VER>
[19:03]root@beta:/home/NutipA# netstat -rn
Routing tables

Internet:
Destination        Gateway            Flags    Refs      Use  Netif Expire
default            Z.Z.Z.Z         UGS         0    74261   tun0
<output ommitted>
192.168.1.0/24     link#1             U           2  1097106    em0
192.168.1.2        link#1             UHS         0        0    lo0
192.168.10.0/24    192.168.10.1       UGS         0      549   gif0
192.168.10.1       link#8             UH          0     4230   gif0
[18:57]root@beta:/home/NutipA# cat /etc/rc.conf 
zfs_enable="YES"
hostname="beta"
ifconfig_em0="inet 192.168.1.2 netmask 255.255.255.0 -rxcsum -txcsum -tso"
sshd_enable="YES"
ifconfig_vr0="DHCP"
gateway_enable="YES"
firewall_enable="YES"
firewall_nat_enable="YES"
dummynet_enable="YES"
firewall_type="/etc/firewall"

P.S. Да, я в курсе, что FreeBSD это не Linux, но пакет ipsec-tools, который используется для создания IPSec-туннелей в обоих ОС и добрая слава этого форума, позволили мне спросить тут совета:)

NutipA
()

Проблема с автосозданием хомяков

Форум — Admin

Доброе время суток!

Я настроил samba + winbind + vsftpd + pam + ad auth. Все замечательно работает: пользователи аутентифицируются, могут работать с самбой и фтп-директориями, но есть одна проблема - никак не могу добиться автосоздания (если отсутствует) домашнего каталога пользователя при входе по фтп. Знаю, что проблема должна решаться при помощи PAM модуля pam_mkhomedir.so, я попытался, но безуспешно. Вот мой памфайл:

cat /etc/pam.d/vsftpd
###
# Active Directory authentication
###
auth required pam_nologin.so 
auth sufficient pam_winbind.so krb5_auth
auth required pam_unix.so no_warn try_first_pass
account required pam_nologin.so 
account sufficient pam_winbind.so krb5_auth
account required pam_unix.so
session required pam_mkhomedir.so
session required pam_permit.so

Я также пытался задавать параметры в виде umask и skel - не помогло. Тщательно проверил права доступа на папку, где будет создаваться домашний каталог и даже временно выставлял их в 777 - безуспешно. Самба, однако, успешно решает эту задачу при помощи некоторых своих директив, в частности возможности выполнения скрипта при заходе. Благодаря директиве template homedir = /var/filestore/%D/%U мой включенный в домен комп знает, где будет домашний каталог виртуального пользователя, что видно из следующего примера:

ftp localhost
Connected to localhost.minsk-team.test.by.
220 Welcome to FTP service.
Name (localhost:root): testuser
331 Please specify the password.
Password:
500 OOPS: cannot change directory:/var/filestore/MINSK-TEAM/testuser
Login failed.

Отсюда вопрос, умеет ли вообще pam_mkhomedir.so работать не с путем вида /home/.../%U? Если да, то помогите пожалуйста осознать, в чем затык и разобраться с автосозданием директорий при входе по фтп.

NutipA
()

RSS подписка на новые темы