LINUX.ORG.RU
решено ФорумAdmin

[ipsec][racoon][isakmpd][openbsd] тонель между опенбсд и линуксом

 , ,


0

0

ситуация такая :3
1. на опенке стоит isakmpd в пассивном режиме
2. на линуксе - racoon в активном + setkey
3. соединение устанавливается.
пинги со стороны опенка в сеть за линуксом проходят нормально, тспдамп вот

18:15:14.256568 IP gw2.lol.su > gw1.lol.su: ESP(spi=0x0781d574,seq=0xa9), length 116
18:15:14.256802 IP gw1.lol.su > gw2.lol.su: ESP(spi=0xa1f7e02f,seq=0x89), length 116
18:15:15.266053 IP gw2.lol.su > gw.lol.su: ESP(spi=0x0781d574,seq=0xaa), length 116
18:15:15.266271 IP gw.lol.su > gw2.lol.su: ESP(spi=0xa1f7e02f,seq=0x8a), length 116
а со стороны линукса нет о_О
в чем может быть трабл?

Есть четыре точки отказа пинга: DNS, линк, маршрутизация, файрвол. В вашем случае, сначала попробуйте ping -n, потом посмотрите таблицы маршрутизации и файрволы.

А вообще, в вашем сообщение отсутствует вообще какая-либо полезная информация - ни вывода route -n с линукса и openbsd, ни вывода iptables-save с линукса, ни вывода ipfw show (или что там на openbsd), ни инфомации о том что же вы пингуете. tcpdump работающего пинга интересен только детям. И кстати, tcpdump в таких случаях надо пускать с ключиком "-n"

Nastishka ★★★★★
()

pf.conf, таблицу маршрутизации с линукса

val-amart ★★★★★
()

>Есть четыре точки отказа пинга: DNS, линк, маршрутизация, файрвол.
Гг...

таблицу маршрутизации с линукса

Оно и так в кернеле работает.

По теме: IKE - это хорошо, но что с политиками (ipsec-tools.conf на линукс. Что на openbsd, не знаю)?

markevichus ★★★
()
Ответ на: комментарий от markevichus

> > таблицу маршрутизации с линукса

Оно и так в кернеле работает.


Не факт

но что с политиками ipsec-tools.conf


Подозрений на transport/tunnel mode нет? Есть смутные подозрения насчет этого

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

в опенке pf (packet filtr)

а в целом согласен,

2maxcom: Мне одному кажется, что у телепатов затянулся отпуск?

wlan ★★
()

openbsd
/etc/pf.conf

                                                     
int_if="rl0"
zhof="217.xx.xx.xx"
block all
set skip on lo
pass in inet proto tcp from any to any port 22 
pass in inet proto tcp from any to $int_if port 25
pass in inet proto tcp from $int_if:network to $int_if port 3128
pass in inet proto icmp from $int_if:network to $int_if
pass in from $zhof to $int_if
pass in from 192.168.0.0/24 to 192.168.4.0/24
pass out from any to any
/etc/isakmpd.conf
[General]
Retransmits=            5
Exchange-max-time=      120
Listen-on=              192.168.4.10
Shared-SADB=            Defined

[Phase 1]
217.66.19.33=           ISAKMP-zhurnal
Default=                ISAKMP-zhurnal

[Phase 2]
Connections=            IPsec-rodina-zhurnal

[ISAKMP-zhurnal]
Phase=                  1
Transport=              udp
Local-address=          192.168.4.10
Address=                217.xx.xx.xx
Configuration=          Default-main-mode
Authentication=         xxxxx

[IPsec-rodina-zhurnal]
Phase=                  2
ISAKMP-peer=            ISAKMP-zhurnal
Configuration=          Default-quick-mode
Local-ID=               Net-rod
Remote-ID=              Net-zhur

[Net-zhur]
ID-type=                IPV4_ADDR_SUBNET
Network=                192.168.0.0
Netmask=                255.255.255.0

[Net-rod]
ID-type=                IPV4_ADDR_SUBNET
Network=                192.168.4.0
Netmask=                255.255.255.0

[Default-main-mode]
DOI=                    IPSEC
EXCHANGE_TYPE=          ID_PROT
Transforms=             3DES-SHA,3DES-MD5

