IPIP IPsec VPN تونل د لینکس ماشین او مایکروټیک تر مینځ د NAT چمتو کونکي شاته

لینوکس: اوبنټو 18.04.4 LTS (GNU/Linux 4.15.0-91-generic x86_64)

  • Eth0 1.1.1.1/32 بهرنی IP
  • ipip-ipsec0 192.168.0.1/30 به زموږ تونل وي

مکتوب: CCR 1009، RouterOS 6.46.5

  • Eth0 10.0.0.2/30 د چمتو کونکي څخه داخلي IP. د چمتو کونکي بهرنۍ NAT IP متحرک دی.
  • ipip-ipsec0 192.168.0.2/30 به زموږ تونل وي

موږ به د ریکون په کارولو سره په لینکس ماشین کې IPsec تونل جوړ کړو. زه به توضیحات بیان نه کړم ، یو ښه دی مقاله у vvpoloskin.

اړین کڅوړې نصب کړئ:

sudo install racoon ipsec-tools

موږ ریکون تنظیم کوو، دا به په مشروط ډول د ipsec سرور په توګه عمل وکړي. څرنګه چې مایکروټیک په اصلي حالت کې نشي کولی اضافي پیرودونکي پیژندونکی لیږدوي، او بهرنۍ IP پته چې له لارې یې لینکس سره نښلوي متحرک دی، د مخکینۍ کیلي (د پاسورډ اختیار) کارول به کار ونکړي، ځکه چې پټنوم باید د IP پتې سره سمون ولري. نښلونکی کوربه، یا د پیژندونکي سره.

موږ به د RSA کلیدونو په کارولو سره اجازه وکاروو.

ریکون ډیمون د RSA بڼه کې کیلي کاروي، او مایکروټیک د PEM بڼه کاروي. که تاسو د plainrsa-gen افادیت په کارولو سره کیلي تولید کړئ چې د ریکون سره راځي ، نو تاسو به نشئ کولی د مایکروټیکا لپاره عامه کیلي د هغې په مرسته PEM فارمیټ ته بدل کړئ - دا یوازې په یو لوري بدلیږي: PEM ته RSA. نه openssl او نه ssh-keygen د plainrsa-gen لخوا رامینځته شوي کیلي لوستلی شي ، نو د دوی په کارولو سره به تبادله ممکنه نه وي.

موږ به د Openssl په کارولو سره د PEM کیلي تولید کړو او بیا به یې د 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

موږ به ترلاسه شوي کیلي په فولډر کې واچوو: /etc/racoon/certs/server. مه هیروئ چې د هغه کارونکي مالک وټاکئ چې نوم یې د ریکون ډیمون په نوم پیل شوی (معمولا روټ) 600 اجازې ته.

زه به د مایکروټیک ترتیب تشریح کړم کله چې د WinBox له لارې وصل شئ.

mikrotik ته د سرور-name.pub.pem کیلي اپلوډ کړئ: مینو "فایلونه" - "اپلوډ".

د "IP" برخه پرانیزئ - "IP sec" - "کیز" ټب. اوس موږ کیلي تولیدوو - د "کیلي تولید کړئ" تڼۍ، بیا د مایکروټیکا عامه کیلي "ایکسپور پب" صادر کړئ. کیلي، تاسو کولی شئ دا د "فایلونو" برخې څخه ډاونلوډ کړئ، په فایل کې ښیې کلیک وکړئ - "ډاونلوډ".

موږ د ریکون عامه کیلي، "واردات" واردوو، د "فایل نوم" ساحې په ډراپ-ډاون لیست کې موږ د سرور-name.pub.pem په لټه کې یو چې مخکې مو ډاونلوډ کړی و.

د مایکروټیک عامه کیلي باید بدل شي

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

او دا په /etc/racoon/certs فولډر کې واچوئ، د مالک او حقونو په اړه مه هېروئ.

د نظرونو سره racoon ترتیب: /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

د "IP" برخې ته راستانه شئ - "IPsec"

