Tollán IPIP IPsec VPN idir meaisín Linux agus Mikrotik taobh thiar de sholáthraí NAT

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

  • Eth0 1.1.1.1/32 IP seachtrach
  • ipip-ipsec0 192.168.0.1/30 a bheidh inár dtollán

Maidhc: CCR 1009, RódaireOS 6.46.5

  • Eth0 10.0.0.2/30 IP inmheánach ón soláthraí. Tá IP NAT seachtrach an tsoláthraí dinimiciúil.
  • ipip-ipsec0 192.168.0.2/30 a bheidh inár dtollán

Cruthóimid tollán IPsec ar mheaisín Linux ag baint úsáide as racún. Ní dhéanfaidh mé cur síos ar na sonraí, tá ceann maith airteagal у vvpoloskin.

Suiteáil na pacáistí riachtanacha:

sudo install racoon ipsec-tools

Déanaimid racún a chumrú, gníomhóidh sé go coinníollach mar fhreastalaí ipsec. Ós rud é nach féidir le mikrotik sa phríomh-mhód aitheantóir cliant breise a tharchur, agus go bhfuil an seoladh IP seachtrach trína nascann sé le Linux dinimiciúil, ní oibreoidh úsáid eochair réamhroinnte (údarú pasfhocail), mar ní mór an pasfhocal a mheaitseáil le seoladh IP na an t-óstach nasctha, nó le haitheantóir.

Úsáidfimid údarú ag baint úsáide as eochracha RSA.

Úsáideann an deamhan racún eochracha san fhormáid RSA, agus úsáideann mikrotik an fhormáid PEM. Má ghineann tú eochracha ag baint úsáide as an bhfóntas plainrsa-gen a thagann le racún, ansin ní bheidh tú in ann an eochair phoiblí do Mikrotika a thiontú go formáid PEM lena chabhair - ní athraíonn sé ach i dtreo amháin: PEM go RSA. Níorbh fhéidir le openssl ná ssh-keygen an eochair ginte ag plainrsa-gen a léamh, mar sin ní féidir an tiontú a dhéanamh agus iad á n-úsáid ach an oiread.

Ginfimid eochair PEM ag baint úsáide as openssl agus ansin í a thiontú le haghaidh racún ag baint úsáide as 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

Cuirfimid na heochracha faighte san fhillteán: /etc/racoon/certs/server. Ná déan dearmad úinéir an úsáideora a seoltar an deamhan racún faoina ainm (fréimhe de ghnáth) a shocrú go 600 cead.

Déanfaidh mé cur síos ar an socrú mikrotik agus tú ag nascadh via WinBox.

Uaslódáil an eochair server-name.pub.pem go mikrotik: Menu “Comhaid” - “Uaslódáil”.

Oscail an chuid “IP” - “Seic IP” - cluaisín “Eochracha”. Anois gineann muid eochracha - an cnaipe “Gin Eochair”, ansin easpórtáil an eochair phoiblí mikrotika “Expor Pub. Eochair", is féidir leat é a íoslódáil ón alt "Comhaid", deaschliceáil ar an gcomhad - "Íoslódáil".

Iompórtáilimid an eochair phoiblí racún, “Iompórtáil”, sa liosta anuas den réimse “Ainm comhaid” a lorgaimid ainm an fhreastalaí.pub.pem a d’íoslódáil muid níos luaithe.

Is gá an eochair phoiblí mikrotik a thiontú

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

agus é a chur san fhillteán /etc/racoon/certs, gan dearmad a dhéanamh faoin úinéir agus faoi chearta.

config racoon le tuairimí: /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; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}

cumraíocht mikrotik

Fill ar ais chuig an rannán "IP" - "IPsec"

"Próifílí" cluaisín
Paraiméadar
Luach

Ainm
De do rogha féin (de réir réamhshocraithe)

Algartam Hash
sha512

Algartam Criptithe
aes-128

DH-Grúpa
mod 2048

Proposhal_seiceáil
éileamh

Feadh an tsaoil
1d 00:00:00

Trasnú NAT
fíor (seiceáil an bosca)

DPD
120

DPD Teip uasta
5

cluaisín piaraí
Paraiméadar
Luach

Ainm
De do rogha féin (dá ngairfear MyPeer anseo feasta)

Seoladh
1.1.1.1 (meaisíní IP Linux)

Seoladh Áitiúil
10.0.0.2 (microtik comhéadan IP WAN)

Próifíl
réamhshocraithe

Mód Malairte
príomh-

Éighníomhach
bréagach

Seol INITIAL_CONTACT
fíor

Cluaisín togra
Paraiméadar
Luach

Ainm
De do rogha féin (dá ngairfear MyPeerProposal anseo feasta)

Údar. halgartaim
sha512

Encr. halgartaim
aes-128-cbc

Feadh an tsaoil
08:00:00

Grúpa PFS
mod 2048

Cluaisín "Aitheantais".
Paraiméadar
Luach

Piaraí
Mo Phiarsach

Atúh. Modh
eochair rsa

Key
eochair mikrotik.privet

Eochair cianda
freastalaí-ainm.pub.pem

Grúpa Teimpléad Beartais
réamhshocraithe

Slabhra Notrack
folamh

Mo Chineál ID
carr

Cineál aitheantais cianda
carr

Match By
id iargúlta

Cumraíocht Mód
folamh

Beartas a Ghin
uimh

Táb "Polasaithe - Ginearálta"
Paraiméadar
Luach

