Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generik x86_64)
- Eth0 1.1.1.1/32 IP luaran
- ipip-ipsec0 192.168.0.1/30 akan menjadi terowong kami
Miktoik: CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 IP dalaman daripada pembekal. IP NAT luaran pembekal adalah dinamik.
- ipip-ipsec0 192.168.0.2/30 akan menjadi terowong kami
Kami akan mencipta terowong IPsec pada mesin Linux menggunakan racoon. Saya tidak akan menerangkan butirannya, ada yang bagus
Pasang pakej yang diperlukan:
sudo install racoon ipsec-tools
Kami mengkonfigurasi racoon, ia akan bertindak secara bersyarat sebagai pelayan ipsec. Oleh kerana mikrotik dalam mod utama tidak boleh menghantar pengecam pelanggan tambahan, dan alamat IP luaran yang melaluinya ia bersambung ke Linux adalah dinamik, menggunakan kunci prakongsi (kebenaran kata laluan) tidak akan berfungsi, kerana kata laluan mesti dipadankan sama ada dengan alamat IP hos penghubung, atau dengan pengecam.
Kami akan menggunakan kebenaran menggunakan kunci RSA.
Daemon racoon menggunakan kunci dalam format RSA, dan mikrotik menggunakan format PEM. Jika anda menjana kunci menggunakan utiliti gen plainrsa yang disertakan dengan racoon, maka anda tidak akan dapat menukar kunci awam untuk Mikrotika kepada format PEM dengan bantuannya - ia menukar hanya dalam satu arah: PEM kepada RSA. Baik openssl mahupun ssh-keygen tidak boleh membaca kunci yang dijana oleh plainrsa-gen, jadi penukaran juga tidak akan dapat digunakan.
Kami akan menjana kunci PEM menggunakan openssl dan kemudian menukarnya 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 dalam folder: /etc/racoon/certs/server. Jangan lupa untuk menetapkan pemilik pengguna di bawah namanya daemon racoon dilancarkan (biasanya root) kepada 600 kebenaran.
Saya akan menerangkan persediaan mikrotik apabila menyambung melalui WinBox.
Muat naik kekunci server-name.pub.pem ke mikrotik: Menu βFailβ - βMuat naikβ.
Buka bahagian "IP" - "IP sec" - tab "Kekunci". Kini kami menjana kunci - butang "Jana Kunci", kemudian mengeksport kunci awam mikrotika "Ekspor Pub. Key", anda boleh memuat turunnya dari bahagian "Fail", klik kanan pada fail - "Muat turun".
Kami mengimport kunci awam racoon, "Import", dalam senarai juntai bawah medan "Nama fail" kami mencari nama pelayan.pub.pem yang kami muat turun sebelum ini.
Kunci awam mikrotik perlu ditukar
plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key
dan letakkannya dalam folder /etc/racoon/certs, tidak lupa tentang pemilik dan haknya.
konfigurasi racoon dengan ulasan: /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 bahagian "IP" - "IPsec"
Tab "Profil".
Parameter
Nilai
Nama
Mengikut budi bicara anda (secara lalai lalai)
Algoritma Hash
sha512
Algoritma Penyulitan
aes-128
Kumpulan DH
modp2048
Proposhal_check
menuntut
Sepanjang Hayat
1h 00:00:00
NAT Traversal
benar (tandakan kotak)
DPD
120
DPD Kegagalan maksimum
5
Tab rakan sebaya
Parameter
Nilai
Nama
Mengikut budi bicara anda (selepas ini dirujuk sebagai MyPeer)
Alamat
1.1.1.1 (mesin IP Linux)
Alamat Tempatan
10.0.0.2 (antara muka IP WAN mikrotik)
Profil
lalai
Mod Pertukaran
utama
Pasif
palsu
Hantar INITIAL_CONTACT
benar
Tab cadangan
Parameter
Nilai
Nama
Mengikut budi bicara anda (selepas ini dirujuk sebagai MyPeerProposal)
Pengesahan. Algoritma
sha512
Encr. Algoritma
aes-128-cbc
Sepanjang Hayat
08:00:00
Kumpulan PFS
modp2048
Tab "Identiti".
Parameter
Nilai
Rakan sebaya
MyPeer
Atuh. Kaedah
kunci rsa
Utama
mikrotik.privet.key
Kunci Jauh
nama pelayan.pub.pem
Kumpulan Templat Dasar
lalai
Rantaian Notrack
kosong
Jenis ID Saya
auto
Jenis ID Jauh
auto
Padankan Oleh
id jauh
Konfigurasi Mod
kosong
Menjana Dasar
tidak
Tab "Dasar - Umum"
Parameter
Nilai
Rakan sebaya
MyPeer
Terowong
benar
Src. Alamat
192.168.0.0/30
Dest. Alamat
192.168.0.0/30
Protokol
255 (semua)
Templat
palsu
Tab "Dasar - Tindakan"
Parameter
Nilai
Tindakan
menyulitkan
Tahap
peminta
Protokol IPsec
esp
Cadangan
MyPeerProposal
Kemungkinan besar, seperti saya, anda mempunyai snat/masquerade yang dikonfigurasikan pada antara muka WAN anda; peraturan ini perlu dilaraskan supaya paket ipsec keluar masuk ke dalam terowong kami:
Pergi ke bahagian "IP" - "Firewall".
Tab "NAT", buka peraturan snat/masquerade kami.
Tab Lanjutan
Parameter
Nilai
Dasar IPsec
keluar: tiada
Memulakan semula syaitan rakun
sudo systemctl restart racoon
Jika racoon tidak bermula apabila dimulakan semula, maka terdapat ralat dalam konfigurasi; dalam syslog, racoon memaparkan maklumat tentang nombor baris di mana racoon telah dikesan.
Apabila OS but, daemon racoon bermula sebelum antara muka rangkaian dibawa ke atas, dan kami menetapkan pilihan strict_address dalam bahagian dengar; anda perlu menambah unit racoon pada fail systemd
/lib/systemd/system/racoon.service, dalam bahagian [Unit], baris After=network.target.
Sekarang terowong ipsec kami sepatutnya terpasang, lihat 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
Jika terowong tidak ada, lihat syslog, atau journalctl -u racoon.
Kini anda perlu mengkonfigurasi antara muka L3 supaya trafik boleh dialihkan. Terdapat pilihan yang berbeza, kami akan menggunakan IPIP, kerana mikrotik menyokongnya, saya akan menggunakan vti, tetapi, malangnya, ia belum lagi dilaksanakan dalam mikrotik. Ia berbeza daripada IPIP kerana ia juga boleh merangkum multicast dan meletakkan fwmarks pada paket, yang mana ia boleh ditapis dalam iptables dan iproute2 (penghalaan berasaskan dasar). Jika anda memerlukan fungsi maksimum, maka, sebagai contoh, GRE. Tetapi jangan lupa bahawa kami membayar untuk fungsi tambahan dengan kepala overhed yang besar.
Anda boleh melihat terjemahan gambaran keseluruhan yang baik antara muka terowong
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
Kini anda boleh menambah laluan untuk rangkaian di belakang mikrotik
sudo ip route add A.B.C.D/Prefix via 192.168.255.2
Untuk antara muka dan laluan kami dinaikkan selepas but semula, kami perlu menerangkan antara muka dalam /etc/network/interfaces dan menambah laluan di sana dalam post-up, atau menulis semuanya dalam satu fail, contohnya, /etc/ ipip-ipsec0.conf dan tariknya melalui post-up, jangan lupa tentang pemilik fail, hak dan jadikannya boleh laku.
Di bawah adalah contoh fail
#!/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
Pada Mikrotik:
Bahagian "Antaramuka", tambahkan antara muka baharu "Terowong IP":
Tab "Terowong IP" - "Umum"
Parameter
Nilai
Nama
Mengikut budi bicara anda (selepas ini dirujuk sebagai IPIP-IPsec0)
MTU
1480 (jika tidak dinyatakan, mikrotik mula memotong mtu kepada 68)
Alamat Tempatan
192.168.0.2
Alamat Jauh
192.168.0.1
Rahsia IPsec
Nyahaktifkan medan (jika tidak, Peer baharu akan dibuat)
Menjaga
Nyahaktifkan medan (jika tidak, antara muka akan sentiasa dimatikan, kerana mikrotika mempunyai format sendiri untuk pakej ini dan tidak berfungsi dengan Linux)
DSCP
mewarisi
Jangan Pecah
tidak
Kepit TCP MSS
benar
Benarkan Laluan Pantas
benar
Bahagian "IP" - "Alamat", tambah alamat:
Parameter
Nilai
Alamat
192.168.0.2/30
Antara muka
IPIP-IPsec0
Kini anda boleh menambah laluan ke rangkaian di belakang mesin Linux; apabila menambah laluan, get laluan akan menjadi antara muka IPIP-IPsec0 kami.
PS
Memandangkan pelayan Linux kami adalah transitif, masuk akal untuk menetapkan parameter Clamp TCP MSS untuk antara muka ipip padanya:
buat fail /etc/iptables.conf dengan kandungan berikut:
*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT
dan dalam /etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf
Saya mempunyai nginx yang berjalan pada rangkaian di belakang mikrotik (ip 10.10.10.1), menjadikannya boleh diakses dari Internet, tambahkannya 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 menambah kebenaran yang sesuai pada iptables jika anda mendayakan penapis paket.
Jadilah sihat!
Sumber: www.habr.com