VPN зона в OpenWrt, препращане и маскарад: кое от тях е нужно?
Входът на зоната, препращането и маскарадът отговарят на различни въпроси. Решете кое е нужно на VPN трафика ви, преди да отворите WAN зоната.
Три промени се смесват, щом VPN срещне OpenWrt: отваряне на порт, разрешаване на препращане и включване на маскарад. Те отговарят на различни въпроси и обикновено само една от тях е действителното изискване. Четенето на всяко управление според ролята на трафика, който то ръководи, превръща догадката в решение и също ви казва какъв симптом да очаквате, когато промяната е грешна. Започнете с назоваване на ролята, която е отказала, а не на отметката, която помните.
Назовете ролята на трафика, преди да пипате управление
Входът на зоната решава какво може да достигне самия рутер. Изходът на зоната обхваща трафика, който рутерът създава, препращането на зоната е по подразбиране за трафика, преминаващ през зона, а маскарадът решава дали адресът на източника се пренаписва на изхода. Това са четири различни въпроса и политиката на зоната отговаря на всички наведнъж с една и съща стойност, затова промяната за цяла зона е груб инструмент. Именувано правило може да отговори на един от тях, без да пипа останалите.
Полезната карта е по роля на трафика, защото точно това можете да наблюдавате, когато нещо се провали. Всяка роля по-долу има едно управление, което я решава, и един симптом, който сочи към нея:
| Traffic role | Control that decides it | Where it lives in the config | Symptom when it is wrong |
|---|---|---|---|
| A client reaching a listener on the router | Input policy of the zone that carries the connection, or a rule for the port | option input in the zone stanza, or a named rule | The handshake never completes and the tunnel log says nothing |
| A tunnel client reaching the router itself | Input policy of the tunnel zone | option input in the VPN zone | A ping to the gateway fails |
| A tunnel client reaching another LAN host | Forwarding from the tunnel zone to the LAN zone | config forwarding plus the zone assignment | The gateway answers and the file share times out |
| The router's own traffic leaving the WAN | Output policy, and translation if the far side needs it | option output and option masq | The tunnel never establishes, or replies vanish |
Слушателят на рутера се нуждае от едно тясно правило за вход
Сървър OpenVPN на рутера получава трафик, адресиран до рутера, затова външната му връзка зависи от политиката за вход на зоната, която го носи. Разрешете конфигурирания транспорт и порт и оставете всичко друго в тази зона отхвърлено. Едно правило за порт е много по-малка промяна от разрешение за цяла зона и точно него можете да обясните и след година.
Две неща правят това правило безопасно за запазване: то назовава порта, който услугата действително използва, и стои до дефиницията на зоната, за да види следващият човек защо съществува. Редовете по-долу са формата, а портът замества това, което е конфигурирано на сървъра. Сменете този порт на двете места, когато услугата се премести, защото правило, останало на стария, е невидимо до одит.
config zone
option name 'wan'
option input 'REJECT'
option forward 'REJECT'
option output 'ACCEPT'
option masq '1'
config rule
option name 'allow-openvpn'
option src 'wan'
option proto 'udp'
option dest_port '1194'
option target 'ACCEPT'Проверете преди презареждане, защото синтактична грешка във файл на защитната стена може да остави рутера без работещ набор от правила. В издание с fw4 проверката е отделна команда и тя се проваля шумно, вместо тихо да приеме счупен блок. Презаредете само след успешна проверка и пазете предишния файл там, откъдето можете да го върнете.
fw4 check
service firewall reloadЗаявката на клиента минава през препращане, не през вход
След удостоверяване заявката на клиент на тунела към услуга в LAN създава препратен поток, затова управлението, което го решава, е връзката за препращане между зоната на тунела и LAN зоната. Присвоете интерфейса на тунела на желаната зона, после обявете посоката, източниците и услугата. Присвояването на зоната е това, което придава смисъл на правилото за препращане, и двете имат смисъл само четени заедно. Връзка за препращане, която сочи зоната на тунела като източник и LAN зоната като дестинация, се чете като едно умишлено решение, докато две разрешения за цяла зона се четат като инцидент.
Достигането на самия рутер все още използва пътя за вход, затова ping към шлюза не казва нищо за файловото споделяне зад него. Тези два отказа живеят в различни блокове и се поправят с различни промени. Запишете двата пътя поотделно, преди да промените който и да е от тях.
Маскарадът е решение за маршрутизиране, а не разрешение
Маскарадът пренаписва адреса на източника на избрания изходящ трафик. Той може да спаси схема за изход, в която далечната страна няма обратен маршрут, и също скрива адресите на отделни клиенти от всяка услуга, която води журнал или разрешава по адрес. Изключването му е избор за маршрута на връщане, а не превключвател за сигурност, който затваря входяща дупка. Тунел, който работи с включено преобразуване и се проваля в момента на изключването му, обикновено има липсващ обратен маршрут, а не липсващо правило на защитната стена.
Маршрутизираната алтернатива изисква обратен маршрут от далечната страна вместо преобразуване. Нито един вариант не дава разрешението на защитната стена или акаунта на приложението, затова изключването на маскарада почти никога не поправя клиент на тунела, който не може да достигне нищо. Отнасяйте се към политиката за IPv4 и IPv6 отделно, защото една настройка за преобразуване не описва двете семейства.
Докажете решението с една разрешена и една отказана заявка
Изпратете една заявка, която трябва да бъде разрешена, и една, която трябва да бъде отказана, после определете управлението, което е взело всяко решение. Страница, която случайно се зарежда, не е доказателство; доказателството е правилото, което е съвпаднало, във веригата, в която е съвпаднало. Отказът е толкова важен, колкото успехът, защото показва, че политиката прави нещо, вместо всичко да е разрешено.
Две команди ви дават това доказателство в текущо издание. Броячът на съответното правило се движи, когато заявката бъде приета, а журналът показва отказа, ако сте включили запис за правилото:
nft list chain inet fw4 forward_wan
logread -f | grep -i -E 'DROP|REJECT'Пазете път за администриране, който още можете да използвате, преди да промените каквато и да е политика на защитната стена, и следвайте процеса за проверка и връщане на собственика на конфигурацията. Промяна, която ви заключва извън рутера, не е резултат от тест, а втори инцидент. Записвайте зоната и ролята на трафика до всяко наблюдение, за да обясни двойката резултати политиката, вместо да описва щастливо зареждане на страница.