LAN кызматын VPN шлюзунун өз дарегинде жарыялоо
Багытталган портту кардардан түзмөккө чейин жана кайра көзөмөлдөңүз: багыттоо котормосунун чегин аныктап, анан жооптор маршрутталабы же которулабы экенин чечиңиз.
LAN түзмөгүн шлюздин өз туннель даректеринин биринде көрсөтүү үчүн NATтын бир сабы жетиштүү. Бирок байланыш ишке ашпайт, анткени жооп берген түзмөк кардардын дареги ошол шлюз аркылуу жеткиликтүү экенин билбейт. Пакетти кардардан ичке карай көзөмөлдөңүз, анан жоопту сыртка кайра көзөмөлдөңүз, ошондо жетишпеген жарымы айкын болот.
Кардардын көз карашынан баштаңыз
Бул мисалдагы кардар VPN пулунда, 10.62.0.0/24 ичинде жайгашкан жана 8080 портунда 10.62.0.1ге туташат. Ал дарек шлюздин өзүнө таандык, ошондуктан пакет башка өнөктөшкө эмес, шлюздин өзөгүнө жетет. Шлюздин артында LAN 172.21.4.0/24. Шлюзде 172.21.4.10 бар, ал эми HTTP кызматын иш жүзүндө көрсөткөн түзмөк 172.21.4.40.
Башка VPN өнөктөшүнө таандык даректи шлюздин кызмат дареги менен алмаштырууга болбойт. Эгер кардар өнөктөштүн дарегине туташып жатса, шлюздун эч бир эрежеси таптакыр катышпайт, жана бул бүт баян туура эмес учур.
Багыттоо котормосунун чегин атайылап чектеңиз
Тар версия бир портту көрсөтөт жана багыттоону гана кайра жазат. Пакет өз протоколун жана булагын сактайт, жана ушул баяндын калган бөлүгүн кызыктуу кылат.
iptables -t nat -A PREROUTING -i tun0 -s 10.62.0.0/24 -d 10.62.0.1 -p tcp --dport 8080 -j DNAT --to-destination 172.21.4.40:80
Протокол жана порт критерийи жок эреже кең версия: кардар тандаган каалаган портту сактайт жана даректи гана өзгөртөт. Бүт хостту көрсөтүү көздөлсө бул мыйзамдуу, ал эми бир кызмат көздөлсө туура эмес. Эрежени кайра окуп, интерфейстин атын ырастаңыз. Туура эмес интерфейстеги DNAT эрежеси эч нерсеге дал келбейт, бул жок эреже менен бирдей убакыт чегин жаратат жана түзмөктү карап бир саатты текке кетирет.
Багыттоо чеги макулдашсын
Котормо аталышты өзгөртөт, укук бербейт. Демейки четке кагуу саясатында багытталган агымга өз укугу керек, ал эми кайтуу багытына сиздин саясатында мурунтан бар болушу ыктымал орнотулган байланыш эрежеси керек.
iptables -A FORWARD -i tun0 -o lan0 -d 172.21.4.40 -p tcp --dport 80 -m conntrack --ctstate NEW -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
Ар бир DNAT агымы үчүн шартсыз укук бул долбоордон кеңири жана кийинчерээк башка бирөө кошкон карталарга да жол берет. Багыттоону жана портту атаңыз, калганын жабык калтырыңыз. Эгер багыттоо эрежесинин эсептегичтери нөлдө турса, ал эми NAT эсептегичтери өссө, пакет сиздин эрежеңизге чейин ыргытылат. Экинчи көчүрмө кошуунун ордуна тизмектин тартибин окуңуз.
Түзмөк кандайдыр бир жол менен жооп бериши керек
Котормодон кийин түзмөк 10.62.0.0/24 ичинен булак көрөт. Анын жообу демейки шлюзине кетет, ал LAN маршрутизатору, VPN шлюзу эмес, эгер бирөө ага башкача айтпаса. Эки жайгашуу муну оңдойт жана алар барабар эмес. Түзмөктөгү же LAN маршрутизаторундагы маршрут 10.62.0.0/24тү 172.21.4.10га жиберет жана кардардын булагын сактайт. Чектелген булак котормосу болсо кардарды шлюздин LAN дарегинин артына жашырат.
ip route add 10.62.0.0/24 via 172.21.4.10 dev eth1
iptables -t nat -A POSTROUTING -s 10.62.0.0/24 -d 172.21.4.40 -o lan0 -p tcp --dport 80 -j SNAT --to-source 172.21.4.10
Кызматка эмне керек экенине жараша тандаңыз. Ар бир кардар үчүн саясат жана маанилүү журналдар маршрутталган форманы каалайт; маршрут берүүгө болбой турган түзмөк же сөзсүз LAN дарегин көрүшү керек кызмат которулган форманы көрсөтөт. Бир жоопту иштетүү үчүн глобалдык masquerade эрежесине кайрылбаңыз. Ал ар бир кардарды ар бир багыттоодон жашырат жана булак даректерине көз каранды саясаттарды үнсүз бузат.
Шлюздин өзүнөн сынабаңыз
Шлюзде 10.62.0.1ге карай түзүлгөн сурам кирүүчү PREROUTING аркылуу эмес, OUTPUT тизмеги аркылуу чыгат. Анын ийгиликсиздиги же ийгилиги кардарга караган эреже жөнүндө эч нерсе айтпайт, жана адамдар ушундай жол менен иштеп жаткан эрежени бузулган деп жыйынтыкташат.
conntrack -L | grep 172.21.4.40
tcpdump -ni any 'port 8080 or port 80'
Чыныгы кардар сурамын иштетип, экөөнү тең окуңуз. conntrack жазуусу колдонулган котормону көрсөтөт, ал эми кармоолор сурам LANга өткөнүн жана туннелге карай жооп кайтканын көрсөтөт. Эрежелерди өзгөрткөндөн кийин жаңы байланыш колдонуңуз, анткени учурдагы абал мурунку картасын сактайт жана эски ыкма менен ийгиликсиз боло берет. Анан бүт сүйлөшүүнү ырастаңыз: түзмөктүн дареги, багыттоо укугу жана жооптун маршруту баары бир агымды сүрөттөйт.