Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-ġeneriku x86_64)
- Eth0 1.1.1.1/32 IP estern
- ipip-ipsec0 192.168.0.1/30 se tkun il-mina tagħna
Miktoik: CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 IP intern mill-fornitur. L-IP NAT estern tal-fornitur huwa dinamiku.
- ipip-ipsec0 192.168.0.2/30 se tkun il-mina tagħna
Aħna se noħolqu mina IPsec fuq magna Linux bl-użu ta 'racoon. Mhux se niddeskrivi d-dettalji, hemm waħda tajba
Installa l-pakketti meħtieġa:
sudo install racoon ipsec-tools
Aħna kkonfigurat racoon, se jaġixxi kondizzjonalment bħala server ipsec. Peress li mikrotik fil-modalità prinċipali ma jistax jittrasmetti identifikatur tal-klijent addizzjonali, u l-indirizz IP estern li permezz tiegħu jgħaqqad mal-Linux huwa dinamiku, l-użu ta’ ċavetta kondiviża minn qabel (awtorizzazzjoni tal-password) mhux se jaħdem, peress li l-password trid tkun imqabbla jew mal-indirizz IP ta’ l-host li jgħaqqad, jew bl-identifikatur.
Se nużaw l-awtorizzazzjoni bl-użu taċ-ċwievet RSA.
Id-daemon Racoon juża ċwievet fil-format RSA, u mikrotik juża l-format PEM. Jekk tiġġenera ċwievet billi tuża l-utilità plainrsa-gen li tiġi ma 'racoon, allura ma tkunx tista' tikkonverti ċ-ċavetta pubblika għal Mikrotika għall-format PEM bl-għajnuna tagħha - tikkonverti biss f'direzzjoni waħda: PEM għal RSA. La openssl u lanqas ssh-keygen ma setgħu jaqraw iċ-ċavetta ġġenerata minn plainrsa-gen, għalhekk il-konverżjoni mhux se tkun possibbli bl-użu tagħhom lanqas.
Aħna se niġġeneraw ċavetta PEM billi tuża openssl u mbagħad naqilbuha għal racoon billi tuża 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
Se npoġġu ċ-ċwievet riċevuti fil-folder: /etc/racoon/certs/server. Tinsiex issettja s-sid tal-utent li taħt ismu jiġi mniedi d-daemon racoon (ġeneralment għerq) għal 600 permess.
Se niddeskrivi s-setup tal-mikrotik meta nikkonnettja permezz tal-WinBox.
Ittella’ ċ-ċavetta server-name.pub.pem fuq mikrotik: Menu “Files” - “Upload”.
Iftaħ it-taqsima "IP" - "IP sec" - tab "Ċwievet". Issa niġġeneraw ċwievet - il-buttuna "Iġġenera Ċavetta", imbagħad tesporta ċ-ċavetta pubblika mikrotika "Expor Pub. Ewlenin", tista 'tniżżlu mit-taqsima "Fajls", ikklikkja fuq il-fajl - "Niżżel".
Aħna nimportaw iċ-ċavetta pubblika racoon, "Import", fil-lista drop-down tal-qasam "Isem tal-fajl" infittxu s-server-name.pub.pem li niżżilna qabel.
Iċ-ċavetta pubblika mikrotik trid tiġi kkonvertita
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
u poġġih fil-folder /etc/racoon/certs, mingħajr ma ninsew dwar is-sid u d-drittijiet.
racoon config bil-kummenti: /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 konfig
Irritorna għat-taqsima "IP" - "IPsec"
Tab "Profili".
Parametru
Valur
isem
Fid-diskrezzjoni tiegħek (b'mod awtomatiku)
Algoritmu tal-Hash
sha512
Algoritmu ta 'Kriptaġġ
aes-128
DH-Grupp
modp2048
Proposhal_check
jitlob
Lifetime
1d 00:00:00
NAT Traversal
veru (iċċekkja l-kaxxa)
DPD
120
DPD Falliment massimu
5
Peers tab
Parametru
Valur
isem
Fid-diskrezzjoni tiegħek (minn hawn 'il quddiem imsejħa MyPeer)
indirizz
1.1.1.1 (magni IP Linux)
Indirizz Lokali
10.0.0.2 (IP WAN interface mikrotik)
Profil
inadempjenza
Modalità tal-Kambju
prinċipali
Passive
falza
Ibgħat INITIAL_CONTACT
veru
Tab tal-proposta
Parametru
Valur
isem
Fid-diskrezzjoni tiegħek (minn hawn 'il quddiem imsejħa MyPeerProposal)
Awt. Algoritmi
sha512
Encr. Algoritmi
aes-128-cbc
Lifetime
08:00:00
Grupp PFS
modp2048
Tab "Identitajiet".
Parametru
Valur
Pari
MyPeer
Atuh. Metodu
ċavetta rsa
Ewlenin
mikrotik.privet.key
Ċavetta mill-Bogħod
server-name.pub.pem
Grupp Mudell ta' Politika
inadempjenza
Katina Notrack
vojta
It-Tip tal-ID tiegħi
auto
Tip ta' ID mill-bogħod
auto
Match By
id remot
Konfigurazzjoni tal-Modalità
vojta
Iġġenera Politika
le
Tab "Politiki - Ġenerali"
Parametru
Valur
Pari
MyPeer
Mina
veru
Src. Indirizz
192.168.0.0/30
Dest. Indirizz
192.168.0.0/30
Protokoll
255 (kollha)
Template
falza
Tab "Politiki - Azzjoni"
Parametru
Valur
azzjoni
kriptaġġ
Livell
jeħtieġu
Protokolli IPsec
esp
Proposta
MyPeerProposal
X'aktarx, bħali, għandek snat/masquerade kkonfigurat fuq l-interface WAN tiegħek; din ir-regola trid tiġi aġġustata sabiex il-pakketti ipsec ħerġin jidħlu fil-mina tagħna:
Mur fit-taqsima "IP" - "Firewall".
Tab "NAT", iftaħ ir-regola tagħna snat/masquerade.
Tab Avvanzata
Parametru
Valur
Politika IPsec
barra: xejn
Jibda mill-ġdid id-dimostrazzjoni tar-rakun
sudo systemctl restart racoon
Jekk Racoon ma jibdax malli jerġa' jibda, allura jkun hemm żball fil-konfigurazzjoni; fis-syslog, Racoon juri informazzjoni dwar in-numru tal-linja li fih instab l-iżball.
Meta l-OS boots, id-daemon racoon jibda qabel ma jittellgħu l-interfaces tan-netwerk, u speċifikajna l-għażla strict_address fit-taqsima listen; trid iżżid l-unità racoon mal-fajl systemd
/lib/systemd/system/racoon.service, fit-taqsima [Unità], linja Wara=network.target.
Issa l-mini ipsec tagħna għandhom ikunu up, ħares lejn l-output:
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
Jekk il-mini mhumiex up, ħares lejn syslog, jew journalctl -u racoon.
Issa għandek bżonn tikkonfigura l-interfaces L3 sabiex it-traffiku jkun jista 'jiġi mgħoddi. Hemm għażliet differenti, se nużaw IPIP, peress li mikrotik jappoġġjaha, jien nuża vti, iżda, sfortunatament, għadu ma ġiex implimentat f'mikrotik. Hija differenti mill-IPIP peress li tista' wkoll tinkapsula multicast u tpoġġi fwmarks fuq pakketti, li bihom jistgħu jiġu ffiltrati f'iptables u iproute2 (rotot ibbażat fuq il-politika). Jekk għandek bżonn funzjonalità massima, allura, pereżempju, GRE. Imma tinsiex li nħallsu għal funzjonalità addizzjonali b'ras kbira.
Tista 'tara t-traduzzjoni ta' ħarsa ġenerali tajba tal-interfaces tal-mini
Fuq 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
Issa tista 'żżid rotot għan-netwerks wara mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Sabiex l-interface u r-rotot tagħna jitqajmu wara reboot, għandna bżonn niddeskrivu l-interface f'/etc/network/interfaces u nżidu r-rotot hemm fil-post-up, jew niktbu kollox f'fajl wieħed, pereżempju, /etc/ ipip-ipsec0.conf u iġbedha permezz ta 'post-up, tinsiex dwar is-sid tal-fajl, id-drittijiet u tagħmilha eżekutibbli.
Hawn taħt hemm fajl eżempju
#!/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
Fuq Mikrotik:
Taqsima "Interfaces", żid interface ġdid "IP mina":
Tab “IP mina” - “Ġenerali”
Parametru
Valur
isem
Fid-diskrezzjoni tiegħek (minn hawn 'il quddiem imsejħa IPIP-IPsec0)
MTU
1480 (jekk mhux speċifikat, mikrotik jibda jaqta 'mtu għal 68)
Indirizz Lokali
192.168.0.2
Indirizz mill-bogħod
192.168.0.1
IPsec Sigriet
Iddiżattiva l-qasam (inkella jinħoloq Peer ġdid)
keepalive
Iddiżattiva l-qasam (inkella l-interface tintefa kontinwament, peress li mikrotika għandha l-format tagħha stess għal dawn il-pakketti u ma taħdimx mal-Linux)
DSCP
jirtu
M'għandekx Framment
le
Clamp TCP MSS
veru
Ħalli Fast Path
veru
Taqsima "IP" - "Indirizzi", żid l-indirizz:
Parametru
Valur
indirizz
192.168.0.2/30
interface
IPIP-IPsec0
Issa tista 'żżid rotot man-netwerk wara magna Linux; meta żżid rotta, il-portal se jkun l-interface IPIP-IPsec0 tagħna.
PS
Peress li s-server Linux tagħna huwa tranżittiv, jagħmel sens li tissettja l-parametru Clamp TCP MSS għal interfaces ipip fuqu:
oħloq fajl /etc/iptables.conf bil-kontenut li ġej:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
u f'/etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf
Għandi nginx qed jaħdem fuq in-netwerk wara mikrotik (ip 10.10.10.1), jagħmilha aċċessibbli mill-Internet, żidha ma' /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
Tinsiex iżżid il-permessi xierqa ma' iptables jekk għandek il-filtri tal-pakketti attivati.
Tkun b'saħħithom!
Sors: www.habr.com