Android OpenVPN: додавање приватна рута без root на телефонот
Додајте една рута во профилот што Android навистина го вчитува, потоа проверете дали серверот ја дозволува. Водич за измената, повторното поврзување и четири проверки.
Ви треба уште една приватна подмрежа — да речеме 10.60.0.0/24 — што профилот сега не ја содржи. На преносен сметач би додале рута и продолжиле. На Android VPN е апликација, tun уредот ѝ припаѓа на таа апликација, и нема табела за рутирање што може да се уредува без root. Рутата сепак мора да постои, но таа оди во профилот што го вчитува клиентот и работи само ако другата страна се согласува. Еве ја измената, повторното поврзување, серверската страна и враќањето.
Пред измената: што рута може и што не може
Рутата одговара на едно прашање: кој интерфејс треба да го носи сообраќајот кон оваа дестинација. Таа ништо не овластува. Ако сопственикот на мрежата не се согласил дека овој телефон може да ја достигне таа подмрежа, правилната рута создава конфигурација што изгледа исправна и тивко отфрлање кај портата, а следниот час ќе го поминете уредувајќи го погрешниот фајл.
Прво добијте ја таа согласност, писмено ако мрежата има сопственик. Потоа запишете што не правите: не му доделувате на телефонот адреса во тој LAN, не го менувате слушателот на серверот и не избирате локација по име на домаќин. Тоа се четири различни измени и само првата е ваша.
| The route gives you | The route does not give you |
|---|---|
| A destination prefix associated with the tunnel | Permission to forward at the gateway |
| A path for the phone's own traffic | A return route on the target host |
| A scope for the client's virtual interface | A name in DNS, or HTTPS identity |
Уредете го профилот што клиентот навистина го вчитува
За компатибилен клиент што увезува обичен текст од опции на OpenVPN, додатокот е една линија:
route 10.60.0.0 255.255.255.0Додајте ја во телото на профилот, покрај другите директиви за рутирање, а endpoint-от, сертификатите, ракувањето со клучеви и линиите за проверка на операторот оставете ги точно како што беа. Не лепете цел стар пример за да позајмите една линија: компресијата, апсолутните патеки на датотеки и застарените cipher поставки патуваат со него и ќе ве чинат одделна сесија за отстранување грешки.
Чекорот што луѓето го пропуштаат е сопственоста на датотеката. Ако апликацијата увезла профил, копијата што ја користи е на апликацијата, а уредувањето на преземаниот оригинал не менува ништо. Користете го поддржаниот уредувач на клиентот или повторно увезете ја изменетата датотека по патот за ажурирање, и потврдете го името на активниот профил кога има повеќе слични имиња. Запишете кој го изменивте.
Ако профилот веќе содржи route-nopull, не се инсталира ниту една рута од серверот и секој префикс што му треба на телефонот мора експлицитно да се наведе. Тоа е легитимен дизајн, но значи дека испуштена линија изгледа точно како одбивање од серверот.
Повторно поврзете се и проверете на уредот
Прво исклучете се, потоа повторно поврзете се на токму тој профил што го уредувавте, наместо да ја оставите апликацијата да ја врати последната сесија. Отворете го дневникот за поврзување и потврдете дека клиентот ја анализирал новата линија; директивата за рутирање што интерфејсот ја игнорира е чест резултат од уредување на погрешната копија.
Тестирајте ја дестинацијата по адреса, не по име. TCP проверка на еден познат сервисен порт дава повеќе информации од ping, бидејќи многу домаќини одговараат на ICMP додека сервисниот порт е филтриран. Ако адресата одговара, а името не, имате прашање за резолвер, а не за рутирање, и следниот дел не е за вас.
Овде припаѓаат и две проверки на опсег. VPN по апликација значи дека рута за адреса може да постои додека апликацијата со која тестирате е надвор од вклученото множество, затоа тестирајте со апликација што навистина е внатре. А IPv4 префиксот не кажува ништо за патеката IPv6; ако сервисот е dual-stack, додајте ја соодветната IPv6 рута или очекувајте клиентот да претпочита патека што не ја намеравте.
Еден негативен резултат вреди рано да се препознае: ако full-tunnel рута веќе покрива 0.0.0.0/0, префиксот не недостасува и неговото повторно додавање не менува ништо. Двојното покривање не го поправа одбивањето од серверската страна ниту отсутниот одговор.
Завршете ја патеката на серверот
Три работи мора да бидат точни надвор од телефонот. На портата ѝ треба рута до дестинацијата и дозвола да го проследи изворот на телефонот кон неа. Целта мора да го прифати тој извор и да врати одговори преку портата, инаку дизајнот бара намерен превод на излезот. Опцијата route од прирачникот на OpenVPN ја покрива директивата на клиентската страна; проследувањето и повратното рутирање се одделни поставки на одделни машини.
Ако дестинацијата е зад друг VPN клиент наместо директно зад портата, на серверот му треба iroute за подмрежата на тој партнер. Таа директива му припаѓа на серверот и опишува кој клиент поседува префикс; телефон не може да ја обезбеди од својот профил и никаква количина уредување на клиентската страна не ја заменува.
Изрично проверете ја повратната патека. Одговор што излегува по стандардната рута наместо по тунелот го создава класичниот симптом на полуотворена врска: врската се воспоставува во една насока и ништо не се враќа. Преводот на изворот на портата е легитимно решение кога целта не може да рутира назад, но тоа е одлука за политика со свои последици.
Враќање и прифаќање
Зачувајте го претходниот профил пред да го уредите. Ако измената ја влоши состојбата, вратете ја таа копија по истиот пат за повторно увезување, поврзете се повторно и потврдете дека старото однесување се враќа — тоа потврдува дека сте го измениле она што мислевте дека го менувате. Враќање што не ја враќа старата состојба значи дека апликацијата држи трета копија што не сте ја нашле.
Прифатете ја измената кога важат четири работи, тестирани по овој ред по свежо повторно поврзување: дестинацијата одговара на својот сервисен порт, приватното име се резолвира ако се очекува, HTTPS сè уште го валидира предвиденото име на домаќин и сето функционира по рестартирање или премин од Wi-Fi на мобилна мрежа. Последната проверка е таа што фаќа рута што постои само додека Android повторно не го воспостави тунелот.
- Пред да уредите нешто, потврдете дека сопственикот на мрежата ја дозволува дестинацијата.
- Ставете ја рутата во профилот што клиентот го вчитува, потоа повторно увезете и поврзете се.
- Проверете преку сервисен порт, во опсегот по апликација, за точното семејство адреси.
- Поправете го проследувањето, повратното рутирање и iroute на серверот, не на телефонот.
- Зачувајте копија за враќање и повторно тестирајте по рестартирање.