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'Задржите административну путању коју још можете да користите пре него што промените било коју политику заштитног зида, и следите процес провере и враћања власника конфигурације. Промена која вас закључава изван рутера није резултат теста, то је други инцидент. Запишите зону и улогу саобраћаја поред сваког посматрања, како би пар резултата објаснио политику уместо да описује срећно учитавање странице.