FortiGate IPsec под Linux: кой клиент всъщност се свързва
Клиентът на доставчика за Linux говори само SSL VPN. Мобилният IPsec профил трябва да се изгради наново във vpnc или strongSwan и четири полета трябва да съвпадат с шлюза.
Вашият колега на Windows импортира профил от съветника на FortiGate и е онлайн за минута. Инсталирате същия пакет на Ubuntu, търсите раздел IPsec и намирате клиент, който умее само да отваря SSL VPN портал. Изводът, който следва, обикновено е грешен по два пътя: шлюзът не ви отхвърля и компилацията за Linux не е счупена. Fortinet доставя този клиент само с поддръжка на SSL VPN, така че мобилният IPsec профил няма къде да живее и трябва да бъде изграден наново там, където говорят IKEv1.
Това преизграждане е механично, щом спрете да третирате клиента на доставчика като референтна реализация.
Първо решете кой протокол всъщност ви е даден
Устройствата FortiGate публикуват и SSL VPN, и IPsec, а имейлът за предаване рядко казва кой точно ви е даден. URL на портал плюс страница за вход в стил браузър означава SSL VPN и на Linux отговорът там е openfortivpn, а не съответствието на полетата по-долу. Идентификатор на група плюс предварително споделен ключ означава мобилен IPsec, с който се справят vpnc и strongSwan.
Грешката тук е най-честата причина опит под Linux да умре преди първата фаза да завърши: клиентът предлага IKEv1 на HTTPS портал или обратното. Поискайте от администратора името на протокола писмено, преди да инсталирате каквото и да е.
Четири тайни пътуват в четири различни полета
Думата password се среща два пъти в повечето предавания и означава две различни неща. Предварително споделеният ключ удостоверява самия връстник и е машинна тайна, която администраторът чете от конфигурацията на шлюза. Паролата на вашия акаунт е отделна тайна, която доказва кой човек стои зад този връстник.
Другите две стойности се пропускат по-лесно. Идентификаторът на група е низът, който съветникът е записал в обекта IPsec група, а 0 е законна стойност, а не празно поле. Предложението обхваща криптиране, хеширане и Diffie-Hellman група за всяка фаза, плюс настройката PFS, и всеки негов елемент трябва да съвпада с шлюза. Когато връзката се провали на фаза 1, почти винаги виновник е една от тези четири, затова ги записвайте поотделно, вместо да ги стоварвате в един диалог.
Какво трябва да съдържа всяко поле на vpnc
Инсталирайте клиента заедно с редакторския интерфейс, след което създайте VPNC връзка:
sudo apt install vpnc network-manager-vpnc network-manager-vpnc-gnome
Задайте шлюза на публичния адрес на FortiGate, а името на групата — точно на идентификатора от шлюза, включително голо нула. Group password приема предварително споделения ключ, а потребителското име и паролата — вашия акаунт, с добавен токен, както шлюзът очаква. В разширения диалог изберете Diffie-Hellman групата, която предложението посочва, съгласувайте PFS със същата група, включете NAT traversal, когато клиентът е зад домашен рутер, и оставете откриването на мъртъв връстник в крак с шлюза.
Името на групата е полето, което се пропуска, защото изглежда незадължително, а стойността по подразбиране нула прилича на заместител. Изпратете го празно и клиентът предава различен идентификатор от този, който шлюзът проверява. Ако профилът все още не работи, сравнете разширените стойности с работещия клиент за Windows, а не с форумна публикация за друг сайт.
Същият профил, написан за strongSwan
strongSwan е по-добрият дългосрочен контейнер за тези стойности, тъй като конфигурацията е текстов файл, който можете да прегледате и запазите:
conn office-fw
keyexchange=ikev1
aggressive=yes
left=%any
leftauth=psk
leftauth2=xauth
xauth_identity=YOUR_USER
right=GATEWAY_ADDRESS
rightauth=psk
rightsubnet=OFFICE_SUBNET
ike=aes128-sha1-modp1536!
esp=aes128-sha1-modp1536!Прочетете редовете на предложението преди блока, защото удивителният знак в края променя значението им: той фиксира точно това предложение и премахва алтернативите, които клиентът иначе би предложил. Шлюз, конфигуриран за една двойка трансформации, ще отхвърли клиент, който отваря със списък, така че фиксирането е това, което превръща преговорите в съвпадение. Вземете точните имена на алгоритмите от работещия профил на шлюза и заменете заместителите със свои стойности.
Двата реда за удостоверяване не са излишни. PSK доказва връстника, XAuth блокът доказва потребителя и премахването на който и да е от тях оставя фаза, която шлюзът няма да завърши.
Прочетете отказа, преди да смените още едно поле
Работете назад от симптома, вместо да разбърквате диалога наново. IKE SA, който се вдига без зададен адрес, означава, че обменът за удостоверяване на потребителя се е провалил или никога не е стартирал, затова проверете акаунта и обработката на токена. Фаза 1, която никога не завършва, сочи към предложението, идентификатора на групата или агресивния режим и всяко от тях се сравнява с шлюза, не само с клиента за Windows.
Тунел, който се установява и след това умира на всеки няколко минути, е разминаване в откриването на мъртъв връстник между двата края; съгласувайте таймера на шлюза, вместо да изключвате keepalive навсякъде. Установен тунел, в който офис хостовете остават недостъпни, обикновено означава, че избутаната подмрежа така и не е попаднала в локалната таблица за маршрутизиране, което клиент на трета страна може да не направи сам.
Върнете работещите стойности на собственика на шлюза, когато приключите: протокол, идентификатор на групата, предварително споделен ключ, предложение, PFS и решението за DPD. Тогава следващата Linux машина отнема минути вместо вечер и никой не трябва да открива наново, че името на групата е било нула.