Отворањето на VPN портата не им дава пристап на клиентите до LAN
Влезно правило пропушта пакети адресирани до самата порта. Сообраќајот на клиентот кон друг домаќин бара проследување, рутирање и повратен пат, кои се тестираат одделно.
Тунелот се крева, клиентот се автентифицира, но LAN зад портата останува невидлив. Правилото што требаше да го поправи ова ја дозволува VPN портата и работи точно како што е напишано, зашто тоа правило управува со пакети адресирани до самата порта. Сообраќајот на клиентот кон домаќин зад портата има друга дестинација и друг синџир. Успешното најавување не менува кој од двата синџири го проверува јадрото.
Два синџири, две различни дестинации
Судбината на пакетот ја одредува каде оди, а не како пристигнал. Сообраќајот до адреса на портата се доставува локално и се оценува со влезните правила. Сообраќајот што портата го проследува понатаму се оценува со правилата за проследување. Истиот интерфејс на тунелот може да произведе двата вида пакети, затоа едно правило не може да ги покрие двете задачи.
Целиот мит во една реченица: дозволувањето на слушателот не кажува ништо за дозволувањето на мрежата зад него. Тоа се две одделни одлуки со одделни докази, а името на интерфејсот на двете не ги спојува.
Што всушност дозволува правилото на слушателот
Пакетите на слушателот завршуваат во VPN процесот и токму тоа овозможува тунелот воопшто да се воспостави. Страницата за администрација на портата и локалниот дијагностички одговор исто така го користат сопствениот влезен пат на домаќинот, затоа проверката кон портата успева, додека сè зад неа пропаѓа. Двата резултати се точни и ниту еден не е за LAN.
Кога процесот ја декапсулира сообраќајот на клиентот за друга дестинација, пакетот влегува во патот за проследување и таму му треба дозвола. Успешната автентикација одредува кој е клиентот; таа не одредува каде смее да оди. Двете прашања имаат различни сопственици, различни дневници и различни пораки за грешка.
Тестирајте од клиент, никогаш од портата
Тестот направен на портата го следи сопствениот излезен пат на домаќинот и може да успее додека патот за проследување е затворен. Започнете го тестот од клиентот и гледајте ги двата краја на текот.
nc -vz 10.40.7.25 445
tcpdump -ni tun0 host 10.40.7.25Ако барањето се појави на tun0 и ништо не стигне до дестинацијата, пакетот се отфрла по пристигнувањето, што укажува на правилата за проследување или на сопственото филтрирање на дестинацијата. Ако на tun0 воопшто не се појави ништо, клиентот не го праќа ни во тунелот, а проблемот е во рутирањето на клиентот, не во политиката на портата. Споредете го со барање што излегува правилно и не враќа ништо, што е случајот со повратниот пат.
Проследувањето бара три работи, не една
Проследувањето во јадрото мора да биде вклучено, филтер правилото мора да го прифати текот, а дестинацијата мора да биде достапна со пат за враќање на одговорот. Ако недостасува една од трите, тишината од гледна точка на клиентот е иста.
sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
sudo iptables -S INPUTЧитајте ги трите излези заедно. Нулата во првиот ги прави другите два неважни, а стандардната политика за отфрлање во вториот ги отфрла пакетите на клиентот додека сопствениот сообраќај на портата продолжува да работи. Третиот излез покажува зошто правилото на слушателот никогаш не било проблем.
Држете ги двата комплети правила одделно во документацијата
Напишете го правилото на слушателот и правилото за проследената услуга на одделни редови, со одделни сопственици и причини. Кога VPN портата се менува или се објавува нова услуга, тоа раздвојување спречува една промена тивко да ја прошири другата.
Наместо секој автентифициран партнер да го третирате како доверлив LAN член, користете тесни правила за оние опсези на клиенти и услуги на кои им требаат. Белешките за проследување на StrongSwan ја опишуваат страната на повратната рута и преводот на истата граница, што е повторно трета одлука.
На крајот, држете ги слоевите прави кога корисникот е одбиен. Ако барањето стигне до домаќинот, а апликацијата ја одбие сметката, поправете ја дозволата на апликацијата на тој слој; проширувањето на проследувањето не може да даде акредитиви за споделување датотеки и ќе го прошири пристапот за сите други што успешно се поврзуваат.