[Default-quick-mode]
DOI=                    IPSEC
EXCHANGE_TYPE=          QUICK_MODE
Suites=                 QM-ESP-3DES-SHA-PFS-SUITE,QM-ESP-3DES-MD5-PFS-SUITE

[3DES-SHA]
ENCRYPTION_ALGORITHM=   3DES_CBC
HASH_ALGORITHM=         SHA
AUTHENTICATION_METHOD=  PRE_SHARED
GROUP_DESCRIPTION=      MODP_1024
Life=                   LIFE_180_SECS

[3DES-MD5]
ENCRYPTION_ALGORITHM=   3DES_CBC
HASH_ALGORITHM=         MD5
AUTHENTICATION_METHOD=  PRE_SHARED
GROUP_DESCRIPTION=      MODP_1024
Life=                   LIFE_180_SECS

[QM-ESP-3DES-SHA-PFS-SUITE]
Protocols=              QM-ESP-3DES-SHA-PFS

[QM-ESP-3DES-MD5-PFS-SUITE]
Protocols=              QM-ESP-3DES-MD5-PFS

[QM-ESP-3DES-SHA-SUITE]
Protocols=              QM-ESP-3DES-SHA
[QM-ESP-3DES-MD5-SUITE]
Protocols=              QM-ESP-3DES-MD5


[QM-ESP-3DES-SHA-PFS]
PROTOCOL_ID=            IPSEC_ESP
Transforms=             QM-ESP-3DES-SHA-PFS-XF

[QM-ESP-3DES-SHA]
PROTOCOL_ID=            IPSEC_ESP
Transforms=             QM-ESP-3DES-SHA-XF

[QM-ESP-3DES-MD5-PFS]
PROTOCOL_ID=            IPSEC_ESP
Transforms=             QM-ESP-3DES-MD5-PFS-XF

[QM-ESP-3DES-MD5]
PROTOCOL_ID=            IPSEC_ESP
Transforms=             QM-ESP-3DES-MD5-XF

[QM-ESP-3DES-SHA-PFS-XF]
TRANSFORM_ID=                   3DES
ENCAPSULATION_MODE=             TUNNEL
AUTHENTICATION_ALGORITHM=       HMAC_SHA
GROUP_DESCRIPTION=              MODP_1024
Life=                           LIFE_3600_SECS

[QM-ESP-3DES-SHA-XF]
TRANSFORM_ID=                   3DES
ENCAPSULATION_MODE=             TUNNEL
AUTHENTICATION_ALGORITHM=       HMAC_SHA
GROUP_DESCRIPTION=              MODP_1024
Life=                           LIFE_3600_SECS

[QM-ESP-3DES-MD5-PFS-XF]
TRANSFORM_ID=                   3DES
ENCAPSULATION_MODE=             TUNNEL
AUTHENTICATION_ALGORITHM=       HMAC_MD5
GROUP_DESCRIPTION=              MODP_1024
Life=                           LIFE_3600_SECS

 [QM-ESP-3DES-MD5-XF]
TRANSFORM_ID=                   3DES   
ENCAPSULATION_MODE=             TUNNEL
AUTHENTICAION_ALGORITHM=        HMAC_MD5
GROUP_DESCRIPTION=              MODP_1024
Life=                           LIFE_3600_SECS


[LIFE_8_HOURS]
LIFE_TYPE=              SECONDS
LIFE_DURATION=          28800,25200:32400

[LIFE_1_DAY]
LIFE_TYPE=              SECONDS
LIFE_DURATION=          86400,79200:93600

[LIFE_180_SECS]
LIFE_TYPE=              SECONDS
LIFE_DURATION=          180,120:240

[LIFE_3600_SECS]
LIFE_TYPE=              SECONDS
LIFE_DURATION=          3600,1800:7200
                                                                              

роуты после устанволения соединения

Internet:
Destination        Gateway            Flags   Refs      Use   Mtu  Prio Iface
default            192.168.4.1        UGS       11    10523     -     8 rl0
loopback           localhost          UGRS       0        0 33200     8 lo0
localhost          localhost          UH         2       23 33200     4 lo0
192.168.4/24       link#1             UC         1        0     -     4 rl0
192.168.4.1        00:19:cb:d3:b6:7e  UHLc       1      313     -     4 rl0
192.168.4.10       localhost          UGHS       0        0 33200     8 lo0


