Тек 25-портты туннельге жіберіңіз, хостты емес
Порт бойынша таңдалған ереже тек шығыс SMTP-ні туннель арқылы жібереді. Кесте, бастау мекенжайы және қайтару жолы сәйкесуі керек, әйтпесе ештеңе жұмыс істемейді.
Linux хост өзінің ғана SMTP-ін туннель арқылы жіберуі үшін төрт нәрсе сәйкесуі керек: жеке кестедегі маршрут, трафикті таңдайтын саясат ережесі, peer қабылдайтын бастау мекенжайы және асимметрияға шыдайтын қайтару жолы. Әрқайсысы өз істен шығу режимі бар жеке конфигурация. Төмендегі рет істен шығуды шынымен қате бөлікке көрсететін рет. Бұл портқа тән маршруттау жұмысы, VPN әдепкі маршрутын сұрау емес.
Порт ережесі әдепкі маршрут емес
Жергілікті жасалған TCP-ны мақсат порт 25-пен сәйкестендіретін ереже бұл трафикті сіз атайтын кестеге жібереді. Ереже өзі ешнәрсе жасамайды: ол таңдайды, ал кестеде пакетті тасымалдай алатын маршрут болуы керек. Екеуін біріктіру тек бір протоколдың шығыс бағытын қамтиды, сондықтан басқа хосттарға қайта жіберу, кіріс пошта қосылымдары және IPv6 бұл құрылымнан тыс қалады. Оны VPN әдепкісі емес, портқа тән саясат деп атау бұл шекараны адал ұстайды.
wg-quick-тің екі параметрі алғышарт, саясаттың бөлігі емес. AllowedIPs = 0.0.0.0/0 peer-ке кез келген IPv4 мақсаттарын тасымалдауға мүмкіндік береді, ал Table = off wg-quick-тің сол префикс үшін өз әдепкі маршрутын орнатуына жол бермейді. Бұл нұсқауларды өз маршрут саясатын қолданатын менеджермен араластырмаңыз, өйткені екеуі негізгі кесте кімге тиесілі екені туралы келісе алмайды.
Маршрутты, селекторды және күзетшіні жазыңыз
Басқа ешнәрсе пайдаланбайтын кесте нөмірі мен жұп басымдықты таңдаңыз, содан кейін маршрутты, селекторды және күзетшіні осы ретпен қолданыңыз. Төмендегі сандар мысалдар, резервтелген мәндер емес:
ip -4 route add default dev wg0 src 10.77.0.2 table 51825
ip -4 rule add priority 10000 iif lo ipproto tcp dport 25 lookup 51825
ip -4 rule add priority 10001 iif lo ipproto tcp dport 25 unreachableiif lo ережені жергілікті шыққан трафикке шектейді, ал ipproto tcp dport 25 қосылымның бағытын анықтайды; ip-rule анықтамасы екі селекторды да сипаттайды. Олар қазіргі ядроларда және iproute2 шығарылымдарында бар, ал ескі жүйеде ереже толығымен қабылданбайды, бұл жүктеліп, ешнәрсемен сәйкеспейтін ережеден гөрі айқын сәтсіздік.
Келесі басымдықтағы unreachable ережесі — күзетші. Онсыз 51825 кестесіндегі жоқ маршрут қарапайым әдепкіге түседі, ал туннель үзілген кезде пошта физикалық арна арқылы шығып кетеді, бұл дәл саясаттың алдын алу үшін құрылған жағдай.
Бастау мекенжайы сәйкесуі керек
Маршруттың src артықшылығы бастауды өз бастауын байламаған қосылымдар үшін ғана толтырады. Бұл трансляция емес және айқын байлауды жоймайды, сондықтан физикалық мекенжайға байланған демон сол мекенжайдан жіберуді жалғастырады. Егер дәл осыны көрсеңіз, демонның өз параметрін өзгертіңіз немесе әдейі трансляция саясатын жасаңыз, өйткені кеш жасалған жаппай masquerade — басқа салдарлары бар басқа шешім.
Шлюзде клиенттің peer-і нақты алатын бастауды рұқсат етуі керек, яғни кең мақсат префиксі емес, 10.77.0.2/32. Клиенттің 0.0.0.0/0 мәнін әр шлюз peer-іне көшіру қай peer қандай трафикке ие екенін шатастырады. Шлюзге қайта жіберу, ағынды рұқсат ететін firewall саясаты және қайтару жолы қажет, соның ішінде жоғарғы жақ жеке туннель мекенжайын маршруттай алмаған кезде шығыс трансляциясы.
Қайтару жолын, содан кейін тұрақтылықты тексеріңіз
Бірдеңеге сенбес бұрын іздеулерді оқыңыз, өйткені олар әр бағыттың қай кестені және қай бастауды алатынын көрсетеді. 25 порттағы бір мақсат және 443 порттағы сол мақсат жеткілікті:
ip -4 route get 198.51.100.25 ipproto tcp dport 25
ip -4 route get 198.51.100.25 ipproto tcp dport 443Бірінші іздеу wg0 мен көзделген бастауды атауы керек, ал екіншісі қарапайым жоғарғы арнаны сақтауы керек. Қолданба өз мекенжайын байлағанда, іздеуге сол мекенжаймен from қосыңыз. wg0-ге жетіп, содан кейін жергілікті түрде тасталатын жауап бағыты IPv4 кері жол сүзгісіне меңзейді, өйткені тек шығыс портқа арналған ереже кері іздеуді туннельді таңдауға мәжбүрлемейді.
Асимметриялық маршруттауға рұқсат етілген жерде net.ipv4.conf.wg0.rp_filter=2 арқылы интерфейспен шектелген бос режим орынды болуы мүмкін, және алдымен all мен интерфейс мәндерінің тиімді максимумын тексеру керек. Валидацияны қысқа жол ретінде жаһандық өшірмеңіз. Содан кейін кестені, басымдықтарды және күзетшіні конфигурация иесіне тапсырыңыз, және қайта қосылғаннан кейін жаңа қосылымдар ашып, таңдау әлі де сақталатынын растаңыз. Жергілікті SMTP тыңдаушысының жауаптары мақсат порт 25 емес, бастау порт 25 таситынын есте сақтаңыз, бұл бөлек саясат мәселесі.