Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generik x86_64)
- Eth0 1.1.1.1/32 IP eksternal
- ipip-ipsec0 192.168.0.1/30 akan menjadi terowongan kita
Miktoik: CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 IP internal dari penyedia. IP NAT eksternal penyedia bersifat dinamis.
- ipip-ipsec0 192.168.0.2/30 akan menjadi terowongan kita
Kami akan membuat terowongan IPsec di mesin Linux menggunakan racoon. Saya tidak akan menjelaskan detailnya, ada yang bagus
Instal paket yang diperlukan:
sudo install racoon ipsec-tools
Kami mengkonfigurasi racoon, secara kondisional akan bertindak sebagai server IPSec. Karena mikrotik dalam mode utama tidak dapat mengirimkan pengidentifikasi klien tambahan, dan alamat IP eksternal yang digunakan untuk terhubung ke Linux bersifat dinamis, penggunaan kunci yang dibagikan sebelumnya (otorisasi kata sandi) tidak akan berfungsi, karena kata sandi harus cocok dengan alamat IP host penghubung, atau dengan pengidentifikasi.
Kami akan menggunakan otorisasi menggunakan kunci RSA.
Daemon racoon menggunakan kunci dalam format RSA, dan mikrotik menggunakan format PEM. Jika Anda membuat kunci menggunakan utilitas plainrsa-gen yang disertakan dengan racoon, maka Anda tidak akan dapat mengonversi kunci publik untuk Mikrotika ke format PEM dengan bantuannya - kunci tersebut hanya mengonversi dalam satu arah: PEM ke RSA. Baik openssl maupun ssh-keygen tidak dapat membaca kunci yang dihasilkan oleh plainrsa-gen, sehingga konversi juga tidak dapat dilakukan dengan menggunakan kunci tersebut.
Kami akan membuat kunci PEM menggunakan openssl dan kemudian mengonversinya untuk racoon menggunakan 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
Kami akan meletakkan kunci yang diterima di folder: /etc/racoon/certs/server. Jangan lupa untuk mengatur pemilik pengguna yang namanya diluncurkan daemon racoon (biasanya root) menjadi 600 izin.
Saya akan menjelaskan setup mikrotik saat menghubungkan melalui WinBox.
Upload key server-name.pub.pem ke mikrotik: Menu βFilesβ - βUploadβ.
Buka bagian "IP" - "IP detik" - tab "Kunci". Sekarang kita generate key - tombol βGenerate Keyβ, lalu ekspor public key mikrotika βExpor Pub. Kunci", Anda dapat mendownloadnya dari bagian "File", klik kanan pada file - "Unduh".
Kami mengimpor kunci publik racoon, "Impor", di daftar drop-down bidang "Nama file" kami mencari nama server.pub.pem yang kami unduh sebelumnya.
Kunci publik mikrotik perlu dikonversi
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
dan letakkan di folder /etc/racoon/certs tanpa melupakan pemilik dan haknya.
konfigurasi racoon dengan 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
Kembali ke bagian "IP" - "IPsec"
Tab "Profil".
Parameter
Nilai
Nama
Sesuai kebijaksanaan Anda (secara default default)
Algoritma Hash
sha512
Algoritma Enkripsi
aes-128
Grup DH
modp2048
Proposal_check
klaim
Lifetime
1h 00:00:00
Lintasan NAT
benar (centang kotaknya)
DPD
120
DPD Kegagalan maksimum
5
Tab rekan
Parameter
Nilai
Nama
Sesuai kebijaksanaan Anda (selanjutnya disebut MyPeer)
Alamat
1.1.1.1 (mesin IP Linux)
Alamat lokal
10.0.0.2 (antarmuka IP WAN mikrotik)
Profil
kegagalan
Mode Pertukaran
utama
Pasif
palsu
Kirim INITIAL_CONTACT
benar
tab usulan
Parameter
Nilai
Nama
Sesuai kebijaksanaan Anda (selanjutnya disebut MyPeerProposal)
Penulis. Algoritma
sha512
dll. Algoritma
aes-128-cbc
Lifetime
08:00:00
Grup PFS
modp2048
Tab "Identitas".
Parameter
Nilai
Teman sebaya
Rekan Saya
Atuh. metode
kunci rsa
kunci
mikrotik.privet.key
Kunci Jarak Jauh
nama-server.pub.pem
Grup Templat Kebijakan
kegagalan
Rantai Notrack
kosong
Jenis ID saya
mobil
Jenis ID Jarak Jauh
mobil
Cocokkan Oleh
id jarak jauh
Konfigurasi Mode
kosong
Hasilkan Kebijakan
tidak
Tab "Kebijakan - Umum"
Parameter
Nilai
Teman sebaya
Rekan Saya
Terowongan
benar
Src. Alamat
192.168.0.0/30
tujuan Alamat
192.168.0.0/30
Protokol
255 (semua)
Contoh
palsu
Tab "Kebijakan - Tindakan"
Parameter
Nilai
Tindakan
mengenkripsi
Tingkat
memerlukan
Protokol IPSec
esp
Usul
Proposal Rekan Saya
Kemungkinan besar, seperti saya, Anda telah mengkonfigurasi snat/masquerade pada antarmuka WAN Anda; aturan ini perlu disesuaikan agar paket ipsec keluar masuk ke terowongan kami:
Buka bagian "IP" - "Firewall".
Tab "NAT", buka aturan snat/masquerade kami.
Tab Lanjutan
Parameter
Nilai
Kebijakan IPsec
keluar: tidak ada
Memulai ulang iblis rakun
sudo systemctl restart racoon
Jika racoon tidak memulai saat restart, maka ada kesalahan dalam konfigurasi; di syslog, racoon menampilkan informasi tentang nomor baris di mana kesalahan terdeteksi.
Saat OS boot, daemon racoon dimulai sebelum antarmuka jaringan ditampilkan, dan kami menentukan opsi strict_address di bagian mendengarkan; Anda perlu menambahkan unit racoon ke file systemd
/lib/systemd/system/racoon.service, di bagian [Unit], baris After=network.target.
Sekarang terowongan IPSec kita seharusnya sudah aktif, lihat hasilnya:
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
Jika terowongannya tidak aktif, lihat syslog, atau journalctl -u racoon.
Sekarang Anda perlu mengkonfigurasi antarmuka L3 agar lalu lintas dapat dirutekan. Ada pilihan lain, kita akan menggunakan IPIP, karena mikrotik mendukungnya, saya akan menggunakan vti, tapi sayangnya belum diimplementasikan di mikrotik. Ini berbeda dari IPIP karena ia juga dapat merangkum multicast dan memberi tanda fw pada paket, yang dengannya paket tersebut dapat disaring di iptables dan iproute2 (perutean berbasis kebijakan). Jika Anda membutuhkan fungsionalitas maksimal, misalnya GRE. Namun jangan lupa bahwa kami membayar fungsionalitas tambahan dengan overhead head yang besar.
Anda dapat melihat terjemahan ikhtisar antarmuka terowongan yang bagus
Di 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
Sekarang Anda dapat menambahkan rute untuk jaringan di belakang mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Agar antarmuka dan rute kita dapat dimunculkan setelah reboot, kita perlu mendeskripsikan antarmuka di /etc/network/interfaces dan menambahkan rute di sana di post-up, atau menulis semuanya dalam satu file, misalnya /etc/ ipip-ipsec0.conf dan tarik melalui post-up, jangan lupa tentang pemilik file, hak dan membuatnya dapat dieksekusi.
Di bawah ini adalah contoh filenya
#!/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
Di Mikrotik:
Bagian "Antarmuka", tambahkan antarmuka baru "terowongan IP":
Tab "Terowongan IP" - "Umum"
Parameter
Nilai
Nama
Sesuai kebijaksanaan Anda (selanjutnya disebut IPIP-IPsec0)
MTU
1480 (jika tidak ditentukan, mikrotik mulai memotong mtu menjadi 68)
Alamat lokal
192.168.0.2
Alamat Jauh
192.168.0.1
Rahasia IPsec
Nonaktifkan bidang tersebut (jika tidak, Rekan baru akan dibuat)
Berusaha agar hidup
Nonaktifkan bidang tersebut (jika tidak, antarmuka akan terus-menerus mati, karena mikrotika memiliki formatnya sendiri untuk paket-paket ini dan tidak bekerja dengan Linux)
DSCP
mewarisi
Jangan Fragmen
tidak
Jepit TCP MSS
benar
Izinkan Jalur Cepat
benar
Bagian "IP" - "Alamat", tambahkan alamat:
Parameter
Nilai
Alamat
192.168.0.2/30
Antarmuka
IPIP-IPsec0
Sekarang Anda dapat menambahkan rute ke jaringan di belakang mesin Linux; saat menambahkan rute, gateway akan menjadi antarmuka IPIP-IPsec0 kami.
PS
Karena server Linux kami bersifat transitif, masuk akal untuk mengatur parameter Clamp TCP MSS untuk antarmuka ipip di dalamnya:
buat file /etc/iptables.conf dengan isi sebagai berikut:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
dan di /etc/network/interfaces
pasca-up iptables-restore < /etc/iptables.conf
Saya menjalankan nginx di jaringan di belakang mikrotik (ip 10.10.10.1), membuatnya dapat diakses dari Internet, tambahkan ke /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
Jangan lupa untuk menambahkan izin yang sesuai ke iptables jika Anda mengaktifkan filter paket.
Sehat
Sumber: www.habr.com