IPIP IPsec VPN kohanga i waenga i te miihini Linux me te Mikrotik i muri i te kaiwhakarato NAT

Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

  • Eth0 1.1.1.1/32 IP waho
  • ipip-ipsec0 192.168.0.1/30 ka waiho to tatou kohanga

Miktoik: CCR 1009, RouterOS 6.46.5

  • Eth0 10.0.0.2/30 IP ā-roto mai i te kaiwhakarato. He hihiri te NAT IP o waho o te kaiwhakarato.
  • ipip-ipsec0 192.168.0.2/30 ka waiho to tatou kohanga

Ka hangahia e matou he kauhanga IPsec i runga i te miihini Linux ma te whakamahi racoon. Kaore au e whakaahua i nga korero, he pai tuhinga у vvpoloskin.

Tāutahia ngā pōkai e tika ana:

sudo install racoon ipsec-tools

Ka whirihorahia e matou te racoon, ka noho hei tuumau ipsec. I te mea kaore e taea e te mikrotik i roto i te aratau matua te tuku i tetahi atu kaitautuhi kiritaki, a ko te wahitau IP o waho e hono atu ana ki a Linux he hihiri, ma te whakamahi i te taviri tiritiri (whakamana kupuhipa) kare e mahi, na te mea me taurite te kupuhipa me te wahitau IP o te kaihautu hono, me te tautohu ranei.

Ka whakamahia e matou te whakamanatanga ma te whakamahi i nga taviri RSA.

Ka whakamahia e te racoon daemon nga taviri ki te whakatakotoranga RSA, ka whakamahia e te mikrotik te whakatakotoranga PEM. Mena ka whakaputa koe i nga taviri ma te whakamahi i te whaipainga plainrsa-gen e haere mai ana me te racoon, kare e taea e koe te huri i te taviri a te iwi mo te Mikrotika ki te whakatakotoranga PEM me tana awhina - ka huri noa i te huarahi kotahi: PEM ki te RSA. Kaore e taea e openssl, ssh-keygen ranei te panui i te taviri i hangaia e te plainrsa-gen, na reira ka kore e taea te huri ma te whakamahi i aua mea.

Ka whakaputahia e matou he matua PEM ma te whakamahi i openssl ka huri mo te racoon ma te whakamahi i te plainrsa-gen:

#  Генерируем ключ
openssl genrsa -out server-name.pem 1024
# Извлекаем публичный ключ
openssl rsa -in server-name.pem -pubout > server-name.pub.pem
# Конвертируем
plainrsa-gen -i server-name.pem -f server-name.privet.key
plainrsa-gen -i server-name.pub.pem -f server-name.pub.key

Ka hoatu e matou nga taviri kua riro ki te kōpaki: /etc/racoon/certs/server. Kaua e wareware ki te tautuhi i te rangatira o te kaiwhakamahi kei raro i tona ingoa ka whakarewahia te racoon daemon (te nuinga o te pakiaka) ki te 600 whakaaetanga.

Ka whakaahua ahau i te tatūnga mikrotik ina hono ana ma WinBox.

Tukuna te matua server-name.pub.pem ki mikrotik: Tahua "Kōnae" - "Tuake".

Whakatuwherahia te waahanga "IP" - "IP sec" - ripa "Kia". Inaianei ka hangaia e matou nga taviri - te paatene "Hanga Kī", ka kaweake i te kī tūmatanui mikrotika "Kaweake Pub. Key", ka taea e koe te tango mai i te waahanga "Kōnae", pawhiri-matau ki te konae - "Tikiake".

Ka kawemai matou i te taviri a te iwi racoon, "Kawemai", i te rarangi taka-iho o te mara "Ingoa Kōnae" ka rapuhia e matou te ingoa-server.pub.pem i tangohia e matou i mua.

Me huri te kī tūmatanui mikrotik

plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key

ka hoatu ki roto i te kōpaki /etc/racoon/certs, kaua e wareware ki te rangatira me nga mana.

whirihora racoon me nga korero: /etc/racoon/racoon.conf

log info; # Уровень логирования, при отладке используем Debug или Debug2.

listen {

    isakmp 1.1.1.1 [500]; # Адрес и порт, на котором будет слушать демон.
    isakmp_natt 1.1.1.1 [4500]; # Адрес и порт, на котором будет слушать демон для клиентов за NAT.
    strict_address; # Выполнять обязательную проверку привязки к указанным выше IP.
}

path certificate "/etc/racoon/certs"; # Путь до папки с сертификатами.

remote anonymous { # Секция, задающая параметры для работы демона с ISAKMP и согласования режимов с подключающимися хостами. Так как IP, с которого подключается Mikrotik, динамический, то используем anonymous, что разрешает подключение с любого адреса. Если IP у хостов статический, то можно указать конкретный адрес и порт.

    passive on; # Задает "серверный" режим работы демона, он не будет пытаться инициировать подключения.
    nat_traversal on; # Включает использование режима NAT-T для клиентов, если они за NAT. 
    exchange_mode main; # Режим обмена параметрами подключения, в данном случае ---согласование.
    my_identifier address 1.1.1.1; # Идентифицируем наш linux хост по его ip адресу.
    certificate_type plain_rsa "server/server-name.priv.key"; # Приватный ключ сервера.
    peers_certfile plain_rsa "mikrotik.pub.key"; # Публичный ключ Mikrotik.

    proposal_check claim; # Режим согласования параметров ISAKMP туннеля. Racoon будет использовать значения подключающегося хоста (инициатора) для срока действия сессии                   и длины ключа, если его срок действия сессии больше, или длина его ключа короче, чем у инициатора. Если срок действия сессии короче, чем у инициатора, racoon использует собственное значение срока действия сессии и будет отправлять сообщение RESPONDER-LIFETIME.
    proposal { # Параметры ISAKMP туннеля.

        encryption_algorithm aes; # Метод шифрования ISAKMP туннеля.
        hash_algorithm sha512; # Алгоритм хеширования, используемый для ISAKMP туннеля.
        authentication_method rsasig; # Режим аутентификации для ISAKMP туннеля - по RSA ключам.
        dh_group modp2048; # Длина ключа для алгоритма Диффи-Хеллмана при согласовании ISAKMP туннеля.
        lifetime time 86400 sec; Время действия сессии.
    }

    generate_policy on; # Автоматическое создание ESP туннелей из запроса, пришедшего от подключающегося хоста.
}

sainfo anonymous { # Параметры ESP туннелей, anonymous - указанные параметры будут использованы как параметры по умолчанию. Для разных клиентов, портов, протоколов можно              задавать разные параметры, сопоставление происходит по ip адресам, портам, протоколам.

    pfs_group modp2048; # Длина ключа для алгоритма Диффи-Хеллмана для ESP туннелей.
    lifetime time 28800 sec; # Срок действия ESP туннелей.
    encryption_algorithm aes; # Метод шифрования ESP туннелей.
    authentication_algorithm hmac_sha512; # Алгоритм хеширования, используемый для аутентификации ESP туннелей.
    compression_algorithm deflate; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}

whirihora mikrotik

Hoki ki te waahanga "IP" - "IPsec"

ripa "Profiles".
Taumahi
uara

ingoa
I runga i to whakaaro (ma te taunoa)

Hātepe Hono
sha512

Hātepe Whakamuna
ae-128

DH-Rōpū
modp2048

Tiaki_proposhal
kerēme

Mo'uí
1d 00:00:00

NAT Traversal
pono (takihia te pouaka)

DPD
120

DPD Rahunga Morahi
5

Ripa hoa
Taumahi
uara

ingoa
I runga i to whakaaro (ka kiia i muri nei ko MyPeer)

Wāhitau
1.1.1.1 (Nga miihini IP Linux)

Wāhitau Paetata
10.0.0.2 (atanga IP WAN mikrotik)

Kōtaha
Taunoa

Aratau Whakawhiti
matua

Pato
teka

Tukuna INITIAL_CONTACT
pono

Ripa tono
Taumahi
uara

