IPIP IPsec VPN tunnel sa pagitan ng Linux machine at Mikrotik sa likod ng NAT provider

Linux: Ubuntu 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

  • Eth0 1.1.1.1/32 panlabas na IP
  • ipip-ipsec0 192.168.0.1/30 ang magiging tunnel natin

Miktoik: CCR 1009, RouterOS 6.46.5

  • Eth0 10.0.0.2/30 panloob na IP mula sa provider. Ang panlabas na NAT IP ng provider ay dynamic.
  • ipip-ipsec0 192.168.0.2/30 ang magiging tunnel natin

Gagawa kami ng IPsec tunnel sa isang Linux machine gamit ang racoon. Hindi ko ilalarawan ang mga detalye, mayroong isang mahusay artikulo Ρƒ vvpoloskin.

I-install ang mga kinakailangang pakete:

sudo install racoon ipsec-tools

Kino-configure namin ang racoon, ito ay may kondisyon na kumilos bilang isang ipsec server. Dahil ang mikrotik sa main mode ay hindi makapagpadala ng karagdagang client identifier, at ang panlabas na IP address kung saan ito kumokonekta sa Linux ay dynamic, ang paggamit ng preshared key (password authorization) ay hindi gagana, dahil ang password ay dapat na tumugma sa IP address ng ang kumukonektang host, o may identifier.

Gagamit kami ng pahintulot gamit ang mga RSA key.

Ang racoon daemon ay gumagamit ng mga key sa RSA na format, at mikrotik ay gumagamit ng PEM format. Kung bubuo ka ng mga key gamit ang plainrsa-gen utility na kasama ng racoon, hindi mo magagawang i-convert ang pampublikong key para sa Mikrotika sa PEM format sa tulong nito - nagko-convert lang ito sa isang direksyon: PEM sa RSA. Hindi mabasa ni openssl o ssh-keygen ang nabuong key ng plainrsa-gen, kaya hindi rin magiging posible ang conversion gamit ang mga ito.

Bubuo kami ng PEM key gamit ang openssl at pagkatapos ay i-convert ito para sa racoon gamit ang 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

Ilalagay namin ang natanggap na mga susi sa folder: /etc/racoon/certs/server. Huwag kalimutang itakda ang may-ari ng user sa ilalim ng pangalan na ang racoon daemon ay inilunsad (karaniwan ay root) sa 600 na mga pahintulot.

Ilalarawan ko ang mikrotik setup kapag kumokonekta sa pamamagitan ng WinBox.

I-upload ang server-name.pub.pem key sa mikrotik: Menu β€œFiles” - β€œUpload”.

Buksan ang seksyong "IP" - "IP sec" - tab na "Mga Key". Ngayon ay bumubuo kami ng mga susi - ang pindutang "Bumuo ng Key", pagkatapos ay i-export ang mikrotika pampublikong key na "Expor Pub. Key", maaari mong i-download ito mula sa seksyong "Mga File", i-right click sa file - "I-download".

Ini-import namin ang racoon public key, "Import", sa drop-down na listahan ng field na "File name" hinahanap namin ang server-name.pub.pem na na-download namin kanina.

Kailangang ma-convert ang mikrotik public key

plainrsa-gen -i mikrotik.pub.pem -f mikrotik.pub.key

at ilagay ito sa folder na /etc/racoon/certs, hindi nakakalimutan ang may-ari at mga karapatan.

racoon config na may mga komento: /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 config

Bumalik sa seksyong "IP" - "IPsec"

Tab na "Mga Profile".
Parametro
Halaga

Pangalan
Sa iyong paghuhusga (bilang default)

Algorithm ng Hash
sha512

Algorithm ng Pag-encrypt
aes-128

DH-Group
modp2048

Proposhal_check
paghahabol

Habang-buhay
1d 00:00:00

NAT Traversal
totoo (lagyan ng tsek ang kahon)

DPD
120

DPD Maximum failure
5

Tab ng mga kapantay
Parametro
Halaga

Pangalan
Sa iyong paghuhusga (mula rito ay tinutukoy bilang MyPeer)

address
1.1.1.1 (mga IP Linux machine)

Lokal na Address
10.0.0.2 (IP WAN interface mikrotik)

Profile
default

Mode ng Exchange
pangunahin

Pabalintiyak
hindi totoo

Ipadala ang INITIAL_CONTACT
totoo

Tab ng panukala
Parametro
Halaga

Pangalan
Sa iyong paghuhusga (mula rito ay tinutukoy bilang MyPeerProposal)

Awth. Mga algorithm
sha512

Encr. Mga algorithm
aes-128-cbc

Habang-buhay
08:00:00

Pangkat ng PFS
modp2048

Tab na "Mga Pagkakakilanlan".
Parametro
Halaga

aninagin
MyPeer

Atuh. Pamamaraan
rsa susi

Key
mikrotik.privet.key

Remote Key
server-name.pub.pem

Pangkat ng Template ng Patakaran
default

Notrack Chain
walang laman

Aking ID Type
kotse

Uri ng Remote ID
kotse

Itugma Ni
malayong id

Configuration ng Mode
walang laman

Bumuo ng Patakaran
hindi

Tab na "Mga Patakaran - Pangkalahatan"
Parametro
Halaga

aninagin
MyPeer

Lagusan
totoo

Src. Address
192.168.0.0/30