"پروفایل" ټب
پارسيم
ارزښت

نوم
ستاسو په اختیار کې (د ډیفالټ په واسطه)

هش الګوریتم
شاکنومکس

د کوډونې الګوریتم
aes-128

DH- ګروپ
modp2048

وړاندیز_څیړنه
ادعا

د ژوند موده
1d 00:00:00

NAT ټراورسل
ریښتیا (بکس چیک کړئ)

کاندیدان
120

DPD اعظمي ناکامي
5

د ملګرو ټب
پارسيم
ارزښت

نوم
ستاسو په اختیار کې (له دې وروسته د MyPeer په توګه راجع کیږي)

پته
1.1.1.1 (IP لینکس ماشینونه)

محلي پته
10.0.0.2 (IP WAN انٹرفیس مایکروټیک)

د پېژندنې
تلواله

د تبادلې حالت
اصلي

غیرقانوني
غلط

INITIAL_CONTACT واستوئ
رښتيا

د وړاندیز ټب
پارسيم
ارزښت

نوم
ستاسو په اختیار کې (له دې وروسته د MyPeerProposal په توګه راجع کیږي)

سند الګوریتم
شاکنومکس

encr. الګوریتم
aes-128-cbc

د ژوند موده
08:00:00

د PFS ګروپ
modp2048

"پیژندنه" ټب
پارسيم
ارزښت

پرتلنې
MyPeer

اټوه طریقه
rsa کلید

کلیدي
mikrotik.privet.key

لیرې کیلي
سرور-name.pub.pem

د پالیسۍ ټیمپلیټ ګروپ
تلواله

د نوټریک سلسله
خالي

زما د ID ډول
کړکېو

د ریموټ ID ډول
کړکېو

له خوا لوبه
لیرې id

د حالت ترتیب
خالي

پالیسي پیدا کړئ
نه

ټب "پالیسی - عمومي"
پارسيم
ارزښت

پرتلنې
MyPeer

تونل
رښتيا

Src. پته
192.168.0.0/30

ډیسټ پته
192.168.0.0/30

پروتوکول
255 (ټول)

کېنډۍ
غلط

ټب "پالیسی - عمل"
پارسيم
ارزښت

کړنه
کوډ

د ليول
اړتیا

د IPsec پروتوکولونه
esp

وړاندیز
MyPeerProposal

ډیری احتمال، زما په څیر، تاسو په خپل WAN انٹرفیس کې snat/masquerade ترتیب کړی؛ دا قاعده باید تنظیم شي ترڅو د وتلو ipsec پاکټونه زموږ تونل ته لاړ شي:
د "IP" - "فائر وال" برخې ته لاړ شئ.
د "NAT" ټب، زموږ د سنیټ / ماسکریډ قانون خلاص کړئ.

پرمختللی ټب
پارسيم
ارزښت

د IPsec پالیسي
بهر: هیڅ نه

د ریکون شیطان بیا پیل کول

sudo systemctl restart racoon

که چیرې ریکون د بیا پیل کولو سره پیل نشي، نو په ترتیب کې یوه تېروتنه شتون لري؛ په syslog کې، racoon د لاین شمیرې په اړه معلومات ښکاره کوي په کوم کې چې تېروتنه وموندل شوه.

کله چې د OS بوټ وي، د شبکې انٹرفیس پورته کولو دمخه د ریکون ډیمون پیل کیږي، او موږ د اوریدلو برخه کې د strict_address اختیار مشخص کړی؛ تاسو اړتیا لرئ د سیسټمډ فایل کې د ریکوون واحد اضافه کړئ.
/lib/systemd/system/racoon.service، په [یونټ] برخه کې، د کرښې وروسته = network.target.

اوس زموږ د ipsec تونلونه باید پورته وي، محصول ته وګورئ:

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

که تونلونه پورته نه وي، syslog، یا journalctl -u racoon ته وګورئ.

