xl2tpd+IPSec(racoon)+ppp

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

Аватара пользователя
saikov
Сообщения: 183
ОС: Mageia

xl2tpd+IPSec(racoon)+ppp

Сообщение saikov »

Доброго дня. Есть сервер на CentoOS 7. Нужно настроить на нем связку xl2tpd+IPSec(racoon)+ppp что бы компы к нему конектились и трафик через него ходил (короче VPN нужен)
Все настроил, все работает, но в файле psk.txt указывается конкретный белый IP который будет ломиться на сервер и показывать ключ.

Код: Выделить всё

root@MNBL329 ~]# cat /etc/racoon/psk.txt 
XX.XX.XX.XX     SECRETKEY1 
XX.XX.XX.XX	SECRETKEY2
У меня два компа с одной сети должны к серверу подключиться, а они имеют один IP смотрящий наружу. Т.е. если второй подключается, то первый отваливется. Как быть? Знаю что можно как то racoon настроить по имени, но что то не нагуглю.
Конфиг racoon
Spoiler

Код: Выделить всё

[root@MNBL329 ~]# cat /etc/racoon/racoon.conf 

# Racoon IKE daemon configuration file.
# See 'man racoon.conf' for a description of the format and entries.

path include "/etc/racoon";
path pre_shared_key "/etc/racoon/psk.txt";
path certificate "/etc/racoon/certs";
path script "/etc/racoon/scripts";

sainfo anonymous
{
	#pfs_group 2;
	lifetime time 1 hour ;
	encryption_algorithm 3des, blowfish 448, rijndael ;
	authentication_algorithm hmac_sha1, hmac_md5 ;
	compression_algorithm deflate ;
}

remote anonymous
{
        exchange_mode    aggressive,main,base;
        doi              ipsec_doi;
        passive          on;
        proposal_check   obey;
        support_proxy    on;
        nat_traversal    on;
        ike_frag         on;
        dpd_delay        20;
        proposal
        {
                encryption_algorithm  aes;
                hash_algorithm        sha1;
                authentication_method pre_shared_key;
                dh_group              modp1024;
        }
        proposal
        {
                encryption_algorithm  3des;
                hash_algorithm        sha1;
                authentication_method pre_shared_key;
                dh_group              modp1024;
        }
}

options.xl2tpd
Spoiler

Код: Выделить всё

[root@MNBL329 ~]# cat /etc/ppp/options.xl2tpd 
ipcp-accept-local
ipcp-accept-remote
ms-dns  8.8.8.8
ms-dns  77.88.8.8
require-mschap-v2
noccp
auth
crtscts
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
lock
proxyarp
connect-delay 5000
Конфиг xl2tpd.conf
Spoiler

Код: Выделить всё

[global]
ipsec saref = yes
force userspace = yes
[lns default]
ip range = 10.10.1.10-10.10.1.200
local ip = 10.10.1.1
refuse pap = yes
require authentication = yes
ppp debug = no
pppoptfile = /etc/ppp/options.xl2tpd
length bit = yes
Спасибо сказали:

Аватара пользователя
saikov
Сообщения: 183
ОС: Mageia

Re: xl2tpd+IPSec(racoon)+ppp

Сообщение saikov »

Ни кто ни когда так не делал? Печаль.
Спасибо сказали:

Аватара пользователя
saikov
Сообщения: 183
ОС: Mageia

Re: xl2tpd+IPSec(racoon)+ppp

Сообщение saikov »

Проблема решена. Наложил патч и пересобрал ipsec-tools Ну и в psk.key вместо IP указал *

Код: Выделить всё

cat ipsec-tools-0.8.2-localconf.patch 
diff -uNr ipsec-tools-0.8.2/src/racoon/localconf.c ipsec-tools-0.8.2-1/src/racoon/localconf.c
--- ipsec-tools-0.8.2/src/racoon/localconf.c	2012-08-23 15:10:45.000000000 +0400
+++ ipsec-tools-0.8.2-1/src/racoon/localconf.c	2018-04-22 14:37:44.861029668 +0300
@@ -207,7 +207,8 @@
 		if (*p == '\0')
 			continue;	/* no 2nd parameter */
 		p--;
-		if (strncmp(buf, str, len) == 0 && buf[len] == '\0') {
+		if (strcmp(buf, "*") == 0 ||
+		    (strncmp(buf, str, len) == 0 && buf[len] == '\0')) {
 			p++;
 			keylen = 0;
 			for (q = p; *q != '\0' && *q != '\n'; q++)
Спасибо сказали:

GMoSuk
Сообщения: 1

Re: xl2tpd+IPSec(racoon)+ppp

Сообщение GMoSuk »

Сталкнулся с проблемой... Вставил diff с изменениями в посте выше... И не хочет собираться.

Код: Выделить всё

===>  License BSD3CLAUSE accepted by the user
===>   ipsec-tools-0.8.2_10 depends on file: /usr/local/sbin/pkg - found
===> Fetching all distfiles required by ipsec-tools-0.8.2_10 for building
===>  Extracting for ipsec-tools-0.8.2_10
=> SHA256 Checksum OK for ipsec-tools-0.8.2.tar.bz2.
===>  Patching for ipsec-tools-0.8.2_10
===>  Applying extra patch /usr/ports/security/ipsec-tools/files/natt.diff
===>  Applying extra patch /usr/ports/security/ipsec-tools/files/wildcard-psk.diff
===>  Applying extra patch /usr/ports/security/ipsec-tools/files/wildcard-psk-oakley.c.diff
===>  Applying FreeBSD patches for ipsec-tools-0.8.2_10
1 out of 1 hunks failed--saving rejects to src/racoon/localconf.c.rej
=> FreeBSD patch patch-zz-local-1.diff failed to apply cleanly.
=> Patch(es)  patch-handler.c patch-isakmp.c patch-isakmp_frag.c patch-isakmp_inf.c patch-isakmpinit patch-reqid.diff patch-src-racoon-isakmp_cfg.c patch-src_racoon_gssapi.c applied cleanly.
*** Error code 1

Stop.
make[1]: stopped in /usr/ports/security/ipsec-tools
*** Error code 1

Stop.
make: stopped in /usr/ports/security/ipsec-tools
Добавлено (00:12):
Сам затупил.... "*" в psk.txt по умолчанию уже есть. Ничего патчить не надо. Просто необходимо в psk.txt звездочку в конец добавить, а то почему то пароль для других туннелей приминяется от * , а не от прописанных IP!
Спасибо сказали: