Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generik x86_64)
- Eth0 1.1.1.1/32 IP njaba
- ipip-ipsec0 192.168.0.1/30 bakal dadi trowongan kita
Miktoik: CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 IP internal saka panyedhiya. IP NAT eksternal panyedhiya dinamis.
- ipip-ipsec0 192.168.0.2/30 bakal dadi trowongan kita
Kita bakal nggawe trowongan IPsec ing mesin Linux nggunakake racoon. Aku ora bakal njlèntrèhaké rincian, ana sing apik
Instal paket sing dibutuhake:
sudo install racoon ipsec-tools
We ngatur racoon, iku conditionally tumindak minangka server ipsec. Amarga mikrotik ing mode utama ora bisa ngirim pengenal klien tambahan, lan alamat IP eksternal sing disambungake menyang Linux dinamis, nggunakake tombol sing wis dienggo bareng (wewenang sandhi) ora bakal bisa digunakake, amarga sandhi kudu cocog karo alamat IP saka host nyambungake, utawa karo pengenal.
Kita bakal nggunakake wewenang nggunakake tombol RSA.
Daemon racoon nggunakake tombol ing format RSA, lan mikrotik nggunakake format PEM. Yen sampeyan ngasilake tombol nggunakake sarana plainrsa-gen sing dilengkapi karo racoon, sampeyan ora bakal bisa ngowahi kunci umum kanggo Mikrotika menyang format PEM kanthi bantuan - mung ngowahi siji arah: PEM menyang RSA. Sanadyan openssl utawa ssh-keygen ora bisa maca kunci sing digawe dening plainrsa-gen, mula konversi ora bisa ditindakake kanthi nggunakake.
Kita bakal ngasilake kunci PEM nggunakake openssl lan banjur ngowahi kanggo racoon nggunakake 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
Kita bakal sijine tombol ditampa ing folder: /etc/racoon/certs/server. Aja lali nyetel pemilik pangguna sing jenenge daemon racoon diluncurake (biasane ROOT) nganti 600 ijin.
Aku bakal njlèntrèhaké persiyapan mikrotik nalika nyambung liwat WinBox.
Unggah tombol server-name.pub.pem menyang mikrotik: Menu "Files" - "Upload".
Bukak bagean "IP" - "IP sec" - tab "Keys". Saiki kita ngasilake tombol - tombol "Generate Key", banjur ekspor tombol publik mikrotika "Ekspor Pub. Key", sampeyan bisa ngundhuh saka bagean "Files", klik-tengen ing file - "Download".
Kita ngimpor kunci umum racoon, "Impor", ing dhaptar gulung saka kolom "Jeneng File" kita goleki server-name.pub.pem sing diundhuh sadurunge.
Kunci umum mikrotik kudu diowahi
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
lan sijine ing folder / etc / racoon / certs, ora lali bab pemilik lan hak.
racoon config karo komentar: /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; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}
konfigurasi mikrotik
Bali menyang bagean "IP" - "IPsec"
Tab "Profil".
Parameter
Nilai
jeneng
Ing kawicaksanan sampeyan (kanthi standar)
Algoritma Hash
sha512
Algoritma Enkripsi
aes-128
DH-Grup
modp2048
Proposhal_check
pratelan
Sakumur urip
1d 00:00:00
NAT Traversal
bener (centhang kothak)
DPD
120
Gagal maksimal DPD
5
Tab sebaya
Parameter
Nilai
jeneng
Ing kawicaksanan sampeyan (sabanjuré diarani MyPeer)
Alamat
1.1.1.1 (mesin IP Linux)
Alamat Lokal
10.0.0.2 (IP WAN antarmuka mikrotik)
Profile
standar
Mode Exchange
utama
Pasif
palsu
Kirim INITIAL_CONTACT
bener
Tab Proposal
Parameter
Nilai
jeneng
Ing kawicaksanan sampeyan (sabanjuré diarani MyPeerProposal)
Auth. Algoritma
sha512
Encr. Algoritma
aes-128-cbc
Sakumur urip
08:00:00
Grup PFS
modp2048
Tab "Identitas".
Parameter
Nilai
Kanca
MyPeer
Atuh. Metode
kuncine rsa
Key
mikrotik.privet.key
Tombol Jarak Jauh
server-name.pub.pem
Group Cithakan Kebijakan
standar
Rantai Notrack
kosong
Tipe ID Kula
otomatis
Tipe Remote ID
otomatis
Cocokake Miturut
remote id
Konfigurasi Mode
kosong
Nggawe Kebijakan
ora
Tab "Kebijakan - Umum"
Parameter
Nilai
Kanca
MyPeer
Tunnel
bener
Src. alamat
192.168.0.0/30
Dest. alamat
192.168.0.0/30
Protokol
255 (kabeh)
cithakan
palsu
Tab "Kabijakan - Tindakan"
Parameter
Nilai
Tindakan
encrypt
level
mbutuhake
Protokol IPsec
esp
Proposal
MyPeerProposal
Paling kamungkinan, kaya aku, sampeyan duwe snat / masquerade dikonfigurasi ing antarmuka WAN; aturan iki kudu diatur supaya paket ipsec metu menyang trowongan kita:
Pindhah menyang bagean "IP" - "Firewall".
Tab "NAT", bukak aturan snat/masquerade.
Tab Majeng
Parameter
Nilai
Kebijakan IPsec
metu: ora ana
Miwiti maneh setan racoon
sudo systemctl restart racoon
Yen racoon ora diwiwiti nalika miwiti maneh, mula ana kesalahan ing konfigurasi; ing syslog, racoon nampilake informasi babagan nomer baris sing kesalahan dideteksi.
Nalika OS boot, daemon racoon diwiwiti sadurunge antarmuka jaringan digawa, lan kita nemtokake pilihan strict_address ing bagean ngrungokake; sampeyan kudu nambah unit racoon menyang file systemd
/lib/systemd/system/racoon.service, ing bagean [Unit], baris Sawise = network.target.
Saiki terowongan ipsec kudu munggah, deleng 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
Yen trowongan ora munggah, deleng syslog, utawa journalctl -u racoon.
Saiki sampeyan kudu ngatur antarmuka L3 supaya lalu lintas bisa dialihake. Ana macem-macem opsi, kita bakal nggunakake IPIP, amarga mikrotik ndhukung, aku bakal nggunakake vti, nanging, sayangé, iku durung dipun ginakaken ing mikrotik. Beda karo IPIP amarga bisa nambah multicast lan nglebokake fwmarks ing paket, sing bisa disaring ing iptables lan iproute2 (nuntun basis kabijakan). Yen sampeyan perlu fungsi maksimum, banjur, contone, GRE. Nanging aja lali yen kita mbayar fungsi tambahan kanthi sirah nduwur sirah gedhe.
Sampeyan bisa ndeleng terjemahan review apik saka antarmuka trowongan
Ing 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
Saiki sampeyan bisa nambah rute kanggo jaringan konco mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Supaya antarmuka lan rute bisa diunggahake sawise urip maneh, kita kudu njlèntrèhaké antarmuka ing /etc/network/interfaces lan nambah rute ana ing post-up, utawa nulis kabeh ing siji file, contone, /etc/ ipip-ipsec0.conf lan narik liwat post-up, aja lali bab pemilik file, hak lan nggawe eksekusi.
Ing ngisor iki conto file
#!/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
Ing Mikrotik:
Bagean "Antarmuka", tambahake antarmuka anyar "IP trowongan":
Tab "IP tunnel" - "Umum"
Parameter
Nilai
jeneng
Ing kawicaksanan sampeyan (sabanjuré diarani IPIP-IPsec0)
WONG
1480 (yen ora ditemtokake, mikrotik wiwit nglereni mtu dadi 68)
Alamat Lokal
192.168.0.2
Alamat Remote
192.168.0.1
Rahasia IPsec
Mateni lapangan (yen ora, Peer anyar bakal digawe)
tetep urip
Mateni lapangan (yen ora, antarmuka bakal terus mati, amarga mikrotika duwe format dhewe kanggo paket kasebut lan ora bisa digunakake karo Linux)
DSCP
warisan
Aja Fragmen
ora
Clamp TCP MSS
bener
Allow Fast Path
bener
Bagean "IP" - "Alamat", tambahake alamat:
Parameter
Nilai
Alamat
192.168.0.2/30
Interface
IPIP-IPsec0
Saiki sampeyan bisa nambah rute menyang jaringan ing mburi mesin Linux; nalika nambah rute, gateway bakal dadi antarmuka IPIP-IPsec0 kita.
PS
Amarga server Linux kita transitif, mesthine kudu nyetel parameter Clamp TCP MSS kanggo antarmuka ipip:
gawe file /etc/iptables.conf kanthi isi ing ngisor iki:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
lan ing /etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf
Aku wis nginx mlaku ing jaringan konco mikrotik (ip 10.10.10.1), supaya bisa diakses saka Internet, nambah menyang /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
Aja lali nambah ijin sing cocog kanggo iptables yen sampeyan wis ngaktifake saringan paket.
Dadi sehat!
Source: www.habr.com