Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)
- Eth0 1.1.1.1/32 IP
- ipip-ipsec0 192.168.0.1/30 ga-abụ ọwara anyị
Miktoik: CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 IP n'ime onye na-eweta ya. NAT IP mpụga nke onye na-eweta dị ike.
- ipip-ipsec0 192.168.0.2/30 ga-abụ ọwara anyị
Anyị ga-emepụta ọwara IPsec na igwe Linux na-eji racoon. Agaghị m akọwa nkọwa, enwere nke ọma
Wụnye ngwugwu ndị dị mkpa:
sudo install racoon ipsec-tools
Anyị na-ahazi racoon, ọ ga-arụ ọrụ dịka ihe nkesa ipsec. Ebe ọ bụ na mikrotik na isi ọnọdụ enweghị ike ibunye ihe njirimara ndị ahịa ọzọ, na adreesị IP mpụga nke ọ na-ejikọ na Linux dị ike, iji igodo preshared (ikike okwuntughe) agaghị arụ ọrụ, ebe ọ bụ na paswọọdụ ga-adakọrịrị na adreesị IP nke onye nnabata njikọ, ma ọ bụ jiri njirimara.
Anyị ga-eji igodo RSA jiri ikike.
Daemon racoon na-eji igodo n'ụdị RSA, na mikrotik na-eji usoro PEM. Ọ bụrụ na iji ngwa plainrsa-gen mepụta igodo na-abịa na racoon, ị gaghị enwe ike ịtụgharị igodo ọha maka Mikrotika ka ọ bụrụ usoro PEM site n'enyemaka ya - ọ na-atụgharị naanị n'otu ụzọ: PEM ka RSA. Ma openssl ma ọ bụ ssh-keygen enweghị ike ịgụ igodo emepụtara site na plainrsa-gen, yabụ ntụgharị agaghị ekwe omume iji ha.
Anyị ga-ewepụta igodo PEM site na iji openssl wee tụgharịa ya maka racoon site na iji 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
Anyị ga-etinye igodo enwetara na folda: /etc/racoon/certs/server. Echefula ịtọ onye nwe onye ọrụ n'okpuru aha ya ewepụtara racoon daemon (na-abụkarị mgbọrọgwụ) na ikike 600.
M ga-akọwa ntọala mikrotik mgbe ejikọtara site na WinBox.
Bulite igodo sava-name.pub.pem na mikrotik: NchNhr “Files” - “Bulite”.
Mepee ngalaba "IP" - "IP sec" - "Igodo" taabụ. Ugbu a, anyị na-ewepụta igodo - bọtịnụ "Mepụta igodo", wee bupụ igodo ọha mikrotika "Expor Pub. Igodo, ị nwere ike ibudata ya na ngalaba "Files", pịa aka nri na faịlụ - "Download".
Anyị na-ebubata igodo ọha racoon, “Bubata”, na ndetu ndọpụta nke ubi “aha faịlụ” anyị na-achọ aha sava-name.pub.pem anyị budataburu na mbụ.
Ekwesịrị ịgbanwe igodo ọha mikrotik
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
ma tinye ya na folda /etc/racoon/certs, na-echefughị maka onye nwe ya na ikike.
racoon config na nkọwa: /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; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}
mikrotik config
Laghachi na ngalaba "IP" - "IPsec"
"Profaịlụ" tab
Ogologo
uru
aha
N'aka gị (site na ndabara ndabara)
Hash Algorithm
sha512
Algorithm nzuzo
afọ-128
DH-Group
modp2048
Proposhal_check
Mgbarakwa
ndụ
1d 00:00:00
Njegharị NAT
eziokwu (pịa igbe ahụ)
DPD
120
DPD kacha ọdịda
5
Ndị ọgbọ tab
Ogologo
uru
aha
N'uche gị (nke a na-akpọ MyPeer)
Address
1.1.1.1 (igwe Linux IP)
Adreesị mpaghara
10.0.0.2 (IP WAN interface mikrotik)
Profaịlụ
ndabara
Ọnọdụ mgbanwe
isi
Ịfefe
ụgha
Ziga INITIAL_CONTACT
ezi
Atụmatụ tab
Ogologo
uru
aha
N'uche gị (nke a na-akpọ MyPeerProposal)
Auth. Algorithms
sha512
Ndekọ Algorithms
aes-128-cbc
ndụ
08:00:00
Otu PFS
modp2048
"Identities" tab
Ogologo
uru
Ọgbọ
MyPeer
Atọh. Usoro
rsa igodo
Key
mikrotik.privet.key
Remote Igodo
server-name.pub.pem
Otu Template Policy
ndabara
Notrack Chain
efu
Ụdị NJ m
ụgbọ ala
Ụdị NJ dịpụrụ adịpụ
ụgbọ ala
Dakọtara Site
ebe dịpụrụ adịpụ id
Nhazi ọnọdụ
efu
Mepụta amụma
Ee e
Taabụ "Amụma - General"
Ogologo
uru
Ọgbọ
MyPeer
ọwara
ezi
Src. Adreesị
192.168.0.0/30
Dest. Adreesị
192.168.0.0/30
Protocol
255 (ha niile)
template
ụgha
Taabụ "Amụma - Omume"
Ogologo
uru
Action
encrypt
Ọkwa
chọrọ
Protocol IPsec
sp
Ihe ngosi
MyPeerProposal
O yikarịrị, dị ka m, ị haziela snat / masquerade na interface WAN gị; iwu a kwesịrị imezigharị ka ngwugwu ipsec na-apụ apụ banye n'ọwara anyị:
Gaa na ngalaba "IP" - "Firewall".
"NAT" taabụ, mepee iwu snat/masquerade anyị.
Tab dị elu
Ogologo
uru
Iwu IPsec
pụọ: onweghị
Na-amaliteghachi mmụọ ọjọọ racoon
sudo systemctl restart racoon
Ọ bụrụ na racoon ebidoghị ịmalitegharị, mgbe ahụ enwere mperi na nhazi ahụ; na syslog, racoon na-egosiputa ozi gbasara akara ahịrị ebe achọpụtara njehie ahụ.
Mgbe akpụkpọ ụkwụ OS, racoon daemon na-amalite tupu ewelite ihu netwọkụ, anyị akọwapụtakwara nhọrọ siri ike_address na ngalaba ntị; ịkwesịrị ịgbakwunye ngalaba racoon na faịlụ sistemu.
/lib/systemd/system/racoon.service, na ngalaba [Unit], ahịrị After=network.target.
Ugbu a tunnels ipsec anyị kwesịrị ịdị elu, lee anya na mmepụta:
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
Ọ bụrụ na tunnels adịghị elu, lelee syslog, ma ọ bụ journalctl-u racoon.
Ugbu a ịkwesịrị ịhazi oghere L3 ka okporo ụzọ nwee ike ịpụ. Enwere nhọrọ dị iche iche, anyị ga-eji IPIP, ebe ọ bụ na mikrotik na-akwado ya, m ga-eji vti, ma, ọ dị mwute ikwu, emebeghị ya na mikrotik. Ọ dị iche na IPIP n'ihi na ọ nwere ike tinyekwa multicast ma tinye fwmarks na ngwugwu nke a ga-eji mee ya na iptables na iproute2 (usoro usoro iwu dabere). Ọ bụrụ na ịchọrọ ịrụ ọrụ kachasị, mgbe ahụ, dịka ọmụmaatụ, GRE. Ma echefula na anyị na-akwụ ụgwọ maka ọrụ ndị ọzọ na nnukwu isi n'elu.
Ị nwere ike ịhụ ntụgharị asụsụ nke ezigbo nyocha nke oghere ọwara
Na 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
Ugbu a ị nwere ike itinye ụzọ maka netwọk n'azụ mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Ka e wee nwee ike ịmalite interface anyị na ụzọ anyị mgbe ịmalitegharịa, anyị kwesịrị ịkọwa interface na /etc/network/interfaces ma tinye ụzọ n'ebe ahụ na post-elu, ma ọ bụ dee ihe niile n'otu faịlụ, dịka ọmụmaatụ, /etc/ ipip-ipsec0.conf ma dọpụta ya site na post-elu, echefula banyere onye nwe faịlụ, ikike ma mee ka ọ rụọ ọrụ.
N'okpuru bụ faịlụ ihe atụ
#!/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
Na Mikrotik:
Nkebi “Interfaces”, gbakwunye interface ọhụrụ “ọwara IP”:
Taabụ "Ọwara IP" - "General"
Ogologo
uru
aha
N'uche gị (nke a na-akpọ IPIP-IPsec0)
MTU
1480 (ọ bụrụ na akọwaghị ya, mikrotik na-amalite ịkpụ mtu ruo 68)
Adreesị mpaghara
192.168.0.2
Adreesị dịpụrụ adịpụ
192.168.0.1
IPsec nzuzo
Gbanyụọ ubi ahụ (ma ọ bụghị ya, a ga-emepụta ọgbọ ọhụrụ)
Chebe
Gbanyụọ ubi ahụ (ma ọ bụghị ya, interface ahụ ga-agbanyụ mgbe niile, ebe ọ bụ na mikrotika nwere usoro nke ya maka ngwugwu ndị a na anaghị arụ ọrụ na Linux)
DSCP
keta
Ebibila iberibe
Ee e
Mgbochi TCP MSS
ezi
Nye ohere ngwa ngwa
ezi
Nkebi "IP" - "Adreesi", tinye adreesị:
Ogologo
uru
Address
192.168.0.2/30
interface
IPIP-IPsec0
Ugbu a ị nwere ike itinye ụzọ na netwọk n'azụ igwe Linux; mgbe ị na-agbakwunye ụzọ, ọnụ ụzọ ga-abụ interface IPIP-IPsec0 anyị.
PS
Ebe ọ bụ na ihe nkesa Linux anyị na-agbanwe agbanwe, ọ bụ ihe ezi uche dị na ịtọ ntọala TCP MSS maka oghere ipip na ya:
mepụta faịlụ /etc/iptables.conf na ọdịnaya ndị a:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
na /etc/network/interfaces
post-up iptables-weghachi </etc/iptables.conf
Enwere m nginx na-agba ọsọ na netwọk n'azụ mikrotik (ip 10.10.10.1), mee ka ọ dị na Ịntanetị, tinye ya na /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
Echefula ịgbakwunye ikike kwesịrị ekwesị na iptables ma ọ bụrụ na ị nwere ihe nzacha ngwugwu.
Nwee ahụ ike!
isi: www.habr.com