اوس تاسو اړتیا لرئ د L3 انٹرفیس تنظیم کړئ ترڅو ترافیک ودرول شي. مختلف اختیارونه شتون لري، موږ به IPIP وکاروو، ځکه چې مایکروټیک یې ملاتړ کوي، زه به vti وکاروم، مګر، له بده مرغه، دا لا تر اوسه په مایکروټیک کې نه دی پلي شوی. دا د IPIP څخه توپیر لري پدې کې دا کولی شي ملټي کاسټ اضافه کړي او په پاکټونو کې fwmarks واچوي ، د کوم په واسطه دوی په iptables او iproute2 (د پالیسۍ پراساس روټینګ) کې فلټر کیدی شي. که تاسو اعظمي فعالیت ته اړتیا لرئ ، نو د مثال په توګه ، GRE. مګر مه هیروئ چې موږ د لوی سر سر سره اضافي فعالیت لپاره پیسې ورکوو.

تاسو کولی شئ د تونل انٹرفیسونو د ښه عمومي کتنې ژباړه وګورئ دلته.

په لینکس کې:

# Создаем интерфейс
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

اوس تاسو کولی شئ د مایکروټیک شاته د شبکو لپاره لارې اضافه کړئ

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

د دې لپاره چې زموږ د انٹرفیس او روټونو له ریبوټ وروسته پورته شي، موږ اړتیا لرو چې په /etc/network/interfaces کې انٹرفیس تشریح کړو او هلته په پوسټ اپ کې لارې اضافه کړو، یا هرڅه په یوه فایل کې ولیکئ، د بیلګې په توګه، /etc/. ipip-ipsec0.conf او د پوسټ اپ له لارې یې راوباسئ، د فایل مالک، حقونه مه هېروئ او د اجرا وړ یې کړئ.

لاندې د مثال فایل دی

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

په مایکروټیک کې:

د "انټرفیس" برخه، یو نوی انٹرفیس "IP تونل" اضافه کړئ:

ټب "IP تونل" - "عمومي"
پارسيم
ارزښت

نوم
ستاسو په اختیار کې (له دې وروسته د IPIP-IPsec0 په توګه راجع کیږي)

MTU
1480 (که مشخص نه وي، مایکروټیک د mtu 68 ته پرې کول پیل کوي)

محلي پته
192.168.0.2

لرې پته
192.168.0.1

IPsec راز
ساحه غیر فعال کړئ (که نه نو یو نوی ملګری به رامینځته شي)

ساتونکی
ساحه غیر فعال کړئ (که نه نو انٹرفیس به په دوامداره توګه بند شي، ځکه چې مایکروټیکا د دې کڅوړو لپاره خپله بڼه لري او د لینکس سره کار نه کوي)

DSCP
ميراث

ټوټه ټوټه مه کوئ
نه

کلیمپ TCP MSS
رښتيا

د چټکې لارې اجازه ورکړئ
رښتيا

برخه "IP" - "پته"، پته اضافه کړئ:

پارسيم
ارزښت

پته
192.168.0.2/30

برسیر
IPIP-IPsec0

اوس تاسو کولی شئ د لینکس ماشین شاته شبکې ته لارې اضافه کړئ؛ کله چې لاره اضافه کړئ ، ګیټ وے به زموږ د IPIP-IPsec0 انٹرفیس وي.

PS

څرنګه چې زموږ د لینکس سرور انتقالي دی، نو دا معنی لري چې د کلیمپ TCP MSS پیرامیټر په دې کې د ipip انٹرفیسونو لپاره تنظیم کړئ:

د لاندې منځپانګو سره /etc/iptables.conf فایل جوړ کړئ:

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

او په /etc/network/interfaces کې
پوسټ اپ iptables-restore < /etc/iptables.conf

زه د مایکروټیک (ip 10.10.10.1) شاته په شبکه کې nginx چلوم ، دا د انټرنیټ څخه د لاسرسي وړ کړئ ، دا په /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 

iptables ته مناسب اجازې اضافه کول مه هیروئ که تاسو د پاکټ فلټرونه فعال کړي وي.

روغ شئ!

سرچینه: www.habr.com

Add a comment