Divi VPN klienti, divas publiskās adreses: saskaņojiet SNAT
SNAT pēc avota var izvēlēties publisko adresi, bet tikai tik ilgi, kamēr vārteja vēl spēj atšķirt klientus. Pirms noteikuma rakstīšanas pārbaudiet atlikušo avotu.
Divi VPN klienti var iziet caur divām dažādām publiskajām IPv4 adresēm, un noteikums, kas to dara, ir īsāks, nekā vairums gaida. To darbina nevis iptables sintakse, bet pakešu stāvoklis, kad tā sasniedz izejas ķēdi: avota adresei tur vēl joprojām ir jāatšķir klienti. Ja iepriekšējais masquerade jau ir apvienojis abus vienā adresē, neviens noteikums atsevišķi klientam nevar atjaunot atšķirību. Vispirms atrisiniet šo jautājumu, pēc tam rakstiet tulkojumu.
Kāda identitāte nonāk līdz vārtejai
Noteikums atbilst paketes avota adresei, nevis VPN lietotājvārdam un nevis nosaukumam, ko parāda klienta lietojumprogramma. Viss, kas paki to ceļā pārtulko agrāk, nosaka, ko jūsu noteikums vēl var redzēt. Palaidiet nat tabulu secībā un atrodiet punktu, kur avots vēl ir atsevišķi katram klientam.
iptables -t nat -S POSTROUTING
Lasiet šo sarakstu no augšas. Masquerade noteikums netālu no augšas pārraksta avotu katram atbilstošajam plūsmam, un pēc tā ievietotie ieraksti atsevišķi klientam atbilst adresei, kuras vairs nav. Kad divas LAN ierīces dala vienu tuneli un ierodas kā viena iekšējā adrese, dizainam ir jāmainās pirms ugunsmūra: turiet to avota diapazonus atsevišķi vai piešķiriet katrai savu iekšējo adresi.
Saistiet iekšējās adreses piešķiršanu ar autentificēto klientu. Šīs adreses nodošana citai ierīcei nodod arī izejas politiku, un avota tulkošana pati par sevi nav identitātes pierādījums.
Tulkošana nevar izdomāt adresi
Katrai publiskajai adresei jābūt piešķirtai vai maršrutētai uz šo izejas punktu, un atbildēm jāatrod ceļš atpakaļ. Noteikums, kas sūta satiksmi no adreses, uz kuru neviens nenomaršrutē atpakaļ, tiek atmests tālajā galā vai tiek atbildēts uz resursdatoru, kas to nekad nav prasījis. Mākoņpakalpojumu sniedzēja instancē publiskā adrese parasti tiek pārtulkota uz privāto saskarnes adresi pirms paketes iziešanas, tāpēc SNAT avotam jābūt adresei, ko sniedzējs pieņems, nevis vērtībai, ko rāda konsole. Lasiet sniedzēja adrešu modeli un sekojiet tam, nevis kopējiet publisko vērtību katrā paketē.
Praksē tas nozīmē pārbaudīt maršrutēto prefiksu sniedzēja konsolē pirms ugunsmūra aizskarošanas un izmantot privāto saskarnes adresi kā tulkošanas avotu, ja kartējums ir viens pret vienu. Piemēros izmantotās adreses nāk no dokumentācijas diapazoniem, tāpēc vispirms jāaizstāj pats adreses teksts.
Ievietojiet pirms vispārīgā masquerade
Pirms kaut kā pievienošanas apstipriniet izejas saskarni un pašreizējo ķēdi. Pirmā nosaka, kuras paketes noteikums var atbilst, un otrā parāda, kas jau stāv tā priekšā.
ip -4 route show default
iptables -t nat -L POSTROUTING -n -v --line-numbers
Pirmā komanda nosauc saskarni, pa kuru pakete uz internetu patiešām iziet. Otrā izdrukā ķēdi ar rindu numuriem. Vispārīgais masquerade ieraksts ir rinda, virs kuras jāpaliek.
iptables -t nat -I POSTROUTING 1 -s 10.88.4.20/32 -o ens3 -j SNAT --to-source 198.51.100.77
iptables -t nat -I POSTROUTING 1 -s 10.88.4.21/32 -o ens3 -j SNAT --to-source 198.51.100.78
Divas iepriekš minētās noteikumu kopas atbilst pa vienai iekšējai adresei, ierobežo atbilstību izejas saskarnei un skaidri iestata avotu. Ievietojiet, nevis pievienojiet: 1. pozīcijā tie tiek novērtēti pirms masquerade rindas. Secība starp tiem nav svarīga, jo to avoti atšķiras. Aizstājiet ens3 ar to, ko ziņoja maršruta komanda, un turiet citus ugunsmūra pārvaldniekus prom no tiem pašiem āķiem, jo divi rīki, kas raksta vienu tabulu, ir ierastais iemesls, kāpēc pareizs noteikums nedarbojas.
Pierādiet avotu ar jaunu plūsmu
Stateful NAT saista tulkojumu, kad plūsma sākas, un izmanto to vēlākām paketēm, tāpēc sesija, kas atvērta pirms izmaiņām, pēc izmaiņām saglabā veco avotu. Noteikumu pierāda tikai no jauna uzsākts savienojums.
conntrack -L -s 10.88.4.20 -p tcp --dport 443
Lasiet šī ieraksta atbildes virzienu: tā galamērķis ir adrese, ko tālais gals redz kā avotu. Salīdziniet to ar paredzēto publisko adresi un ierakstu ar veco adresi uzskatiet par pierādījumu plūsmai, kas sākusies pārāk agri, nevis bojātam noteikumam. Lūdziet klientam atvērt jaunu savienojumu, pēc tam atkārtojiet vaicājumu. Visas izsekošanas tabulas iztukšošana, lai piespiestu testu, pārtrauc katru citu sesiju uz vārtejas.
Tulkošana joprojām neizvēlas maršrutu, nelaiž plūsmu caur filtru un nepublicē ienākošo pakalpojumu. Nepareizs maršruts un trūkstošs atļaujas noteikums joprojām neizdodas arī pēc nevainojama SNAT noteikuma. Pārbaudiet arī IPv6 un jebkuru sekundāro izejas ceļu, pēc tam pierakstiet iekšējo-uz-publisko pārus ugunsmūra dokumentācijā, lai nākamās izmaiņas sāktos no kartējuma, nevis no noteikuma teksta.