Linux: ኡቡንቱ 18.04.4 LTS (ጂኤንዩ/ሊኑክስ 4.15.0-91-አጠቃላይ x86_64)
- Eth0 1.1.1.1/32 ውጫዊ አይፒ
- ipip-ipsec0 192.168.0.1/30 የእኛ መሿለኪያ ይሆናል።
ሚክቶይክ፡ CCR 1009, RouterOS 6.46.5
- Eth0 10.0.0.2/30 የውስጥ አይፒ ከአቅራቢው. የአቅራቢው ውጫዊ NAT IP ተለዋዋጭ ነው።
- ipip-ipsec0 192.168.0.2/30 የእኛ መሿለኪያ ይሆናል።
ራኮን በመጠቀም በሊኑክስ ማሽን ላይ የአይፒሴክ ዋሻ እንፈጥራለን። ዝርዝሮቹን አልገልጽም, ጥሩ አለ
አስፈላጊዎቹን ፓኬጆች ይጫኑ:
sudo install racoon ipsec-tools
ራኮን እናዋቅራለን፣ ሁኔታዊ በሆነ መልኩ እንደ ipsec አገልጋይ ይሰራል። ሚክሮቲክ በዋና ሞድ ውስጥ ተጨማሪ የደንበኛ መለያን ማስተላለፍ ስለማይችል እና ከሊኑክስ ጋር የሚገናኝበት ውጫዊ አይፒ አድራሻ ተለዋዋጭ ስለሆነ አስቀድሞ የተጋራ ቁልፍ (የይለፍ ቃል ፍቃድ) መጠቀም አይሰራም ምክንያቱም የይለፍ ቃሉ ከአይፒ አድራሻው ጋር መመሳሰል አለበት ። የማገናኛ አስተናጋጁ, ወይም ከመለያ ጋር.
የ RSA ቁልፎችን በመጠቀም ፍቃድ እንጠቀማለን.
ራኮን ዴሞን በ RSA ቅርጸት ቁልፎችን ይጠቀማል፣ እና ሚክሮቲክ የPEM ቅርጸትን ይጠቀማል። ከራኮን ጋር የሚመጣውን የፕላይንሳ-ጄን መገልገያ በመጠቀም ቁልፎችን ከፈጠሩ፣በእርዳታው የ ሚክሮቲካ የህዝብ ቁልፍን ወደ 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 ፈቃዶች ማቀናበሩን አይርሱ።
በዊንቦክስ ሲገናኙ የማይክሮቲክ ማዋቀርን እገልጻለሁ።
የአገልጋይ-name.pub.pem ቁልፍን ወደ ሚክሮቲክ ይስቀሉ፡ ሜኑ “ፋይሎች” - “ስቀል”።
የ "IP" ክፍልን - "IP ሰከንድ" - "ቁልፎችን" ትርን ይክፈቱ. አሁን ቁልፎችን እናመነጫለን - የ “ቁልፉን አመንጭ” ቁልፍ ፣ ከዚያ ሚክሮቲካ የህዝብ ቁልፍ “ኤክስፖር ፐብ” ወደ ውጭ ላክ። ቁልፍ", ከ "ፋይሎች" ክፍል ማውረድ ይችላሉ, በፋይሉ ላይ በቀኝ ጠቅ ያድርጉ - "አውርድ".
ቀደም ብለን ያወረድነውን አገልጋይ-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; # Сжимать передаваемые данные, алгоритм сжатия предлагается только один.
}
ሚክሮቲክ ማዋቀር
ወደ "IP" ክፍል ተመለስ - "IPsec"
"መገለጫዎች" ትር
መለኪያ
ዋጋ
ስም
በእርስዎ ምርጫ (በነባሪ)
ሃሽ አልጎሪዝም
sha512
ምስጠራ አልጎሪዝም
aes-128
ዲኤች-ግሩፕ
modp2048
ፕሮፖሻል_ቼክ
የይገባኛል ጥያቄ
የህይወት ዘመን
1ኛ 00፡00፡00፡XNUMX
NAT መሻገር
እውነት (ሳጥኑ ላይ ምልክት ያድርጉ)
DPD
120
DPD ከፍተኛ ውድቀት
5
የእኩዮች ትር
መለኪያ
ዋጋ
ስም
በእርስዎ ውሳኔ (ከዚህ በኋላ ማይፒር ይባላል)
አድራሻ
1.1.1.1 (አይፒ ሊኑክስ ማሽኖች)
የአካባቢ አድራሻ
10.0.0.2 (IP WAN በይነገጽ ሚክሮቲክ)
ባንድ በኩል የሆነ መልክ
ነባሪ
የልውውጥ ሁኔታ
ዋና
የማይሠራ
የሐሰት
INITIAL_CONTACT ላክ
እውነተኛ
የፕሮፖዛል ትር
መለኪያ
ዋጋ
ስም
በእርስዎ ውሳኔ (ከዚህ በኋላ MyPeerProposal ይባላል)
እውነት። አልጎሪዝም
sha512
ማጠቃለያ አልጎሪዝም
aes-128-cbc
የህይወት ዘመን
08:00:00
PFS ቡድን
modp2048
"ማንነቶች" ትር
መለኪያ
ዋጋ
እኩዮች
MyPeer
አቱህ ዘዴ
rsa ቁልፍ
ቁልፍ
mikrotik.privet.ቁልፍ
የርቀት ቁልፍ
አገልጋይ-ስም.pub.pem
የፖሊሲ አብነት ቡድን
ነባሪ
የኖትራክ ሰንሰለት
ባዶ
የእኔ መታወቂያ አይነት
መኪና
የርቀት መታወቂያ አይነት
መኪና
ተዛማጅ በ
የርቀት መታወቂያ
ሁነታ ውቅር
ባዶ
ፖሊሲ መፍጠር
ቁ
ትር "መመሪያዎች - አጠቃላይ"
መለኪያ
ዋጋ
እኩዮች
MyPeer
የመሬት ዉስጥ መተላለፊያ
እውነተኛ
Src. አድራሻ
192.168.0.0/30
ደስት አድራሻ
192.168.0.0/30
ፕሮቶኮል
255 (ሁሉም)
አብነት
የሐሰት
ትር "መመሪያዎች - እርምጃ"
መለኪያ
ዋጋ
እርምጃ
ምስጠራ
ደረጃ
ይጠይቃል
IPsec ፕሮቶኮሎች
ልዩነት
ፕሮፖዛል
MyPeerProposal
ምናልባት ልክ እንደ እኔ በ WAN በይነገጽዎ ላይ snt/masquerade ተዋቅረዋል፡ የወጪ ipsec እሽጎች ወደ ዋሻችን እንዲገቡ ይህ ህግ መስተካከል አለበት።
ወደ "IP" - "ፋየርዎል" ክፍል ይሂዱ.
"NAT" ትር, የእኛን snat/masquerade ደንብ ይክፈቱ.
የላቀ ትር
መለኪያ
ዋጋ
IPsec ፖሊሲ
ውጭ፡ የለም
ራኮን ጋኔኑን እንደገና በማስጀመር ላይ
sudo systemctl restart racoon
ራኮን እንደገና ሲጀመር ካልጀመረ በማዋቀሩ ላይ ስህተት አለ፤ በ syslog ውስጥ ራኮን ስህተቱ የተገኘበትን የመስመር ቁጥር መረጃ ያሳያል።
ስርዓተ ክወናው ሲጀምር ራኮን ዴሞን የኔትወርክ በይነገጾች ከመምጣታቸው በፊት ይጀምራል እና ጥብቅ_አድራሻ አማራጩን በአድማጭ ክፍል ውስጥ ገልፀናል ፣ የራኮን ክፍሉን በስርዓት ፋይል ውስጥ ማከል ያስፈልግዎታል
/lib/systemd/system/racoon.service፣ በ [ዩኒት] ክፍል፣ መስመር After=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 እጠቀማለሁ, ግን በሚያሳዝን ሁኔታ, ገና በማይክሮቲክ ውስጥ አልተተገበረም. ከአይፒአይፒ የሚለየው በተጨማሪ መልቲካስትን በመከለል እና በፓኬቶች ላይ 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 ውስጥ መግለፅ እና በድህረ-ገጽ ውስጥ መስመሮችን ማከል ወይም ሁሉንም ነገር በአንድ ፋይል ውስጥ መጻፍ አለብን ፣ ለምሳሌ ፣ / ወዘተ. 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 ይባላል)
ኤምቲዩ
1480 (ካልተገለጸ ሚክሮቲክ ምቱን ወደ 68 መቁረጥ ይጀምራል)
የአካባቢ አድራሻ
192.168.0.2
የርቀት አድራሻ
192.168.0.1
IPsec ሚስጥር
መስኩን አቦዝን (አለበለዚያ አዲስ አቻ ይፈጠራል)
ተጠባባቂ
መስኩን አቦዝን (አለበለዚያ ሚክሮቲካ ለእነዚህ ጥቅሎች የራሱ የሆነ ቅርጸት ስላለው እና ከሊኑክስ ጋር የማይሰራ ስለሆነ በይነገጹ ያለማቋረጥ ይጠፋል)
ዲ.ኤስ.ፒ.
ውርስ
አትከፋፍል።
ቁ
ክላምፕ TCP MSS
እውነተኛ
ፈጣን መንገድ ፍቀድ
እውነተኛ
ክፍል "IP" - "አድራሻዎች", አድራሻውን ያክሉ:
መለኪያ
ዋጋ
አድራሻ
192.168.0.2/30
በይነገጽ
IPIP-IPsec0
አሁን ከሊኑክስ ማሽን ጀርባ ወደ አውታረ መረቡ መስመሮችን ማከል ይችላሉ፤ መንገድ ሲጨምሩ መግቢያ ዌይ የእኛ IPIP-IPsec0 በይነገጽ ይሆናል።
PS
የሊኑክስ አገልጋያችን ተሻጋሪ ስለሆነ፣ በላዩ ላይ የአይፒፒ በይነገጽ ላይ ያለውን የCamp TCP MSS መለኪያ ማዘጋጀት ምክንያታዊ ነው።
ከሚከተሉት ይዘቶች ጋር /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
post-up 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 ማከልን አይርሱ።
ጤናማ ይሁኑ!
ምንጭ: hab.com