Установил и настроил такую связку на debian(jessie) xl2tpd+racoon+ipsec.tools Цель создать тунель между debian и windows server 2008 r2 Авторизация по ключам кот я генерировал из OpenVPN в конфигах x.x.x.x это ip внутренний y.y.y.y мой внешний z.z.z.z внешний server 2008r2
! NATа у меня нет(на debian есть на шлюзе dir-615s) как и файрвола Порты пробрасывал тоже на dir-615s Еще стоит и работает pptpd
Выкладываю конфиги
/etc/racoon/racoon.conf
path include "/etc/racoon";
path certificate "/etc/racoon/certs";
listen {
isakmp XX.XX.XX.XX [500];
isakmp_natt XX.XX.XX.XX [4500];
strict_address;
}
remote anonymous {
# Алгоритм обмена ключами, есть два варианта aggresive и main.
# Выбирайте main, это более безопасно
exchange_mode main;
doi ipsec_doi;
# Как часто менять ключи. Нужен баланс между паранойей и не паранойей
# Собственно шифрование пакетов просходит при помощи ключей которые
# Генерируют сервер и клиент. Сертификаты используются только для аутентификации
lifetime time 24 hour;
passive on;
generate_policy on;
proposal_check obey;
# Включить механизм NAT-T
nat_traversal on;
# Разрешить принимать фрагментированые пакеты IKE (может с MTU проблемы)
ike_frag on;
# Указываем что мы должны проверять идентификаторы сертификата (ASN)
# Чтобы враг не мог подключиться и авторизоваться произвольным сертификатом
# ASN это строка типа /C=US/ST=CA/L=SanFrancisco/
# O=Fort-Funston/CN=cn.example.com/emailAddress=me@myhost.mydomain
# Вы её задаёте при генерации сертификата
verify_identifier on;
my_identifier asn1dn;
peers_identifier asn1dn;
# DPD - dead peer detection. Обнаружение мертвых соседей.
# keep-alive раз в 10 сек.
dpd_delay 10;
# Сколько ждать ответа на keep-alive. По истечении - следующий.
dpd_retry 5;
# Макс. количество неудач, после которых сосед считается мертвым.
dpd_maxfail 5;
# Посылаем запрос на сертификат
send_cr on;
# Проверяем пришедший сертификат.
verify_cert on;
# Разрешаем отправку своего сертификата
send_cert on;
# Непосредственно сертификат и ключ сервера
certificate_type x509 "server.crt" "server.key";
# Корневой сертификат для проверки
ca_type x509 "ca.crt";
proposal {
# Можно выбрать aes, но как-то не все клиенты его поддерживают
encryption_algorithm 3des;
# Алгоритм вычисления хэшей пакетов. Можно поставить md5 но не рекомендуется.
# Также можно использовать sha256, но клиент под Android его не понимает
hash_algorithm sha1;
# Авторизация по сертификатам
authentication_method rsasig;
# Размер ключа Диффи-Хелмана. Длина ключа 1024 бита.
dh_group modp1024;
}
}
sainfo anonymous
{
encryption_algorithm aes,3des;
authentication_algorithm hmac_sha1;
compression_algorithm deflate;
pfs_group modp1024;
}
/etc/ipsec-tools.conf
flush;
spdflush;
spdadd 0.0.0.0/0 [1701] 0.0.0.0/0 udp -P out ipsec
esp/transport//require;
spdadd 0.0.0.0/0 0.0.0.0/0 [1701] udp -P in ipsec
esp/transport//require;
/etc/xl2tpd/xl2tpd.conf
[global]
ipsec saref = no
saref refinfo = 30
debug network = yes
debug packet = yes
debug state = yes
port = 1701
force userspace = yes
listen-addr = x.x.x.x
[lns default]
local ip = x.x.x.x
ip range = x.x.x.x-x.x.x.x
refuse pap = yes
require authentication = yes
ppp debug = yes
length bit = yes
pppoptfile = /etc/ppp/options.xl2tpd
/etc/ppp/options.xl2tpd
ms-dns 8.8.8.8
ms-dns 8.8.4.4
require-mschap-v2
asyncmap 0
auth
crtscts
lock
hide-password
modem
debug
name l2tpd
proxyarp
lcp-echo-interval 10
lcp-echo-failure 100
Выполняю root@vpngate:/home/vpnuser# systemctl status racoon -l
● racoon.service - ipsec key exchange server
Loaded: loaded (/lib/systemd/system/racoon.service; enabled)
Active: active (running) since Mon 2016-04-18 12:44:50 UTC; 9s ago
Process: 2840 ExecStart=/usr/sbin/racoon $RACOON_ARGS (code=exited, status=0/SUCCESS)
Process: 2838 ExecStartPre=/bin/mkdir -p /var/run/racoon (code=exited, status=0/SUCCESS)
Main PID: 2843 (racoon)
CGroup: /system.slice/racoon.service
└─2843 /usr/sbin/racoon
Apr 18 12:44:50 vpngate racoon[2840]: INFO: @(#)ipsec-tools 0.8.2 (http://ipsec-tools.sourceforge.net)
Apr 18 12:44:50 vpngate racoon[2840]: INFO: @(#)This product linked OpenSSL 1.0.1k 8 Jan 2015 (http://www.openssl.org/)
Apr 18 12:44:50 vpngate racoon[2840]: INFO: Reading configuration from "/etc/racoon/racoon.conf"
Apr 18 12:44:50 vpngate racoon[2843]: INFO: x.x.x.x[4500] used for NAT-T
Apr 18 12:44:50 vpngate racoon[2843]: INFO: x.x.x.x[4500] used as isakmp port (fd=7)
Apr 18 12:44:50 vpngate racoon[2843]: INFO: x.x.x.x[500] used for NAT-T
Apr 18 12:44:50 vpngate racoon[2843]: INFO: x.x.x.x[500] used as isakmp port (fd=8)
потом выполняю racoon -F -f /etc/racoon/racoon.conf и запускаю подключение на удаленном сервере
Foreground mode.
2016-04-18 13:01:22: INFO: @(#)ipsec-tools 0.8.2 (http://ipsec-tools.sourceforge.net)
2016-04-18 13:01:22: INFO: @(#)This product linked OpenSSL 1.0.1k 8 Jan 2015 (http://www.openssl.org/)
2016-04-18 13:01:22: INFO: Reading configuration from "/etc/racoon/racoon.conf"
2016-04-18 13:01:22: INFO: x.x.x.x[4500] used for NAT-T
2016-04-18 13:01:22: INFO: x.x.x.x[4500] used as isakmp port (fd=6)
2016-04-18 13:01:22: INFO: x.x.x.x[500] used for NAT-T
2016-04-18 13:01:22: INFO: x.x.x.x[500] used as isakmp port (fd=7)
2016-04-18 13:01:27: INFO: respond new phase 1 negotiation: x.x.x.x[500]<=>y.y.y.y[500]
2016-04-18 13:01:27: INFO: begin Identity Protection mode.
2016-04-18 13:01:27: INFO: received broken Microsoft ID: MS NT5 ISAKMPOAKLEY
2016-04-18 13:01:27: INFO: received Vendor ID: RFC 3947
2016-04-18 13:01:27: INFO: received Vendor ID: draft-ietf-ipsec-nat-t-ike-02
2016-04-18 13:01:27: INFO: received Vendor ID: FRAGMENTATION
2016-04-18 13:01:27: [y.y.y.y] INFO: Selected NAT-T version: RFC 3947
2016-04-18 13:01:27: ERROR: invalid DH group 20.
2016-04-18 13:01:27: ERROR: invalid DH group 19.
2016-04-18 13:01:27: [x.x.x.x] INFO: Hashing x.x.x.x[500] with algo #2
2016-04-18 13:01:27: INFO: NAT-D payload #0 doesn't match
2016-04-18 13:01:27: [y.y.y.y] INFO: Hashing y.y.y.y[500] with algo #2
2016-04-18 13:01:27: INFO: NAT-D payload #1 verified
2016-04-18 13:01:27: INFO: NAT detected: ME
2016-04-18 13:01:27: [y.y.y.y] INFO: Hashing y.y.y.y[500] with algo #2
2016-04-18 13:01:27: [x.x.x.x] INFO: Hashing x.x.x.x[500] with algo #2
2016-04-18 13:01:27: INFO: Adding remote and local NAT-D payloads.
2016-04-18 13:01:27: INFO: NAT-T: ports changed to: y.y.y.y[4500]<->x.x.x.x[4500]
2016-04-18 13:01:27: INFO: KA list add: x.x.x.x[4500]->y.y.y.y[4500]
2016-04-18 13:01:27: WARNING: unable to get certificate CRL(3) at depth:0 SubjectName:/C=ru/ST=oms/L=Omsk/O=vdv-media/CN=1cserver/name=Dmitry/emailAddress=info@centersoft.ru
2016-04-18 13:01:27: WARNING: unable to get certificate CRL(3) at depth:1 SubjectName:/C=ru/ST=oms/L=Omsk/O=vdv-media/CN=vpnserver.vdv.corp/name=Dmitry Denisov/emailAddress=info@centersoft.ru
2016-04-18 13:01:27: INFO: ISAKMP-SA established x.x.x.x[4500]-y.y.y.y[4500] spi:fb7e5a41cb27d74b:b27a563a9e14bdbc
2016-04-18 13:01:27: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:27: INFO: no policy found, try to generate the policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:27: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:27: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:27: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=238098686(0xe3118fe)
2016-04-18 13:01:27: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=2356893590(0x8c7b5796)
2016-04-18 13:01:27: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:27: INFO: Update the generated policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:27: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:27: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:27: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=238532912(0xe37b930)
2016-04-18 13:01:27: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=2831609587(0xa8c6eef3)
2016-04-18 13:01:27: INFO: deleting a generated policy.
2016-04-18 13:01:27: INFO: purged IPsec-SA proto_id=ESP spi=2356893590.
2016-04-18 13:01:30: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:30: INFO: no policy found, try to generate the policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:30: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:30: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:30: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=229396610(0xdac5082)
2016-04-18 13:01:30: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=2776263595(0xa57a6bab)
2016-04-18 13:01:30: INFO: deleting a generated policy.
2016-04-18 13:01:30: INFO: purged IPsec-SA proto_id=ESP spi=2831609587.
2016-04-18 13:01:34: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:34: INFO: no policy found, try to generate the policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:34: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:34: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:34: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=107332915(0x665c533)
2016-04-18 13:01:34: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=1543215218(0x5bfb9872)
2016-04-18 13:01:34: INFO: deleting a generated policy.
2016-04-18 13:01:34: INFO: purged IPsec-SA proto_id=ESP spi=2776263595.
2016-04-18 13:01:42: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:42: INFO: no policy found, try to generate the policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:42: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:42: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:42: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=244141809(0xe8d4ef1)
2016-04-18 13:01:42: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=3412441050(0xcb65b7da)
2016-04-18 13:01:42: INFO: deleting a generated policy.
2016-04-18 13:01:42: INFO: purged IPsec-SA proto_id=ESP spi=1543215218.
2016-04-18 13:01:52: INFO: respond new phase 2 negotiation: x.x.x.x[4500]<=>y.y.y.y[4500]
2016-04-18 13:01:52: INFO: no policy found, try to generate the policy : y.y.y.y/32[1701] z.z.z.z/32[1701] proto=udp dir=in
2016-04-18 13:01:52: INFO: Adjusting my encmode UDP-Transport->Transport
2016-04-18 13:01:52: INFO: Adjusting peer's encmode UDP-Transport(4)->Transport(2)
2016-04-18 13:01:52: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=24767181(0x179eacd)
2016-04-18 13:01:52: INFO: IPsec-SA established: ESP/Transport x.x.x.x[4500]->y.y.y.y[4500] spi=920904097(0x36e3e1a1)
2016-04-18 13:01:52: INFO: deleting a generated policy.
2016-04-18 13:01:52: INFO: purged IPsec-SA proto_id=ESP spi=3412441050.
2016-04-18 13:02:02: INFO: deleting a generated policy.
2016-04-18 13:02:02: INFO: purged IPsec-SA proto_id=ESP spi=920904097.
2016-04-18 13:02:02: ERROR: pfkey X_SPDDELETE failed: No such file or directory
2016-04-18 13:02:02: ERROR: pfkey X_SPDDELETE failed: No such file or directory
2016-04-18 13:02:02: INFO: ISAKMP-SA expired x.x.x.x[4500]-y.y.y.y[4500] spi:fb7e5a41cb27d74b:b27a563a9e14bdbc
2016-04-18 13:02:02: INFO: ISAKMP-SA deleted x.x.x.x[4500]-y.y.y.y[4500] spi:fb7e5a41cb27d74b:b27a563a9e14bdbc
2016-04-18 13:02:02: INFO: KA remove: x.x.x.x[4500]->y.y.y.y[4500]
setkey -D
x.x.x.x[4500] y.y.y.y[4500]
esp-udp mode=transport spi=904315227(0x35e6c15b) reqid=0(0x00000000)
E: aes-cbc 816e7546 325dcd95 eae83575 471d1d8a
A: hmac-sha1 798a117c d1c68d25 c768ea79 28f5e449 036486c3
seq=0x00000000 replay=4 flags=0x00000000 state=mature
created: Apr 18 14:10:34 2016 current: Apr 18 14:10:37 2016
diff: 3(s) hard: 3600(s) soft: 2880(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=1 pid=2988 refcnt=0
y.y.y.y[4500] x.x.x.x[4500]
esp-udp mode=transport spi=868465(0x000d4071) reqid=0(0x00000000)
E: aes-cbc 6459ef52 680a1e1c c0cf5d59 3e889bb1
A: hmac-sha1 f6635a37 18da332d 9e3f17b4 69d55a6d 2571b68c
seq=0x00000000 replay=4 flags=0x00000000 state=mature
created: Apr 18 14:10:34 2016 current: Apr 18 14:10:37 2016
diff: 3(s) hard: 3600(s) soft: 2880(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=2 pid=2988 refcnt=0
y.y.y.y[4500] x.x.x.x[4500]
esp-udp mode=transport spi=9097667(0x008ad1c3) reqid=0(0x00000000)
E: aes-cbc 10659c18 c6fbd064 e711839d 307dcdb6
A: hmac-sha1 3e38a76e 43f2df63 253feb2c c2d71b75 53186f44
seq=0x00000000 replay=4 flags=0x00000000 state=mature
created: Apr 18 14:10:34 2016 current: Apr 18 14:10:37 2016
diff: 3(s) hard: 3600(s) soft: 2880(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=2988 refcnt=0
root@vpngate:/home/vpnuser# systemctl status xl2tpd -l
● xl2tpd.service - LSB: layer 2 tunelling protocol daemon
Loaded: loaded (/etc/init.d/xl2tpd)
Active: active (running) since Sun 2016-04-17 13:43:56 UTC; 24h ago
Process: 1681 ExecStop=/etc/init.d/xl2tpd stop (code=exited, status=0/SUCCESS)
Process: 1685 ExecStart=/etc/init.d/xl2tpd start (code=exited, status=0/SUCCESS)
CGroup: /system.slice/xl2tpd.service
└─1688 /usr/sbin/xl2tpd
Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Я так понимаю соединение появляется но на винде вываливается в ошибку(809) Нельзя установить связь по сети между компьютером и VPN-сервером поскольку удаленный сервер не отвечает Никакх логов xl2tp не пишет видимо до него не доходит очередь