Nerwin
@Nerwin
И ни капельки я не тупой...просто ленивый

Объеденить 2 Mikrotik по l2tp+ipsec, почему не создаются sa?

Пытаюсь настроить l2tp/ipsec vpn тунель между rb2011u (сервер, за натом; 500, 4500, 1701 порты проброшены) и rb750up (клиент, за натом).
Отдельно l2tp работает.
Настраиваю ipsec. На сервере создаю peers:
address - 0.0.0.0/0
port - 500
auth - psk
passive
policy template - l2tp (создал новую)
exchange mode - main l2tp
send initial contact
nat-t
proposial - obey
hash - sha1
encrypt - 3des, aes-256
dh - modp1024
generate policy - port strict

В proposial создал новую, включил sha1, 3des, aes-256cbc
На клиенте:

Создал peers:
address - белый ip сервера
port - 500
auth - psk
policy template group - l2tp (создал новую)
exchange mode - main l2tp
send initial contact
nat-t
proposial check - obey
hash - sha1
encrypt - 3des, aes-256
dh - modp1024
generate policy - port strict

Создал новый proposials c sha1, 3des, aes-256cbc.
Создал новую политику:

src addr - серый адрес клиента за натом
dst addr - белый ip сервера
proto - udp
template
group - l2tp
action - encrypt
level - require
ipsec proto - esp
SA src - серый адрес клиента за натом
SA dst - белый ip сервера
proposial - та, что создавал

только sa src и sa dst, почему то сбрасываются на 0.0.0.0 после нажатия применить.
в итоге, на сервере remote peer появляется но sa не создаются и l2tp ходит без шифрования (шифруется mppe 128bit rsa если в профиле указать encryption - reuired)
Что здесь не правильно?
Если подключаться с компьютера, то sa появляются, но трафик идет только в сторону сервера, ответы клиенту через них не идут.
  • Вопрос задан
  • 4888 просмотров
Решения вопроса 1
Nerwin
@Nerwin Автор вопроса
И ни капельки я не тупой...просто ленивый
Все, разобрался.
готовый конфиг выглядит так
для сервера
#все, что касается l2tp
#пул адресов для l2tp клиентов
/ip pool
	add name=vpn-net ranges=192.168.100.2-192.168.100.254

#создадим профиль l2tp сервера
/ppp profile
	add name=l2tp-vpn change-tcp-mss=yes local-address=192.168.100.1 only-one=no \
		remote-address=vpn-net use-encryption=required 

#включим l2tp сервер используя наш профиль, авторизовться клиенты будут по mschap2,
#mtu от балды, чтобы точно дефрагментации не было
/interface l2tp-server server
	set authentication=mschap2 default-profile=l2tp-vpn enabled=yes \
		max-mru=1300 max-mtu=1300

#пользователи l2tp
/ppp secret
	add name=<юзер> password=<пароль> local-address=192.168.100.1 profile=l2tp-vpn \
		remote-address=192.168.100.2 service=l2tp

#добавим отдельный интерфейс для пользователя юзер
/interface l2tp-server
	add name=l2tp-s user=<юзер>

#все, что касается ipsec
#писали, что в ipsec группе default есть баг, создадим свою
/ip ipsec policy group
	add name=l2tp 

#какие алгоритмы шифрования поддерживает сервер (винда sha1-3des, android sha256-aes256cbc)
/ip ipsec proposal
	set [ find default=yes ] auth-algorithms=sha1,sha256 enc-algorithms=\
		3des,aes-128-cbc,aes-256-cbc pfs-group=none

#добавим пира, который будет ждать подключения по ipsec
/ip ipsec peer
	add address=0.0.0.0/0 \ #можно подключиться с любого адреса ip
		enc-algorithm=3des,aes-128,aes-192,aes-256 \ #по умолчанию, используется только во время подключения
		exchange-mode=main-l2tp \
		generate-policy=port-override \ #создавать политики автоматически (иногда создаются не правильно)
		my-id=user-fqdn \
		passive=yes \ #только слушать
		policy-template-group=l2tp \
		secret=<секретное слово>

#добавим политики ipsec	
/ip ipsec policy
	#добави стандартную политику шаблон в нашу группу
	set 0 dst-address=0.0.0.0/0 group=l2tp src-address=0.0.0.0/0
	#при подклчении политики для клиентов будут создаваться автоматически, но иногда
	#они создаются с неправильныйми адресами, если так будет, надо добавить политику вручную
	add dst-address=<белый ip клиента>/32 \ 
		sa-dst-address=<белый ip клиента> \
		src-address=<серый ip сервера, на внешнем интерфейсе>/32 \
		sa-src-address=<серый ip сервера, на внешнем интерфейсе>

#если включен firewall, добавим правила
#используются порты 500 (для установки соединения ipsec), 4500 (через него передаются данные если включен nat-t), 1701 (l2tp)
/ip firewall filter
	add chain=input dst-port=500 in-interface=eth1 protocol=udp
	add chain=input dst-port=4500 in-interface=eth1 protocol=udp
	add chain=input dst-port=1701 in-interface=eth1 protocol=udp


для клиента
#все, что касается l2tp
#создадим профиль подключения
/ppp profile
	add name=vpnc use-compression=yes use-encryption=required use-mpls=yes

#создадим клиента используя наш профиль
/interface l2tp-client
	add allow=mschap2 \
		name=l2tp-c \
		connect-to=<белый ip сервера> \
		disabled=no \
		keepalive-timeout=disabled \
		max-mru=1300 \
		max-mtu=1300 \
		password=<пароль> \
		profile=vpnc \
		user=<юзер>

#все, что касается ipsec
#как и в случае с сервером создадим отдельную группу
/ip ipsec policy group
	add name=l2tp

#какие алгоритмы шифрования поддерживает клиент (хотя бы 1 из них должен быть и на сервере)
/ip ipsec proposal
	set [ find default=yes ] enc-algorithms=aes-128-cbc pfs-group=none

#создадим пира, который будет подключаться
/ip ipsec peer
	add address=<белый ip сервера>/32 \
		enc-algorithm=3des,aes-128,aes-192,aes-256 \ #это все по умолчанию, как и у пира на сервере
		exchange-mode=main-l2tp \
		generate-policy=port-override \ #может и не надо, все равно вручную создается
		local-address=0.0.0.0 \
		my-id=user-fqdn \
		policy-template-group=l2tp \
		secret=<секретное слово, как и на сервере>

#создадим политики
/ip ipsec policy
	#как и на сервере, добавим стандартный шаблон в нашу группу
	set 0 dst-address=0.0.0.0/0 group=l2tp src-address=0.0.0.0/0
	#наша политика для подключения
	add dst-address=<белый ip сервера>/32 \
		dst-port=1701 \
		src-address=<серый ip клиента, на внешнем интерфейсе>/32 \
		src-port=1701
		sa-dst-address=<белый ip сервера> \
		sa-src-address=<белый ip клиента> \

#если планируется пускать весь траффик по vpn, оставим траффик к серверу через основной шлюз
/ip route
	add distance=1 dst-address=<белый ip сервера>/32 gateway=<наш шлюз>
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Я не уверен на 100%, но есть ощущение, что IPSec не переживёт двойной нат.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы