I-Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)
- I-Eth0 1.1.1.1/32 IP yangaphandle
- ipip-ipsec0 192.168.0.1/30 izoba umhubhe wethu
Miktoik: I-CCR 1009, i-RouterOS 6.46.5
- I-Eth0 10.0.0.2/30 IP yangaphakathi evela kumhlinzeki. I-IP yangaphandle ye-NAT yomhlinzeki inamandla.
- ipip-ipsec0 192.168.0.2/30 izoba umhubhe wethu
Sizodala umhubhe we-IPsec emshinini we-Linux sisebenzisa i-racoon. Ngeke ngichaze imininingwane, kukhona okuhle
Faka amaphakheji adingekayo:
sudo install racoon ipsec-tools
Silungiselela i-racoon, izosebenza ngokwemibandela njengeseva ye-ipsec. Njengoba i-mikrotik ekwimodi eyinhloko ingakwazi ukudlulisa isihlonzi seklayenti esengeziwe, nekheli le-IP langaphandle elixhuma ngalo ku-Linux linamandla, ukusebenzisa ukhiye owabelwe ngaphambili (ukugunyazwa kwephasiwedi) ngeke kusebenze, njengoba iphasiwedi kufanele ifaniswe nekheli le-IP umsingathi oxhumayo, noma ngesihlonzi.
Sizosebenzisa ukugunyazwa sisebenzisa okhiye be-RSA.
I-racoon daemon isebenzisa okhiye ngefomethi ye-RSA, futhi i-mikrotik isebenzisa ifomethi ye-PEM. Uma ukhiqiza okhiye usebenzisa insiza ye-plainrsa-gen eza ne-racoon, lapho-ke ngeke ukwazi ukuguqula ukhiye wasesidlangalaleni we-Mikrotika ube yifomethi ye-PEM ngosizo lwayo - iguqulela ohlangothini olulodwa kuphela: i-PEM ukuya ku-RSA. Ayikho i-openssl noma i-ssh-keygen engakwazi ukufunda ukhiye okhiqizwe yi-plainrsa-gen, ngakho-ke ukuguqulwa ngeke kwenzeke ukuwasebenzisa futhi.
Sizokhiqiza ukhiye we-PEM sisebenzisa i-openssl bese siyiguqulela i-racoon sisebenzisa i-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
Sizofaka okhiye abatholiwe kufolda: /etc/racoon/certs/server. Ungakhohlwa ukusetha umnikazi womsebenzisi okuqanjwe ngaphansi kwegama lakhe i-racoon daemon (imvamisa impande) kuya kuzimvume ezingu-600.
Ngizochaza ukusethwa kwe-mikrotik lapho uxhuma nge-WinBox.
Layisha ukhiye we-server-name.pub.pem ku-mikrotik: Imenyu “Amafayela” - “Layisha”.
Vula ingxenye ethi “IP” - “IP sec” - “Okhiye” ithebhu. Manje sikhiqiza okhiye - inkinobho "Yenza ukhiye", bese sithekelisa ukhiye wasesidlangalaleni we-mikrotika "Expor Pub. Ukhiye", ungayilanda engxenyeni ethi "Amafayela", chofoza kwesokudla efayeleni - "Landa".
Singenisa ukhiye osesidlangalaleni we-racoon, "Ngenisa", kuhlu oluya phansi lwenkambu ethi "Igama lefayela" sibheka i-server-name.pub.pem esiyilande ngaphambilini.
Ukhiye osesidlangalaleni we-mikrotik udinga ukuguqulwa
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
futhi uyibeke kufolda /etc/racoon/certs, ungakhohlwa ngomnikazi namalungelo.
i-racoon config namazwana: /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; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}
i-mikrotik config
Buyela esigabeni esithi "IP" - "IPsec"
"Amaphrofayili".
Ipharamitha
Okushoyo
Igama
Ngokubona kwakho (ngokuzenzakalelayo)
I-Hash Algorithm
sha512
I-algorithm yokubethela
ibe-128
I-DH-Group
isiqephu 2048
I-Proposhal_check
Faka isicelo
Ukuphila konke
1d 00:00:00
Ukuhamba kwe-NAT
iqiniso (hlola ibhokisi)
I-DPD
120
Ukwehluleka okukhulu kwe-DPD
5
Ithebhu yontanga
Ipharamitha
Okushoyo
Igama
Ngokubona kwakho (okuzobizwa kamuva ngokuthi MyPeer)
Ikheli
1.1.1.1 (imishini ye-IP Linux)
Ikheli Lendawo
10.0.0.2 (IP WAN interface mikrotik)
Profile
ezenzakalelayo
Imodi Yokushintshana
main
I-Passive
bamanga
Thumela u-INITIAL_CONTACT
weqiniso
Ithebhu yesiphakamiso
Ipharamitha
Okushoyo
Igama
Ngokubona kwakho (okuzobizwa kamuva ngokuthi MyPeerProposal)
I-Auth. Ama-algorithms
sha512
Encr. Ama-algorithms
i-es-128-cbc
Ukuphila konke
08:00:00
Iqembu le-PFS
isiqephu 2048
"Identity" ithebhu
Ipharamitha
Okushoyo
asinge
Ntanga Yami
Athu. Indlela
rsa ukhiye
Key
mikrotik.privet.key
Ukhiye Okude
iseva-igama.pub.pem
Iqembu Lesifanekiso Senqubomgomo
ezenzakalelayo
I-Notrack Chain
ayinalutho
Uhlobo lwe-ID yami
imoto
Uhlobo lwe-ID yesilawuli kude
imoto
Fanisa Nge
id yerimothi
Ukucushwa Kwemodi
ayinalutho
Khiqiza Inqubomgomo
cha
Ithebhu "Izinqubomgomo - Okujwayelekile"
Ipharamitha
Okushoyo
asinge
Ntanga Yami
Umhubhe
weqiniso
Src. Ikheli
192.168.0.0/30
I-Dest. Ikheli
192.168.0.0/30
uHlelo Lokudlulisa
255 (bonke)
Isifanekiso
bamanga
Ithebhu "Izinqubomgomo - Isenzo"
Ipharamitha
Okushoyo
Action
ukubethela
Izinga
dinga
IPsec Protocols
esp
Isiphakamiso
I-MyPeerProposal
Cishe, njengami, une-snat/masquerade elungiselelwe ku-WAN interface yakho; lo mthetho udinga ukulungiswa ukuze amaphakethe e-ipsec aphumayo angene emhubheni wethu:
Iya engxenyeni ethi "IP" - "Firewall".
"NAT", vula umthetho wethu we-snat/masquerade.
Ithebhu Ethuthukisiwe
Ipharamitha
Okushoyo
Inqubomgomo ye-IPsec
ngaphandle: akukho
Iqala kabusha idemoni le-racoon
sudo systemctl restart racoon
Uma i-racoon ingaqali lapho iqala kabusha, khona-ke kukhona iphutha ku-config; ku-syslog, i-racoon ibonisa ulwazi mayelana nenombolo yomugqa lapho iphutha litholwe khona.
Lapho amabhuzu e-OS eqala, i-racoon daemon iqala ngaphambi kokuthi kuboniswe ukuxhumana kwenethiwekhi, futhi sacacisa inketho ye-strict_address esigabeni sokulalela; udinga ukwengeza iyunithi ye-racoon kufayela le-systemd.
/lib/systemd/system/racoon.service, esigabeni [Iyunithi], umugqa After=network.target.
Manje imigudu yethu ye-ipsec kufanele iphakame, bheka okukhiphayo:
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
Uma imigudu ingekho phezulu, bheka i-syslog, noma i-journalctl -u racoon.
Manje udinga ukumisa ukuxhumana kwe-L3 ukuze ithrafikhi ihanjiswe. Kunezinketho ezahlukene, sizosebenzisa i-IPIP, njengoba i-mikrotik iyayisekela, ngingasebenzisa i-vti, kodwa, ngeshwa, ayikasetshenziswa ku-mikrotik. Ihlukile ku-IPIP ngoba ingahlanganisa ngaphezu kwalokho i-multicast futhi ifake ama-fwmarks kumaphakethe, angahlungwa ngawo kuma-iptables kanye ne-iproute2 (umzila osuselwe kunqubomgomo). Uma udinga ukusebenza okuphezulu, ke, isibonelo, i-GRE. Kodwa ungakhohlwa ukuthi sikhokhela ukusebenza okwengeziwe ngekhanda elikhulu elingaphezulu.
Ungabona ukuhunyushwa kokubuka konke okuhle kwezixhumi ezibonakalayo zethaneli
Ku-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
Manje ungangeza imizila yamanethiwekhi ngemuva kwe-mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Ukuze ukusebenzelana kwethu nemizila kuphakanyiswe ngemva kokuqaliswa kabusha, sidinga ukuchaza isixhumi esibonakalayo ku/njll/inethiwekhi/izixhumi ezibonakalayo bese sengeza imizila lapho kokuthunyelwe, noma sibhale yonke into efayeleni elilodwa, isibonelo, /etc/ ipip-ipsec0.conf futhi uyidonse ngokuthunyelwe, ungakhohlwa ngomnikazi wefayela, amalungelo futhi ulenze lisebenziseke.
Ngezansi kunefayela eliyisibonelo
#!/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
Mayelana neMikrotik:
Isigaba "Izikhombimsebenzisi", engeza isixhumi esibonakalayo esisha "umhubhe we-IP":
Ithebhu "IP tunnel" - "Okujwayelekile"
Ipharamitha
Okushoyo
Igama
Ngokubona kwakho (ngemuva kwalokhu kuzobizwa nge-IPIP-IPsec0)
MTU
1480 (uma ingacacisiwe, i-mikrotik iqala ukusika umuntu iye ku-68)
Ikheli Lendawo
192.168.0.2
Ikheli Elikude
192.168.0.1
IPsec Imfihlo
Vala inkambu (kungenjalo kuzokwenziwa Ntanga entsha)
Gcina
Vala inkambu (uma kungenjalo isixhumi esibonakalayo sizocima njalo, njengoba i-mikrotika inefomethi yayo yalawa maphakheji futhi ayisebenzi neLinux)
I-DSCP
ifa
Ungaqedi
cha
Bamba i-TCP MSS
weqiniso
Vumela Indlela Esheshayo
weqiniso
Isigaba “IP” - “Amakheli”, engeza ikheli:
Ipharamitha
Okushoyo
Ikheli
192.168.0.2/30
Interface
IPIP-IPsec0
Manje usungangeza imizila kunethiwekhi ngemuva komshini we-Linux; lapho wengeza umzila, isango kuzoba isixhumi esibonakalayo se-IPIP-IPsec0.
PS
Njengoba iseva yethu ye-Linux ishintshashintsha, kunengqondo ukusetha ipharamitha ye-Clamp TCP MSS ye-ipip interfaces kuyo:
dala ifayela /etc/iptables.conf ngokuqukethwe okulandelayo:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
futhi ku-/etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf
Ngine-nginx esebenza kunethiwekhi ngemuva kwe-mikrotik (ip 10.10.10.1), yenze ifinyeleleke nge-inthanethi, yengeze ku-/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
Ungakhohlwa ukwengeza izimvume ezifanele kuma-iptable uma unezihlungi zephakethe ezinikwe amandla.
Ukubusisa!
Source: www.habr.com