Encap:
Source             Port  Destination        Port  Proto SA(Address/Proto/Type/Direction)
192.168.0/24       0     192.168.4/24       0     0     217.xx.xx.xx/esp/use/in
192.168.4/24       0     192.168.0/24       0     0     217.xx.xx.xx/esp/require/out

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

linux
/etc/racoon/

path pre_shared_key "/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 217.xx.xx.xx [500];
strict_address;	
}


timer
{
    counter 5;
    interval 20 sec;
    persend 1;
    phase1 90sec;
    phase2 90sec;
}
	    
		    
remote 78.xx.xx.xx
{
exchange_mode aggressive,main;
doi ipsec_doi;
situation identity_only;

nonce_size 16;
lifetime time 28800 sec;
initial_contact on;
proposal_check obey; 

proposal {  
            encryption_algorithm 3des;
            hash_algorithm sha1;
            authentication_method pre_shared_key ;
            dh_group 2 ;
        }									
}

sainfo anonymous {
        pfs_group 2; 
        encryption_algorithm 3des;
        authentication_algorithm hmac_sha1;
	lifetime time 3600 sec;
	compression_algorithm deflate;
}

/etc/racoon/ipsec.conf (используется при setkey -f )

flush; 
spdflush; 
spdadd 192.168.0.0/24 192.168.4.0/24 any -P out ipsec esp/tunnel/217.xx.xx.xx-78.xx.xx.xx/require; 
spdadd 192.168.4.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/78.xx.xx.xx-217.xx.xx.xx/require; 

соединение устанавливается
затем вручную добавляю маршрут
ip route add 192.168.4.0/24 via 217.xx.xx.xx src 192.168.0.1
в итоге таблица роутинга

217.gw.provadera.xx    0.0.0.0         255.255.255.255 UH        0 0          0 ppp0
192.168.4.0     217.xx.xx.xx    255.255.255.0   UG        0 0          0 ppp0
192.168.0.0     0.0.0.0         255.255.255.0   U         0 0          0 eth0
0.0.0.0         0.0.0.0         0.0.0.0         U         0 0          0 ppp0

частичные строки из настрйоки iptables

-A INPUT -s 192.168.4.0/255.255.255.0 -d 192.168.0.0/255.255.255.0 -j ACCEPT 
-A INPUT -p esp -j ACCEPT 
-A OUTPUT -s 192.168.0.0/255.255.255.0 -d 192.168.4.0 -j ACCEPT 
-A INBOUND -p tcp -m tcp --dport 500 -j ACCEPT 
-A INBOUND -p udp -m udp --dport 500 -j ACCEPT 
-A INBOUND -p tcp -m tcp --dport 4500 -j ACCEPT 
-A INBOUND -p udp -m udp --dport 4500 -j ACCEPT 

форвард пока не добавлен да он и не нужен для пинга

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

[code]spdadd 192.168.0.0/24 192.168.4.0/24 any -P out ipsec esp/tunnel/217.xx.xx.xx-78.xx.xx.xx/require; spdadd 192.168.4.0/24 192.168.0.0/24 any -P in ipsec esp/tunnel/78.xx.xx.xx-217.xx.xx.xx/require;[/code]

Ага, туннель. Беглым взглядом, список кандидатов:

1. Насколько помню IPSec HowTo, spdadd для transport mode (когда делается пинг с линукса до openbsd) выглядит несколько по-другому

2. Кроме того, в iptables нет разрешений на icmp input. Кроме того, насколько понимаю, пинг с линукса на openbsd будет выглядеть как 217.xx.xx.xx <-> 78.yy.yy.yy

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

1. так я то пингую с внутренней подсети 1 во внутренюю подсеть 2, причем тут режим транспорта? тунель же
2. хорошо будем считать что пинг режет роутер.

однако со стороны obsd.

