Эмне үчүн nftables OpenVPN кардарларынын ортосундагы трафикти көрө албайт
Тең тараптардын ортосундагы трафик VPN процессинин ичинде жеткирилет, ошондуктан кайра багыттоо эсептегичтери эч качан кыймылдабайт. Аны эсептөө үчүн өзөк жолу менен процесс жолунун ортосунда тандоо керек.
Бир сервердеги эки кардар файл алмашат, өткөрүү ийгиликтүү аяктайт, ал эми туннелге багытталган ар бир кайра багыттоо эрежеси нөл пакет деп билдирет. Эрежелер бузулган эмес жана чынжыр туура эмес жерде эмес. Тең тараптардын ортосундагы кайра багыттоо күйгүзүлгөндө пакет сервер процессинин ичинде жеткирилет жана хост стеги эч качан маршрутизатор болбойт, ошондуктан өзөк камалына эсептей турган эч нерсе калбайт. Бул бөлүнүүнү түшүнүү кыска жолду кармайсызбы же жолду өзөк аркылуу кайра курасызбы — ошону чечет.
Сервер аркылуу бир пакетти байкаңыз
Маршрутталган туннелде демон ар бир кардардын шифри ачылган пакетин туннел түзмөгүнө берет. Андан ары хост аны маршруттайт, кайра багыттоо илгичи иштейт, ал эми туннел түзмөгүнө туура келген эреже трафикти эсептей же таштай алат. Бул камал мисалдарынын көбү болжолдогон жол.
| Forwarding path | Who decides | What the host firewall sees |
|---|---|---|
| Kernel routing between clients | Host routing table and forward rules | Every inner packet, with interface names |
| Peer forwarding inside the server process | The VPN daemon's own peer table | Only the outer encrypted transport |
Кыска жол хостту ортодон чыгарат. Бир сессиянын шифри ачылган пакети демондун ичинде башка сессияга берилет, ал эми ички пакет эч качан туннел түзмөгүнө чыгарылбайт жана хост аны маршруттабайт. Инкапсуляцияланган трафик дагы эле физикалык интерфейстен өтөт, ошондуктан сырткы жазуу бош эмес көрүнөт, ал эми ички эрежелер үнсүз калат. Туннел түзмөгүндө алынган жазуу такыр эч нерсе көрсөтпөйт, бул ошол жерден өткөрүүнү көрүүнү күткөндөрдү таң калтырат. Бул асимметрия демондун сыртынан кыска жолду таануунун эң ыкчам жолу.
Кайсы жол жүргөнүн чечкен эсептегич сынагы
Колдонулушу керек эрежеге эсептегич тиркеңиз, ошол эреже тосуусу керек болгон эки кардардын ортосунда өткөрүү жүргүзүңүз, анан эсептегичти окуңуз.
sudo nft list ruleset
sudo nft add rule inet filter forward iifname "tun0" oifname "tun0" counter accept
sudo nft list chain inet filter forward
Эгер өткөрүү ийгиликтүү болуп, эсептегич нөлдө калса, өзөк бул пакеттерди эч качан иштеп чыккан эмес, жана эрежелерди канча өзгөртсөңүз да ал өзгөрбөйт. Ошол эле сынакты сервердин өзүндөгү кызматка каршы кайталаңыз, анткени ал агым хост стегинен чындап өтөт жана анын эсептегичи кыймылдайт. Эки жыйынтыкты салыштыруу гана жооп берет.
Эки деталь туура эмес окууну болтурбайт. Чынжыр белгисине жазылган интерфейс аты өзүнөн өзү эч нерсени чыпкалабайт, анткени дал келүү эрежелердин ичиндеги интерфейс талаалары боюнча болот. Ал эми көпүрөлөнгөн 2-катмардуу курулуш башкача жүрөт: ал жерде кардарлар бир трансляция доменин бөлүшөт, ошондуктан тең тараптарды табуу күтүлгөн нерсе, маршруттоо кемчилиги эмес.
Коммутатор — бул кирүү тизмеси эмес
Бул жарым күндү ала турган бөлүк. Тең тараптардын ортосундагы кайра багыттоо — бир күйгүзүү же өчүрүү параметри, ал эми ал күйүп турганда демон жалгыз кайра багыттоо чекити. Хост камалы ким кимге жете аларын билдире албайт, ал эми ар бир кардар үчүн файлдар коммутаторду саясат матрицасына айландырбайт.
Эгер сизге ар бир тең тарап үчүн эрежелер керек болсо, тандоо кыска жолдон баш тартуу менен башкаруу куралы катары хост камалынан баш тартуунун ортосунда. Аны өчүрүү өзөктүн кайра багыттоосун калыбына келтирет, бул серверде IP кайра багыттоону күйгүзүүнү жана керектүү агымдарга айкын эрежелерди талап кылат. Күйүк калтыруу саясаттын демон конфигурациясында жашаарын билдирет, бул иш жүзүндө бардык тең тараптар же эч кимиси.
Өз дарек пулдары жана порттору бар өзүнчө сервер процесстери — бул иштей турган орто жол. Ар бир процесс так бир кирүү чечимин алып жүрөт, ошондуктан эки топ саясат матрицасыз ар башка эрежелерге ээ боло алат. Хост пулдардын ортосунда маршруттай алат, эгер ошондой көздөлсө, жана ошондо камал бул агымдарды көрөт, анткени алар хосттон өтөт. Баасы — кошумча порттор, кошумча сертификаттар жана ар бир топко бир профиль.
Кайра багыттоо чекитин тандоо
Өзөктүн кайра багыттоосун тандаңыз, эгер камал саясат кыймылдаткычы болсо, ар бир агым боюнча журналдоо керек болсо же эсеп маанилүү болсо. Баасы — хост стеги аркылуу өткөрүү жөндөмү жана тейлөөгө көбүрөөк эреже. Пайдасы — эсептегичтерден агым экспорттоочуларга чейин ар бир учурдагы курал трафикти кайра сүрөттөйт. Кичине серверде бул баа көрүнбөйт; жүктөлгөн реледе андай эмес.
Процесстин ичиндеги кайра багыттоону тандаңыз, эгер тең тараптардын ортосундагы трафик толугу менен уруксат берилген же толугу менен тыюу салынган болсо жана сервер ошого өлчөнгөн болсо. Баасы — эсептегичтер, кезек тартиби жана туташууну көзөмөлдөө эми ички агымдарды сүрөттөбөйт; бул кийин эч ким аларга таянбаса гана кабыл алынат.
Кайсынысын тандасаңыз да, аны камал эрежелеринин жанына жазып коюңуз. Тең тараптардын ортосундагы трафикке уруксат бергендей көрүнгөн, бирок демон баары бир өзү чечкен эрежелер жыйнагы ийгиликсиз өткөрүүнү оңдой турган кийинки адамды адаштырат. Эрежелерди гана окуган адам өзөктү дарбаза деп ойлойт.
Эрежелерди өзгөртүүнүн алдында эмнени текшерүү керек
Сервер иш жүзүндө жүктөгөн конфигурацияны окуңуз, өзгөрткөнүңүздү эсиңизде сактаган файлды эмес, жана тең тараптар опциясынын бар-жогун ырастаңыз. Эгер аны өзгөртсөңүз, кызматтын дисктеги файлды жөн гана кайра жазбастан, кайра жүктөлгөнүнө көз жеткириңиз.
Анан эреженин жалпы дал келерин далилдөө үчүн сынакты кардардан серверге карай агым менен кайталаңыз жана жөнөтүлгөн маршруттарды текшериңиз, анткени жок маршрут кардар тарабынан дал камал тосуусу сыяктуу көрүнөт. Эрежелердин тартибин кайсы кайра багыттоо чекити чечимге ээ экенин билгенден кийин гана өзгөртүңүз.