Dest. Address
192.168.0.0/30

Protokol
255 (lahat)

Template
hindi totoo

Tab na "Mga Patakaran - Pagkilos"
Parametro
Halaga

aksyon
encrypt

Antas
nangangailangan

Mga Protokol ng IPsec
esp

panukala
MyPeerProposal

Malamang, tulad ko, mayroon kang snat/masquerade na na-configure sa iyong WAN interface; kailangang isaayos ang panuntunang ito upang ang mga papalabas na ipsec packet ay mapunta sa aming tunnel:
Pumunta sa seksyong "IP" - "Firewall".
"NAT" na tab, buksan ang aming snat/masquerade rule.

Advanced na Tab
Parametro
Halaga

Patakaran ng IPsec
labas: wala

I-restart ang racoon demon

sudo systemctl restart racoon

Kung ang racoon ay hindi magsisimula sa pag-restart, mayroong isang error sa config; sa syslog, ang racoon ay nagpapakita ng impormasyon tungkol sa numero ng linya kung saan ang error ay nakita.

Kapag nag-boot ang OS, magsisimula ang racoon daemon bago ilabas ang mga interface ng network, at tinukoy namin ang opsyon na strict_address sa seksyong makinig; kailangan mong idagdag ang racoon unit sa systemd file
/lib/systemd/system/racoon.service, sa seksyong [Unit], linya After=network.target.

Ngayon ang aming ipsec tunnels ay dapat na nakataas, tingnan ang 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

Kung ang mga tunnel ay wala, tingnan ang syslog, o journalctl -u racoon.

Ngayon ay kailangan mong i-configure ang mga interface ng L3 upang mairuta ang trapiko. Mayroong iba't ibang mga pagpipilian, gagamitin namin ang IPIP, dahil sinusuportahan ito ng mikrotik, gagamitin ko ang vti, ngunit, sa kasamaang palad, hindi pa ito naipatupad sa mikrotik. Naiiba ito sa IPIP dahil maaari itong magdagdag ng multicast at maglagay ng mga fwmark sa mga packet, kung saan maaari silang mai-filter sa mga iptable at iproute2 (pagruruta na nakabatay sa patakaran). Kung kailangan mo ng maximum na pag-andar, kung gayon, halimbawa, GRE. Ngunit huwag kalimutan na nagbabayad kami para sa karagdagang pag-andar na may malaking overhead head.

Maaari mong makita ang pagsasalin ng isang mahusay na pagsusuri ng mga interface ng tunnel dito.

Sa 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

Ngayon ay maaari kang magdagdag ng mga ruta para sa mga network sa likod ng mikrotik

sudo ip route add A.B.C.D/Prefix via 192.168.255.2

Upang mapataas ang aming interface at mga ruta pagkatapos ng pag-reboot, kailangan naming ilarawan ang interface sa /etc/network/interfaces at magdagdag ng mga ruta doon sa post-up, o isulat ang lahat sa isang file, halimbawa, /etc/ ipip-ipsec0.conf at hilahin ito sa pamamagitan ng post-up, huwag kalimutan ang tungkol sa may-ari ng file, mga karapatan at gawin itong executable.

Nasa ibaba ang isang halimbawang 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

Sa Mikrotik:

Seksyon "Mga Interface", magdagdag ng bagong interface na "IP tunnel":

Tab "IP tunnel" - "General"
Parametro
Halaga

Pangalan
Sa iyong paghuhusga (mula rito ay tinutukoy bilang IPIP-IPsec0)

MTU
1480 (kung hindi tinukoy, magsisimula ang mikrotik sa pagputol ng mtu sa 68)

Lokal na Address
192.168.0.2

Malayong Address
192.168.0.1

Lihim ng IPsec
I-deactivate ang field (kung hindi, gagawa ng bagong Peer)

Panatilihing buhay
I-deactivate ang field (kung hindi, ang interface ay patuloy na i-off, dahil ang mikrotika ay may sariling format para sa mga paketeng ito at hindi gumagana sa Linux)

DSCP
magmana

Huwag Magpira-piraso
hindi

I-clamp ang TCP MSS
totoo

Payagan ang Mabilis na Landas
totoo

Seksyon "IP" - "Mga Address", idagdag ang address:

Parametro
Halaga

address
192.168.0.2/30

interface
IPIP-IPsec0

Ngayon ay maaari ka nang magdagdag ng mga ruta sa network sa likod ng isang Linux machine; kapag nagdaragdag ng ruta, ang gateway ay ang aming IPIP-IPsec0 interface.

PS

Dahil ang aming Linux server ay palipat, makatuwirang itakda ang Clamp TCP MSS parameter para sa mga interface ng ipip dito:

lumikha ng isang file /etc/iptables.conf na may mga sumusunod na nilalaman:

*mangle
-A POSTROUTING -o ipip+ -p tcp -m tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
COMMIT

at sa /etc/network/interfaces
post-up iptables-restore < /etc/iptables.conf

Mayroon akong nginx na tumatakbo sa network sa likod ng mikrotik (ip 10.10.10.1), gawin itong naa-access mula sa Internet, idagdag ito sa /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 

Huwag kalimutang idagdag ang naaangkop na mga pahintulot sa iptables kung pinagana mo ang mga packet filter.

Maging malusog!

Pinagmulan: www.habr.com

Magdagdag ng komento