# telnet 192.168.0.5 22
Trying 192.168.0.5...
Connected to 192.168.0.5.
Escape character is '^]'.
SSH-2.0-OpenSSH_5.3
^C
Connection closed by foreign host.
# telnet 192.168.0.1 25 
Trying 192.168.0.1...
Connected to 192.168.0.1.
Escape character is '^]'.
220 mail.xxx.xx ESMTP Postfix 
^C
quit
Connection closed by foreign host.
# 
а ни с 0.1
root@router:/etc/firestarter# telnet 192.168.4.10 22
Trying 192.168.4.10...
telnet: Unable to connect to remote host: No route to host
root@router:/etc/firestarter# 
ни с 0.5
[gleb@1c ~]$ telnet 192.168.4.10 22
Trying 192.168.4.10...
telnet: connect to address 192.168.4.10: No route to host
[gleb@1c ~]$ 
так что явно видна проблема в роутинге в линуксе

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

> форвард пока не добавлен да он и не нужен для пинга

Очень даже нужен, вы неправы.

так что явно видна проблема в роутинге в линуксе


Нет. No route to host выдается во всех случаях, когда не удалось определить next hop или пакет был порезан на файрволе с уведомлением, и к маршрутизации это имеет слабое отношение. Кроме того, если бы проблема была с маршрутизацией, у вас бы вообще ничего не работало, ни в направлении OpenBSD->Linux, ни в обратном. Проблема «односторонней связи» практически всегда является следствием кривых настроек файрвола. Неправильный FORWARD скорей всего препятствует соединению машин из двух локалок, а вот из-за этого: -A OUTPUT -s 192.168.0.0/255.255.255.0 -d 192.168.4.0 -j ACCEPT у вас не пойдет пинг с линукса на openbsd и его локалку: 192.168.4.0 != 192.168.4.0/24

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka

я про форвард между другими подсетями
правило подправил но пинги все так же не проходят
алсо столкнулся с тем что racoon не выступает инициатором связи. т.е. при его рестарте канал не восстанавливается.

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

Что рассказывает tcpdump -eni ppp0 запущеный на линуксе, в процессе пинга с линукса на openbsd? Какие пакеты уходят, и куда? Что показывает tcpdump на bsd?

Nastishka ★★★★★
()
Ответ на: комментарий от Nastishka
18:19:45.639500 Out ethertype IPv4 (0x0800), length 100: 217.xx.xx.xx > 192.168.4.10: ICMP echo request, id 3892, seq 8, length 64
18:19:45.639912  In ethertype IPv4 (0x0800), length 72: 217.gw.provider.xx > 217.xx.xx.xx: ICMP host 192.168.4.10 unreachable - admin prohibited filter, length 36

такое ощущение что игнорируется таблица маршрутизации
пинг пытается идти через gw pppoe соединения а не через внешний айпи.

guyvernk
() автор топика
Ответ на: комментарий от guyvernk
root@router:~# ping 192.168.4.10
PING 192.168.4.10 (192.168.4.10) 56(84) bytes of data.
From 217.gw.xx.xx icmp_seq=1 Packet filtered
From 217.gw.xx.xx icmp_seq=2 Packet filtered
From 217.gw.xx.xx icmp_seq=3 Packet filtered

короче он шлет пакеты не туда.
iptables -t nat -I POSTROUTING 1 -p 50 -j ACCEPT
добавил толку нет

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

Меня больше всего настораживает вот эта строка: 217.xx.xx.xx > 192.168.4.10. При ней как раз ничего работать и не должно. Уберите правило NAT, и попробуйте ping -I 192.168.0.1 192.168.4.10, было бы неплохо увидеть результат. Еще наверное неплохо увидеть результат tcpdump от ping 192.168.0.5 -> 192.168.4.10

Nastishka ★★★★★
()
Ответ на: комментарий от guyvernk

Если вы используете
ip route add 192.168.4.0/24 via 217.xx.xx.xx src 192.168.0.1
,то добавьте ipsec-транспорт. Туннель будет работать для компьютеров, находящихся за этими шлюзами.

markevichus ★★★
()
Ответ на: комментарий от guyvernk

млин...

сделать:
1. Политика для туннеля между двумя подсетями.
2. Политика для транспорта между 2мя гейтвеями филиалов (опционально - оно аще нужно?)
4. IKE
3. ip_forward=1
4. Разрешить правила файрволла.
5. Попробовать пингануть с компа из одной подсети комп из другой.

Никакого ната и дополнительных роутов не нужно. Оно работает в ядре.

markevichus ★★★
()
Ответ на: комментарий от markevichus

