Зона 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'Захавайце шлях адміністравання, якім вы яшчэ можаце карыстацца, перш чым змяняць любую палітыку фаервола, і прытрымлівайцеся працэсу праверкі і адкату ўладальніка канфігурацыі. Змена, якая замыкае вас знешне ад роўтара, — гэта не вынік тэсту, а другі інцыдэнт. Запісвайце зону і роль трафіку побач з кожным назіраннем, каб пара вынікаў тлумачыла палітыку, а не апісвала ўдачлівую загрузку старонкі.