Piaraí
Mo Phiarsach

Tollán
fíor

Src. Seoladh
192.168.0.0/30

Dest. Seoladh
192.168.0.0/30

Prótacal
255 (ar fad)

teimpléad
bréagach

Cluaisín "Polasaithe - Gníomh"
Paraiméadar
Luach

gníomh
criptigh

Leibhéal
cheangal

Prótacail IPsec
esp

Togra
MoThogáil Piara

Is dóichí, cosúil liomsa, go bhfuil snat/masquerade cumraithe ar do chomhéadan WAN; ní mór an riail seo a choigeartú ionas go dtéann paicéid ipsec atá ag dul as oifig isteach inár dtollán:
Téigh go dtí an t-alt "IP" - "Balla Dóiteáin".
Cluaisín "NAT", oscail ár riail snat/masquerade.

Cluaisín Casta
Paraiméadar
Luach

Beartas IPsec
amach: none

An deamhan racún a atosú

sudo systemctl restart racoon

Mura dtosaíonn racún ar atosú, tá earráid sa chumraíocht; i syslog, taispeánann racún faisnéis faoin uimhir líne inar braitheadh ​​an earráid.

Nuair a thosaíonn an OS, tosaíonn an deamhan racún sula dtabharfar na comhéadain líonra suas, agus shonraigh muid an rogha strict_address sa rannóg éisteachta; ní mór duit an t-aonad racún a chur leis an gcomhad systemd
/lib/systemd/system/racoon.service, sa roinn [Aonad], líne After=network.target.

Anois ba chóir go mbeadh ár dtolláin ipsec in airde, féach ar an aschur:

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

Mura bhfuil na tolláin in airde, féach ar syslog, nó journalctl -u racoon.

Anois ní mór duit comhéadain L3 a chumrú ionas gur féidir trácht a stiúradh. Tá roghanna éagsúla ann, úsáidfimid IPIP, ós rud é go dtacaíonn mikrotik leis, úsáidfinn vti, ach, ar an drochuair, níl sé curtha i bhfeidhm fós i mikrotik. Tá sé difriúil ó IPIP sa mhéid is gur féidir leis ilchraoladh a chuimsiú chomh maith agus fwmarks a chur ar phaicéid, trína bhféadfar iad a scagadh in iptables agus iproute2 (ródú bunaithe ar bheartas). Más gá duit feidhmiúlacht uasta, ansin, mar shampla, GRE. Ach ná déan dearmad go n-íocaimid as feidhmiúlacht bhreise le ceann mór lastuas.

Is féidir leat an t-aistriúchán a fheiceáil ar fhorbhreathnú maith ar chomhéadain tolláin anseo.

Ar 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

Anois is féidir leat bealaí le haghaidh líonraí a chur taobh thiar de mikrotik

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

Chun ár gcomhéadan agus ár mbealaí a ardú tar éis atosaigh, ní mór dúinn cur síos a dhéanamh ar an gcomhéadan i /etc/network/interfaces agus bealaí a chur leis san iar-suas, nó gach rud a scríobh in aon chomhad amháin, mar shampla, /etc/ ipip-ipsec0.conf agus é a tharraingt tríd an bpost-suas, ná déan dearmad faoi úinéir an chomhaid, cearta agus é a dhéanamh inrite.

Anseo thíos tá comhad samplach

#!/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

Ar Mikrotik:

Roinn “Comhéadain”, cuir comhéadan nua “Tollán IP” leis:

Cluaisín “Tollán IP” - “Ginearálta”
Paraiméadar
Luach

Ainm
De do rogha féin (dá ngairfear IPIP-IPsec0 anseo feasta)

MTU
1480 (mura bhfuil sé sonraithe, tosaíonn mikrotik ag gearradh mtu go 68)

Seoladh Áitiúil
192.168.0.2

Seoladh cianda
192.168.0.1

Rún IPsec
Díghníomhachtaigh an réimse (ar shlí eile cruthófar Piara nua)

Coimeádach
Díghníomhachtaigh an réimse (ar shlí eile múchfar an comhéadan i gcónaí, ós rud é go bhfuil a bhformáid féin ag mikrotika do na pacáistí seo agus nach n-oibríonn sé le Linux)

DSCP
hoidhreacht

Ná Fragment
uimh

Clamp TCP MSS
fíor

Ceadaigh Fast Path
fíor

Roinn “IP” - “Seoltaí”, cuir an seoladh leis:

Paraiméadar
Luach

Seoladh
192.168.0.2/30

comhéadan
IPIP-IPsec0

Anois is féidir leat bealaí a chur leis an líonra taobh thiar de mheaisín Linux; agus bealach á chur leis, beidh an geata mar ár gcomhéadan IPIP-IPsec0.

PS

Ós rud é go bhfuil ár bhfreastalaí Linux idirthréimhseach, tá ciall leis paraiméadar Clamp TCP MSS a shocrú le haghaidh comhéadain ipip air:

cruthaigh comhad /etc/iptables.conf leis an ábhar seo a leanas:

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

agus i /etc/network/interfaces
iar-suas iptables-restore </etc/iptables.conf

Tá nginx agam ag rith ar an líonra taobh thiar de mikrotik (ip 10.10.10.1), déan é a rochtain ón Idirlíon, cuir le /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 

Ná déan dearmad na ceadanna cuí a chur le iptables má tá scagairí paicéad cumasaithe agat.

Bí sláintiúil!

Foinse: will.com

Add a comment