не работает.
ситуация:
linux - подсеть 192.168.0.0/24 gw 217.xx.xx.xx, racoon
openbsd - подсеть 192.168.4.0/24 gw 78.yy.yy.yy, isakmpd
нужно настроить тонель между подсетями

на linux конфиг setkey
знаю что даже излишние полиси

flush;
spdflush;
spdadd 192.168.0.0/24   192.168.4.0/24  any -P out ipsec
 esp/tunnel/217.xx.xx.xx-78.yy.yy.yy/require;
spdadd 192.168.0.0/24   192.168.4.0/24  any -P in ipsec
 esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require;
spdadd 192.168.4.0/24   192.168.0.0/24  any -P in ipsec
 esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require;
spdadd 192.168.4.0/24   192.168.0.0/24  any -P out ipsec
 esp/tunnel/217.xx.xx.xx-78.yy.yy.yy/require;
после поднятия тонеля на openbsd получает след ключи
# ipsecctl -sa  
FLOWS:
flow esp in from 192.168.0.0/24 to 192.168.4.0/24 peer 217.xx.xx.xx srcid 78.yy.yy.yy/32 dstid 217.xx.xx.xx/32 type use
flow esp out from 192.168.4.0/24 to 192.168.0.0/24 peer 217.xx.xx.xx srcid 78.yy.yy.yy/32 dstid 217.xx.xx.xx/32 type require