ingoa
I runga i to whakaaro (ka kiia i muri nei ko MyPeerProposal)

Motuhēhē. Algorithm
sha512

Encr. Algorithm
aes-128-cbc

Mo'uí
08:00:00

Rōpū PFS
modp2048

ripa "Tukutu".
Taumahi
uara

hoa
TakuPeer

Atu. Tikanga
kī rsa

Key
mikrotik.privet.key

Hipanga Mamao
ingoa-tūmau.pub.pem

Rōpū Tauira Kaupapahere
Taunoa

Notrack Chain
takoto kau

Taku Momo ID
auto

Momo ID Mamao
auto

Match Na
id mamao

Aratau Whirihoranga
takoto kau

Hanga Kaupapahere
no

Ripa "Nga Kaupapahere - Whanui"
Taumahi
uara

hoa
TakuPeer

Tunnel
pono

Src. Wāhitau
192.168.0.0/30

Dest. Wāhitau
192.168.0.0/30

Tuhinga
255 (katoa)

tātauira
teka

Ripa "Nga Kaupapahere - Mahi"
Taumahi
uara

Mahi
whakamuna

Taumata
kai tono

Nga Kawa IPsec
sp

Kaupapa
MyPeerProposal

Ko te mea pea, penei i a au, kua whirihorahia e koe te snat/masquerade i runga i to atanga WAN; me whakatika tenei ture kia uru ai nga paatete ipsec puta ki roto i to tatou kohanga:
Haere ki te waahanga "IP" - "Paetūahi".
Ripa "NAT", whakatuwherahia ta maatau ture snat/masquerade.

Ripa Arā Atu Anō
Taumahi
uara

Kaupapahere IPsec
waho: kahore

Ka timata ano te rewera racoon

sudo systemctl restart racoon

Ki te kore te racoon e timata i te whakaara ano, he he kei te whirihora; i te syslog, ka whakaatu te racoon i nga korero mo te nama raina i kitea ai te hapa.

Ka peke ana nga OS, ka tiimata te racoon daemon i mua i te whakaputanga o nga hononga whatunga, ka tohua e matou te whiringa strict_address ki te waahanga whakarongo; me taapiri e koe te waeine racoon ki te konae systemd
/lib/systemd/system/racoon.service, i roto i te waahanga [Waehere], raina I muri=network.target.

Inaianei kua piki ake o tatou tunnels ipsec, tirohia te putanga:

sudo ip xfrm policy

src 192.168.255.0/30 dst 192.168.255.0/30 
    dir out priority 2147483648 
    tmpl src 1.1.1.1 dst "IP NAT через который подключается mikrotik"
        proto esp reqid 0 mode tunnel
src 192.168.255.0/30 dst 192.168.255.0/30 
    dir fwd priority 2147483648 
    tmpl src "IP NAT через который подключается mikrotik" dst 1.1.1.1
        proto esp reqid 0 mode tunnel
src 192.168.255.0/30 dst 192.168.255.0/30 
    dir in priority 2147483648 
    tmpl src "IP NAT через который подключается mikrotik" dst 1.1.1.1
        proto esp reqid 0 mode tunnel

Mena karekau nga kauhanga i runga, tirohia te syslog, journalctl -u racoon ranei.

Inaianei me whirihora e koe nga atanga L3 kia taea ai te arai waka. He rereke nga whiringa, ka whakamahia e matou te IPIP, mai i te mea ka tautokohia e te mikrotik, ka whakamahi ahau i te vti, engari, kaore ano kia whakatinanahia i roto i te mikrotik. He rereke mai i te IPIP na te mea ka taea e ia te whakauru i te multicast me te whakatakoto tohu fwmark ki runga i nga paakete e taea ai te tātari i roto i nga iptables me te iproute2 (whakahaere i runga kaupapa here). Mena ka hiahia koe ki te mahi tino nui, na, hei tauira, GRE. Engari kaua e wareware kei te utu taatau mo etahi atu mahi me te upoko nui o runga.

