Галт хананы дүрмийн өөрчлөлт ажиллахгүй байна: дүрмийн дараалал ба холболтын төлөв
Зассан дүрэм өмнөх зөвшөөрлийн ард үлдэх эсвэл холболтын мөрдөлтөд алгасах боломжтой. Хоёр туршилтыг тусгаарлаж, шинэ урсгал ашиглаж, буцах замыг хадгална уу.
Та дүрмийг зассан, дүрмийн багцыг дахин ачаалсан, гэтэл туннель яг өмнөх шигээ ажиллаж байна. Энэ үр дүнд хоёр нийтлэг шалтгаан байдаг бөгөөд тэд өөр өөр туршилт шаарддаг. Эсвэл шинэ дүрэм пакетыг аль хэдийн хүлээн авсан өмнөх дүрмийн дараа байрлана, эсвэл таны ажиглаж буй солилцоо нь өөрчлөлт хэзээ ч дахин үнэлдэггүй мөрдөгдсөн холболт юм. Файл дахь дүрэм санааг илэрхийлдэг; пакетын хувь заяаг түүний тааралдах идэвхтэй зам шийддэг. Доорх шалгалтуудыг дарааллаар гүйцэтгэж, тэр үед буцах замыг нээлттэй байлгаарай.
Дүрмийн дараалал ба холболтын төлөв нь өөр өөр гэмтэл
Эрэмбэлсэн гинжийг дээрээс доош үнэлдэг бөгөөд эцсийн шийдэлд хүрсэн эхний дүрэм тэр гинжин дэх явцыг дуусгадаг. Болгоомжтой бичсэн түгжээний дүрмийн дээр өргөн зөвшөөрөл тавьбал түгжээний дүрэм зөвхөн баримт болно: тэр нь багцад байгаа, тоолуур нь тэг, ямар ч пакет түүнд хэзээ ч хүрэхгүй. Мөн тэр текстийг өөр гинжид хэрэглэсэн ч юу ч батлахгүй. nftables-д суурь гинжүүд давуу эрхээр дэгээнд холбогддог тул нэг гинжин дэх зөвшөөрөл өөр дэгээ эсвэл давуу эрх дэх өөр гинжийг ижил пакетыг харахаас сэргийлэхгүй.
Холболтын мөрдөлт хоёр дахь шинж тэмдгийг үүсгэдэг бөгөөд гаднаас яг адил харагдана. Урсгал төлвийн хүснэгтэд орсны дараа гинжийн оройд ойрхон established-or-related зөвшөөрөл таны шинэ дүрмийг авч үзэхээс өмнө буцаж ирдэг. NAT буулгалтууд мөн адил шинж чанартай: орчуулга урсгал эхлэхэд тогтоогдсон тул зассан postrouting дүрэм аль хэдийн ажиллаж буй сессийг дахин бичихгүй. Тиймээс өөрчлөлт 09:00-д шинэ холболтод ажиллаж байгаа мэт, 08:55-д хэн нэгний нээсэн сессэд юу ч хийхгүй байгаа мэт харагдана.
Үүлэн аюулгүй байдлын бүлгүүд iptables дээр суралцсан хүмүүсийг барьдаг гурав дахь загварыг нэмдэг. Тэдний орж ирэх дүрмүүд нь эхний тохирлын явц биш, олонлог хэлбэрээр үнэлэгддэг зөвшөөрлийн жагсаалт бөгөөд төлөвтэй ажилладаг, зөвшөөрлийн дүрмийг хасахад аль хэдийн мөрдөгдөж буй урсгалууд зогсохгүй. Ийм семантик байхгүй платформ дээр эхний тохирлын семантикийг таамаглах нь итгэлтэй боловч буруу дүгнэлтэд хүргэдэг.
Идэвхтэй дүрмийн багцыг уншаарай, зассан файлыг биш
Цөм яг одоо хэрэгжүүлж буй зүйлээс эхэл. Хэзээ ч хэрэглэгдээгүй хадгалагдсан тохиргоо гайхалтай олон өөрчлөгдөөгүй зан үйлийг тайлбарладаг бөгөөд үүнийг хасах нь нэг команд зарцуулна:
nft list ruleset
iptables-saveДараа нь дүрэмд тань ерөнхийдөө хүрч байгаа эсэхийг асуу. Пакетын тоолуурууд үүнд шууд хариулдаг бөгөөд санааны тухай ямар ч үндэслэлээс илүү сайн хариулдаг:
iptables -L FORWARD -v -n --line-numbers
nft list chain inet filter forwardБодит туршилтын оролдлогын дараа тэг пакеттай түгжээний дүрэм нь бодлогын асуудал биш, байрлалын асуудал юм. Үүнийг зөөх нь нэг мөрийн өөрчлөлт бөгөөд синтакс нь анхны алдааг үүсгэсэн яг тэр зүйл юм. iptables-д -I эхэнд оруулдаг бол -A төгсгөлд нэмдэг; nftables-д insert дүрмийг гинжийн эхэнд тавьдаг бол add төгсгөлд нэмдэг. Дүрэм заавал ялах ёстой бол санамсаргүй ачаалагдсан дараалалд итгэхийн оронд үүнийг тодорхой хэлээрэй.
Урсгал мөрдөгдөж байгаа эсэхийг батлаарай
Дүрмийг буруутгахаас өмнө трафик ерөнхийдөө мөрдөгдсөн холболт мөн эсэхийг шалга. Төлвийн хүснэгтийг бүхэлд нь асгахын оронд тодорхой урсгалыг асуу:
conntrack -L -p tcp --dport 1194
conntrack -E -p tcp --dport 1194Жагсаалт төлөв болон үлдсэн хугацааг харуулдаг бөгөөд ингэснээр тогтсон сессийг шинэ оролдлогоос ялгана; үйл явдлын горим шинэчлэлтийг болох үед нь хэвлэдэг нь клиентийг дахин холбох үед хэрэгтэй. Хэрэв урсгал та ямар нэг зүйлд хүрэхээс өмнө тогтсон төлөвтэй байгаа бол шүүлтүүрийн дүрмийн ямар ч засвар түүний хувь заяаг өөрчлөхгүй. Энэ нь галт ханан дахь алдаа биш, энэ нь төлөвтэй шүүлтүүрийн гэрээ юм.
Үйлдвэрлэлийн гарц дээр бүх хүснэгтийг цэвэрлэх богино заманд эсэргүүцээрэй. conntrack -F боломжтой бөгөөд энэ нь машины бүх мөрдөгдсөн урсгалыг устгадаг, үүнд таны ажиллаж буй удирдлагын сесс болон таны бүрхүүлийг зөөдөг туннель багтана. Бие даасан бичлэгүүдийг үнэхээр хэрэгтэй үед устгаж болно, гэхдээ шинэ эх портоос шинэ урсгал ихэвчлэн илүү цэвэр туршилт байдаг.
Зарим зам мөрдөгддөггүй бөгөөд тэд эсрэгээр ажилладаг. raw хүснэгтэд notrack гэж тэмдэглэсэн трафик, ердийн дэгээг тойрсон зарим туннель, урсгалыг хоёр гарцын хооронд хуваадаг тэгш бус маршрутлалт бүгд нэг нэгээр үнэлэгдэх пакетууд эсвэл хоёр төгсгөлд хэзээ ч үүсдэггүй төлөв үүсгэдэг. Тоолуурууд пакет бүрт хөдөлж байвал дарааллыг сэжиглэхээс өмнө ийм замыг сэжиглээрэй.
Буцах замтай шинэ урсгалаас туршаарай
Алсын хандалтыг тасалж болох дүрмийг туршихаас өмнө сэргээх зам бүрдүүл: үйлчилгээ үзүүлэгчийн консол, цуваа консол, зурвасаас гадуурх удирдлагын хаяг, эсвэл дүрэм таарахгүй хоёр дахь интерфейс. Буцаах таймер нь зохистой хамтрагч, учир нь туршилтын дунд сесс тань үхсэн ч өмнөх дүрмийн багцыг сэргээнэ.
Дараа нь төлөв аль хэдийн хамарч чадаагүй солилцоогоор турш. Клиентийг салгаж дахин холбож, шинэ тавт үүсгэ, тэр үед хоёр төгсгөлийг ажигла:
tcpdump -ni eth0 'tcp port 1194'
journalctl -k -n 50 --no-pagerТуршилтыг хоёр чиглэлд гүйцэтгэ. Шинэ орж ирэх гар барилтыг блоклодог дүрэм хариу замыг зөвшөөрөх боломжтой, эсвэл эсрэгээрээ, нэг чиглэлийн үр дүн нь түгжээ хагас ажиллахыг ердийн шалтгаан юм. Туршилтын дараа тогтвортой төлвийг батлахын тулд дахин нэг холбогдож, хууль ёсны удирдлагын хандалт хадгалагдсан эсэхийг шалга; нэг портод зориулж бичсэн дүрэм санаатайгаас өргөн хүрээнд тохирох зуршилтай.
Зорилго ба байрлалыг дүрмийн хамт бүртгэ
Бүртгэсэн зорилгогүй дүрэм бол хэн ч устгаж зүрхлэхгүй дүрэм юм. Түгжээний бичлэг бүрийн дэргэд түүний хамгаалж буй урсгал, амьдарч буй гинж ба дэгээ, өргөн зөвшөөрөлтэй харьцуулахад барих ёстой байрлал, мөн үүнийг нотолсон туршилтыг хадгал. Зургаан сарын дараа хэн нэгэн эргэн тойрны дүрмийн багцыг засах үед тэр тэмдэглэл нь байрлал санаатай байсны цорын ганц анхааруулга болно.
Өөрчлөлтийг хаахаас өмнө дөрвөн зүйлийг батал: ажиллаж буй дүрмийн багц файлтай тохирч байгаа, шинэ оролдлогын дараа шинэ дүрэм тэгээс ялгаатай тоолууртай байгаа, эсрэг чиглэл ба удирдлагын хандалт ажиллаж байгаа, мөн та өөрчлөлтөөс өмнөх сессийн төлөв биш, тогтвортой төлөвийг батлахын тулд нэг удаа дахин холбогдсон. Эдгээрийн аль нэг нь шалгагдаагүй бол туннель юу ч хийсэн, өөрчлөлт дуусаагүй.