SAD:
esp tunnel from 78.yy.yy.yy to 217.xx.xx.xx spi 0x0ee1c03f auth hmac-sha1 enc 3des-cbc
esp tunnel from 217.xx.xx.xx to 78.yy.yy.yy spi 0x5edea6b3 auth hmac-sha1 enc 3des-cbc
# 
ключи на linux убрал старые ключи, только последнюю пару
setkey -D
217.xx.xx.xx 78.yy.yy.yy 
	esp mode=tunnel spi=1696630320(0x65208630) reqid=0(0x00000000)
	E: 3des-cbc  ff0f67a5 08bc244a e521365d 3d14cb0c daac6000 b8951950
	A: hmac-sha1  8d1f2d77 65974857 8b3f86dd 448a363f 61ade194
	seq=0x00000000 replay=4 flags=0x00000000 state=mature 
	created: Jun  1 10:05:57 2010	current: Jun  1 10:40:03 2010
	diff: 2046(s)	hard: 28800(s)	soft: 23040(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=7 pid=21985 refcnt=0
78.yy.yy.yy 217.xx.xx.xx 
	esp mode=tunnel spi=169751263(0x0a1e32df) reqid=0(0x00000000)
	E: 3des-cbc  10f23080 fc6b7e35 5d4d97c3 9e187a79 625a652f 946b80f0
	A: hmac-sha1  820595b0 28d3ae97 dcd88017 5053f1f8 ece3b3a7
	seq=0x00000000 replay=4 flags=0x00000000 state=mature 
	created: Jun  1 10:05:57 2010	current: Jun  1 10:40:03 2010
	diff: 2046(s)	hard: 28800(s)	soft: 23040(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=0 pid=21985 refcnt=0
и полиси
192.168.0.0/24[any] 192.168.4.0/24[any] any
	in prio def ipsec
	esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7536 seq=1 pid=23233
	refcnt=1
192.168.4.0/24[any] 192.168.0.0/24[any] any
	in prio def ipsec
	esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7552 seq=2 pid=23233
	refcnt=1
192.168.0.0/24[any] 192.168.4.0/24[any] any
	out prio def ipsec
	esp/tunnel/217.xx.xx.xx-78.yy.yy.yy/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7529 seq=3 pid=23233
	refcnt=1
192.168.4.0/24[any] 192.168.0.0/24[any] any
	out prio def ipsec
	esp/tunnel/217.xx.xx.xx-78.yy.yy.yy/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7569 seq=4 pid=23233
	refcnt=1
192.168.0.0/24[any] 192.168.4.0/24[any] any
	fwd prio def ipsec
	esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7546 seq=5 pid=23233
	refcnt=1
192.168.4.0/24[any] 192.168.0.0/24[any] any
	fwd prio def ipsec
	esp/tunnel/78.yy.yy.yy-217.xx.xx.xx/require
	created: Jun  1 10:05:47 2010  lastused:                     
	lifetime: 0(s) validtime: 0(s)
	spid=7562 seq=6 pid=23233
	refcnt=1

при попытки пинговать с любой из сторон пинг идет на дефолтгейтвей, и соответственно отбрасывается роутером провайдера

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

сейчас посадил вместо linux - аппаратный впн
ситуация та же самая - тоннель поднимается, трафик не идет o_O

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

>знаю что даже излишние полиси

spdadd 192.168.0.0/24 192.168.4.0/24 any -P in ipsec

spdadd 192.168.4.0/24 192.168.0.0/24 any -P out ipsec


А зачем их тогда писать? Уберите эти политики.

Не знаком с bsd-ишной реализацией IKE. Я бы на вашем месте сделал всё с начала по LARTC и пока вобще без IKE: пропишите секреты прямо в ipsec-tools.conf. Для простоты можно сначала попробовать организовать ТОЛЬКО транспорт между двумя шлюзами и попинговать друг друга.

Смотрите файрвол - никаких НАТов 192.168.0.0/24->192.168.4.0/24 не должно быть. Т.е. при присутствии правил ната должно добавляться --dst !192.168.4.0/24 (в случае машины с linux).
Не должно быть никаких дополнительных роутов. Т.е., грубо говоря, на машине с linux в выводу ip route не должна фигурировать сеть 192.168.4.0/24.
Смотрите разрешений в FORWARD, наличие ip_forward=1.
Пользуйтесь tcpdump на внешних и внутренних интерфейсах шлюзов. Проведите какой-то анализ. «Не работает» - это не диагноз.

markevichus ★★★
()
Ответ на: комментарий от markevichus

Для простоты можно сначала попробовать организовать ТОЛЬКО транспорт между двумя шлюзами и попинговать друг друга.

сделано
трафик идет в esp
со стороны openbsd:

udp   O 78.xx.xx.xx:500     217.yy.yy.yy:500      2:2     83    32     9  2136
esp   I 217.yy.yy.yy:0        78.xx.xx.xx:0       2:2     11    55    24  3520
tcpdump -eni enc0
17:14:45.748071 (authentic,confidential): SPI 0xa29de94b: 217.yy.yy.yy.37371 > 78.xx.xx.xx.22: . ack 144 win 49392 [tos 0x10]
17:14:46.460722 (authentic,confidential): SPI 0x0dd3274f: 78.xx.xx.xx.22 > 217.yy.yy.yy.38479: P 1521:1713(192) ack 0 win 17424 (DF) [tos 0x10]
tcpdump -eni pppoe0
17:16:51.911787 PPPoE 
        code Session, version 1, type 1, id 0x9b79, length 778
        IP: esp 78.xx.xx.xx > 217.yy.yy.yy spi 0x0dd3274f seq 287 len 756 (DF) [tos 0x10]
17:16:51.926350 PPPoE 
        code Session, version 1, type 1, id 0x9b79, length 90
        IP: esp 217.yy.yy.yy > 78.xx.xx.xx spi 0xa29de94b seq 388 len 68 [tos 0x10]
со стороны linux
tcpdump -eni ppp0 host 78.xx.xx.xx
17:19:41.361364  In ethertype IPv4 (0x0800), length 248: 78.xx.xx.xx > 217.yy.yy.yy: ESP(spi=0x0dd3274f,seq=0x146), length 212
17:19:41.361409 Out ethertype IPv4 (0x0800), length 104: 217.yy.yy.yy > 78.xx.xx.xx: ESP(spi=0xa29de94b,seq=0x1ae), length 68
и как я понял ядро linux не создает псевдоинтерфейса для ipsec ? как тогда фильтровать? о_О

и как теперь связать подсети?

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

>и как я понял ядро linux не создает псевдоинтерфейса для ipsec ? как тогда фильтровать? о_О
Нет, не создаёт. А в чём проблема? Отсутствия -i iface для iptables? Так оно и не нужно - используйте --src, --dst.

и как теперь связать подсети?

Теперь нужно составить политику для туннеля и указать клиентам в подсетях, что, мол, путь к 192.168.4.0/24 лежит за ipsec-шлюзом, если он не является умолчательным. Разреши соответствующий форвард. Вроде, всё.

markevichus ★★★
()
Ответ на: комментарий от markevichus

создал тонель
и пришел к тому с чего начинал.

схема соединения
192.168.0.5 - 192.168.0.1[eth0]router-linux[ppp0]217.xx.xx.xx = 78.yy.yy.yy[pppoe0]router-open[rl0]192.168.4.10 - 192.168.4.1
пинг из подсети openbsd проходит
ping -I 192.168.4.10 192.168.0.5
на бсд
tcpdump -eni enc0

23:04:42.689434 (authentic,confidential): SPI 0x7903fcfd: 192.168.0.5 192.168.4.10: icmp: echo reply (encap)
23:04:43.678678 (authentic,confidential): SPI 0x056a668f: 192.168.4.10 192.168.0.5: icmp: echo request (encap)
на линуксе
tcpdump -eni ppp0 icmp
23:12:09.767195  In ethertype IPv4 (0x0800), length 100: 192.168.4.10 > 192.168.0.5: ICMP echo request, id 48938, seq 277, length 64
23:12:10.779526  In ethertype IPv4 (0x0800), length 100: 192.168.4.10 > 192.168.0.5: ICMP echo request, id 48938, seq 278, length 64
23:12:11.789003  In ethertype IPv4 (0x0800), length 100: 192.168.4.10 > 192.168.0.5: ICMP echo request, id 48938, seq 279, length 64

tcpdump -eni eth0 icmp

23:17:15.811359 00:26:18:dd:e8:f8 > 00:1f:c6:b8:2f:d1, ethertype IPv4 (0x0800), length 98: 192.168.4.10 > 192.168.0.5: ICMP echo request, id 48938, seq 580, length 64
23:17:15.815739 00:1f:c6:b8:2f:d1 > 00:26:18:dd:e8:f8, ethertype IPv4 (0x0800), length 98: 192.168.0.5 > 192.168.4.10: ICMP echo reply, id 48938, seq 580, length 64
на 0.5 tcpdump -eni eth0 icmp
listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes
23:19:32.114259 00:26:18:dd:e8:f8 > 00:1f:c6:b8:2f:d1, ethertype IPv4 (0x0800), length 98: 192.168.4.10 > 192.168.0.5: ICMP echo request, id 48938, seq 715, length 64
23:19:32.114284 00:1f:c6:b8:2f:d1 > 00:26:18:dd:e8:f8, ethertype IPv4 (0x0800), length 98: 192.168.0.5 > 192.168.4.10: ICMP echo reply, id 48938, seq 715, length 64

но когда пытаюсь сделать обратный пинг(с 0.5 на 4.10) - он не проходит
ping 192.168.4.10
на router-linux
tcpdump -eni eth0 icmp

23:39:52.754999 00:1f:c6:b8:2f:d1 > 00:26:18:dd:e8:f8, ethertype IPv4 (0x0800), length 98: 192.168.0.5 > 192.168.4.10: ICMP echo request, id 32120, seq 836, length 64
23:39:52.755388 00:26:18:dd:e8:f8 > 00:1f:c6:b8:2f:d1, ethertype IPv4 (0x0800), length 70: 217.gw.provider.xx > 192.168.0.5: ICMP host 192.168.4.10 unreachable - admin prohibited filter, length 36

tcpdump -eni ppp0 icmp

23:34:48.251892 Out ethertype IPv4 (0x0800), length 100: 217.xx.xx.xx  192.168.4.10: ICMP echo request, id 32120, seq 532, length 64
23:34:48.252267  In ethertype IPv4 (0x0800), length 72: 217.gw.provider.xx  217.xx.xx.xx: ICMP host 192.168.4.10 unreachable - admin prohibited filter, length 36

короче он в тоннель не попадает!!!
вообщем ситуация которая была в самом начале

guyvernk
() автор топика
Ответ на: комментарий от guyvernk

как и предполагалось все дело в нате, точнее в том что он обрабатывает пакеты для 4.0/24 и они выходят с исходящим адресом гетвея и соответственно не закидываются в тонель
заменил
iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
на
iptables -t nat -A POSTROUTING -o ppp0 -d ! 192.168.4.0/24 -j MASQUERADE

теперь пинги типа ping -I 192.168.0.1 192.168.4.10
ping 192.168.4.10 с 0.5 компьютера
проходят

guyvernk
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.