Linux VPN кардарын эски түзмөктүн протоколуна ылайыктаңыз
Түзмөктүн жарыяланган портторун окуңуз, анан ылайыктуу кардарды орнотуңуз: GRE үстүндөгү pppd, IKEv1 XAuth үчүн strongSwan же портал үчүн openconnect.
Төрт протокол үй-бүлөсү стеллажда турган дээрлик ар бир түзмөнү камтыйт жана алардын ар бири Linux'то башкача ишке ашпай калат. Алыскы тараптын жарыялаган порттору жана конфигурацияланган сунуштары сиздин пакетиңизди аныктайт, кокустан иштетип жаткан дистрибутивиңиз эмес. Форумдагы постто айтылганды орнотуп, анан бир нерсе туташканга чейин оңдоо — түштөн кийинки убакыт ушундай жоголот. Түзмөнү окуңуз, экинчи орнотуңуз, үчүнчү текшериңиз.
Алыскы тарап эмнени жарыялаганын жазып алыңыз
Пакет менеджерин ачпас мурун түзмөк күткөн протоколду, портторду жана аутентификацияны жазыңыз. Төрт үй-бүлө эски жабдуулардын көп бөлүгүн камтыйт, ал эми төмөнкү таблица — бир экрандагы бүт чечим.
| Family | Ports | Linux side |
|---|---|---|
| PPTP | TCP 1723 plus GRE, IP protocol 47 | pppd with a peer file |
| L2TP/IPsec | UDP 500, 4500, 1701 | NetworkManager plugin over strongSwan |
| IKEv1 aggressive with XAuth | UDP 500 | native strongSwan connection |
| AnyConnect-style portal | TCP 443 | openconnect with a TUN device |
Нускама жана түзмөктүн өзүнүн файрвол эрежелери анын кирүү баракчасындагы протокол атынан ишенимдүү. IPsec жарнамалаган түзмөк IKEv1 гана сүйлөшү мүмкүн, ал эми эч ким колдонбогон firmware чыгарылышы акыры IKEv2 кошкон нерсе болушу мүмкүн. Маалымат жолун да, конфигурация портун да ырастаңыз, анткени эски жабдуу менен заманбап тармактар дал ушул жерде ажырайт. Бул кадамда ката кетирүү — кардарыңызды экинчи тарапта эч качан болбогон функцияга каршы жөндөө.
PPTP: pppd'ни оңдоодон мурун GRE'ни далилдеңиз
Linux'то PPTP — сиз иштетүүчү демон эмес, pppd чакыруусу, ал эми туташуу параметрлери pppd чакырылганда окуган аталган peer файлында жашайт. Дистрибутивдер аны дагы эле пакеттешет, бирок протоколдун белгилүү алсыздыктары аны кандайдыр бир купуя нерсеге жараксыз кылат, ошондуктан аны башка эч нерсе сунуштабаган түзмөк үчүн гана катуу сактаңыз. Кардар сүйлөшүү жүргүзүп жатканда GRE'ге көңүл буруңуз, божомолдун ордуна кыска жазуу менен. Эң көп убакыт короткон ийгиликсиздик — аутентификация эмес, жок маалымат жолу.
pppd call branch-office
tcpdump -ni any proto gre -c 5
Эгер конфигурация аяктап, байланыш эч качан трафик ташыбаса, эсептик маалыматтарды тийүүдөн мурун GRE жолунан шектенүүңүз. Булут коопсуздук топторуна 47 протоколу үчүн ачык эреже керек, ал эми айрым тармактар аны көрүнгөн катасыз толугу менен бөгөттөйт. Чынында колдоно турган тармагыңыздан сынаңыз, баарына уруксат берген лабораториядан эмес.
L2TP/IPsec: бир дал келген сунуш он аракеттен утат
Демон журналын окуңуз, жумуш үстөлүнүн диалогун эмес, анткени диалог бир нече түрдүү ийгиликсиздикти бир билдирүүгө бириктирет. NO_PROPOSAL_CHOSEN катасы биринчи фазага таандык: кардар сервер кабыл албаган шифрлөөнү, хэшти же Diffie-Hellman тобун сунуштады. Түзмөк эмнени колдой турганын тизмелеп, ага дал келген бир сунуш жазыңыз, анткени кокустан алынган айкалыштар көбүнчө ошол эле катаны жайыраак берет. Жумуш үстөлүндө практикалык кардар — астында strongSwan же Libreswan бар NetworkManager L2TP кеңейтүүсү.
Жумуш үстөлү кеңейтүүсү үчүн бир маани берген сунуш сабы ишти өткөрүп берүүчү демон үчүн башка маани бериши мүмкүн, ошондуктан оңдоп жаткан катмарга ылайыктуу синтаксисти сактаңыз. Эгер түзмөк туннел сырын да талап кылса, бул IPsec ачкычынан өзүнчө этап. Бир нерсе териудөн мурун интерфейс кайсынысын сурап жатканын ырастаңыз.
XAuth менен агрессивдүү IKEv1 жана порталдын учуру
FortiGate стилиндеги акыркы чекит адатта каалайт XAuth менен агрессивдүү режимди жана конфигурацияланган режим дарегин, аны графикалык кеңейтүү такыр көрсөтпөшү мүмкүн. Жергиликтүү демон аны чечет, ал эми төмөнкү блок толук файл эмес, ошол конфигурациянын формасы. Сунуш маанилери үчүн өндүрүүчүнүн учурдагы документтерин караңыз.
conn branch
keyexchange=ikev1
aggressive=yes
leftauth=psk
leftauth2=xauth
leftsourceip=%config
right=203.0.113.10
strongSwan'дын эски чыгарылыштары 5 версиясы leftauth2=xauth колдонгон жерде xauth=client колдонгон, ошондуктан көчүрүлгөн үзүндү синтаксис үчүн гана ишке ашпай калышы мүмкүн. TLS порталы үчүн AnyConnect протоколунда сүйлөгөн openconnect Cisco жана көпчүлүк кайра бренделген өнүмдөрдү чечет, ага TUN түзмөгү жана аны конфигурациялоо укуктары керек. Портал дарегин браузер көрсөткөндөй так бериңиз, түзмөк күткөн кандайдыр бир жолду кошуп, андан кийин анын артындагы нерсени сынаардан мурун бөлүнгөн даректи текшериңиз. Интерфейсти алдын ала түзүү конфигурация учурунда бир түрдөгү күтүүсүздүктү жок кылат.
sudo ip tuntap add dev tun0 mode tun
sudo openconnect --protocol=anyconnect vpn.example.com
Туташыңыз, анан туруктуу тартипте текшериңиз
Бир убакта так бир VPN менеджерин иштетиңиз, анткени NetworkManager профили жана кол менен иштетилген демон маршруттар менен DNS үчүн талашат. Кол менен туташууну сынаардан мурун профилди түшүрүңүз жана эски туннель интерфейси калбаганын ырастаңыз. Анан ушундай тартипте текшериңиз: туннель дареги, керектүү жалгыз ички хостко маршрут, аттарды чечүү жана акырында чыныгы сурам. Жашыл белги аутентификацияны далилдейт, башка эч нерсени эмес.
ip -4 addr show tun0
ip route get 10.20.30.10
getent hosts app.internal
Эгер кандайдыр бир кадам ишке ашпаса, кийинкисин сынабастан ошол жерде токтоңуз, анткени бузулган маршруттун астындагы DNS ийгиликсиздиги сизге эч нерсе үйрөтпөйт. Тажрыйба жасоодон мурун иштеген профилдин көчүрмөсүн сактаңыз, анткени өчүрүлгөн туташуу файлын жоготуу оңой жана аны кайра куруу кыйын. Сунуш маанилерин түзмөк модели жана firmware версиясы менен бир жазууда сактаңыз, анткени кутуча алмаштырылганда ошол жазуу көчүү менен археология долбоорунун айырмасы.