IPIP IPsec VPN terowong antara mesin Linux dan Mikrotik di belakang pembekal NAT

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 artikel Ρƒ vvpoloskin.

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 sini.

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

Tambah komen