Ka taea e koe te kite i te whakamaoritanga o te arotake pai o nga atanga kauhanga konei.

I runga i te Linux:

# Создаем интерфейс
sudo ip tunnel add ipip-ipsec0 local 192.168.255.1 remote 192.168.255.2 mode ipip
# Активируем
sudo ip link set ipip-ipsec0 up
# Назначаем адрес
sudo ip addr add 192.168.255.1/30 dev ipip-ipsec0

Inaianei ka taea e koe te taapiri huarahi mo nga whatunga kei muri i te mikrotik

sudo ip route add A.B.C.D/Prefix via 192.168.255.2

Kia ara ake ai o tatou atanga me o tatou huarahi i muri i te whakaara ano, me whakaahua te atanga ki /etc/network/interfaces me te taapiri i nga huarahi ki reira i te pou-ake, tuhia ranei nga mea katoa ki te konae kotahi, hei tauira, /etc/ ipip-ipsec0.conf ka toia ma te pou-ake, kaua e wareware ki te rangatira o te konae, motika me te hanga kia taea.

Kei raro nei he tauira tauira

#!/bin/bash
ip tunnel add ipip-ipsec0 local 192.168.255.1 remote 192.168.255.2 mode ipip
ip link set ipip-ipsec0 up
ip addr add 192.168.255.1/30 dev ipip-ipsec0

ip route add A.B.C.D/Prefix via 192.168.255.2

I runga i te Mikrotik:

Wāhanga "Atanga", taapirihia he atanga hou "Tunnel IP":

Ripa "IP tunnel" - "General"
Taumahi
uara

ingoa
I runga i to whakaaro (ka kiia i muri nei ko IPIP-IPsec0)

TANGATA
1480 (ki te kore e tohua, ka timata te mikrotik ki te tapahi mtu ki te 68)

Wāhitau Paetata
192.168.0.2

Wāhitau Mamao
192.168.0.1

IPsec ngaro
Whakawetohia te mara (ki te kore ka hangaia he Hoa hou)

Purotu
Whakawetohia te mara (mehemea ka weto tonu te atanga, na te mea kei a ia ano te whakatakotoranga o te mikrotika mo enei kete karekau e mahi me te Linux)

DSCP
noho

Kaua e Wahia
no

Rawhi TCP MSS
pono

Tukua te Ara Tere
pono

Wāhanga "IP" - "Wāhitau", tāpirihia te wāhitau:

Taumahi
uara

Wāhitau
192.168.0.2/30

Atanga
IPIP-IPsec0

Inaianei ka taea e koe te taapiri i nga huarahi ki te whatunga kei muri i te miihini Linux; ka taapirihia he huarahi, ko te kuaha ko to tatou atanga IPIP-IPsec0.

PS

I te mea he tauwhiti to tatou tūmau Linux, he mea tika ki te tautuhi i te tawhā Clamp TCP MSS mo nga atanga ipip ki runga:

hanga he kōnae /etc/iptables.conf me nga mea e whai ake nei:

*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT

me te /etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf

He nginx ahau e rere ana i runga i te whatunga kei muri i te mikrotik (ip 10.10.10.1), kia uru mai i te Ipurangi, taapiri atu ki /etc/iptables.conf:

*nat
-A PREROUTING -d 1.1.1.1/32 -p tcp -m multiport --dports 80,443 -j DNAT --to-destination 10.10.10.1
#На mikrotik, в таблице mangle, надо добавить правило route с назначением 192.168.0.1 для пакетов с адресом источника 10.10.10.1 и портов 80, 443.

# Так же на linux работает OpenVPN сервер 172.16.0.1/24, для клиентов которые используют подключение к нему в качестве шлюза даем доступ в интернет
-A POSTROUTING -s 172.16.0.0/24 -o eth0 -j SNAT --to-source 1.1.1.1
COMMIT 

Kaua e wareware ki te taapiri i nga whakaaetanga e tika ana ki nga iptables mena kua whakahohea e koe nga whiriwhiringa paatete.

Kia ora!

Source: will.com

Tāpiri i te kōrero