Аюулын унтраалга зөвхөн IPv4-г блоколдог: яагаад IPv6 одоо ч гарч байна
IPv4-д зориулсан галт хэрэмний дүрмийн багц IPv6-ийн талаар юу ч хэлэхгүй. Давхар стект төхөөрөмж дээр апп тойрон ажиллах зам хадгалсаар байтал туннель унаж болно.
Туннель унаж, аюулын унтраалга ажилласнаа мэдээлж, татаж авалт үргэлжилсээр байна. IPv4-ийн дүрмүүдэд юу ч эвдэрээгүй. Апп зүгээр л тэдгээр дүрэм хэзээ ч бичигдээгүй зам руу шилжсэн.
Давхар стект төхөөрөмжүүд гарах хоёр бие даасан замтай. Аль нэгийг нь блоклох нь хагас блоклолт юм.
Хоёр дүрмийн багц, хоёр анхдагч
Linux дээр iptables ба ip6tables нь тусдаа бодлоготой тусдаа хүснэгтүүд юм. IPv4 хүснэгтийн INPUT ба OUTPUT гинжүүдийг DROP болгох нь IPv6 хүснэгтэд юу ч өөрчлөхгүй, тэнд анхдагч нь ихэвчлэн ACCEPT байдаг. Ижил хуваагдал nftables-д байдаг бөгөөд нэг гэр бүлийг шалгаад зөвхөн нэг нь таны дүрмийг агуулж байгааг олж болно. Энэ тэгш бус байдал хэвийн бөгөөд бүх асуудал үүнд л байна.
Тиймээс аюулын унтраалга нягт санагдаж, хэсэгчлэн ажиллаж болно. IPv4-ийн дүрмийг бичсэн скрипт ажилласан, тоолуурууд өсөж, лог мөр гарч, IPv6 пакет физик интерфэйсээр бүрэн хөндөгдөөгүй гарч байна.
Клиент тань бодитоор юу суулгаж байгааг уншиж, маркетингийн хуудас юу амлаж байгааг биш. Зарим клиент IPv6-г туннель руу чиглүүлдэг, зарим нь зориуд блоклодог, зарим нь платформын түвшний түгжээ өөр дүрэм хэрэгжүүлж байтал түүнийг хэвээр үлдээдэг. Энд итгэх цорын ганц эх сурвалж нь үйлдвэрлэгчийн баримт бичиг юм.
Интерфэйсийн тохиргоо танд юу хэлдэг вэ
wg-quick-ийн гарын авлагын хуудас өөрийн жишээ тохиргоондоо IPv6 дүрмийг оруулсан бөгөөд шалтгаан нь яг энэ цоорхой юм. Жишээ нь чимэглэл биш. Зөвхөн IPv4 дүрэм хоёр дахь гэр бүлийг нээлттэй үлдээх учраас тэр байдаг.
Жишээний хагасыг хуулах нь бодлогын хагасыг гаргана. Энэ нь энэ алдагдлын хамгийн түгээмэл гарал үүсэл юм. Нэг блогийн нийтлэл жишээг уртын учир богиносгосон. Дараа нь богиносгосон хувилбар бүгдийн дахин ашигласан загвар болсон.
# what is actually installed, per family?
sudo iptables -S OUTPUT | head -20
sudo ip6tables -S OUTPUT | head -20
# nftables: inspect each family separately
sudo nft list ruleset inet | head -40
# does this host even have a usable IPv6 path?
ip -6 route show default
Хэрэв хоёр дахь команд зөвшөөрсөн бодлогыг хэвлэж, эхнийх нь DROP хэвлэвэл клиентэд хүрэлгүйгээр хариултыг олсон. Энэ тэгш бус байдал нь алдаа.
Яагаад нэг хайлт бүх түүх болохгүй вэ
Нэг нэр A бичлэг болон AAAA бичлэгийг хоёуланг нь буцааж болох бөгөөд аппууд бүгд ижил сонгодоггүй. Сүлжээ IPv6 санал болгоход хөтөч үүнийг илүүд үзэж, бүтэлгүйтвэл буцаж болох бөгөөд арын синк эсвэл шинэчлэгч нь өөрийн шийдэгч, өөрийн сонголтыг ашигладаг. Тиймээс IPv4 дээрх нэг амжилттай туршилт нь нэг замыг баталж, бодлогыг биш.
Сүлжээний шилжилтүүд мөн хариултыг өөрчилдөг. Өөр Wi-Fi сүлжээнд нэгдэх, унтаанаас сэрэх эсвэл мобайл руу шилжих нь төхөөрөмжид шинэ IPv6 префикс өгч болох бөгөөд оффисын LAN дээр хангалттай харагдаж байсан бодлого үүнийг хамарч чадахгүй байж болно.
Туннель унтарсан үеийн төлөвийг туршина уу
Холбогдсон үед турших нь туннель ажиллаж байгааг хэлнэ. Сонирхолтой туршилт бол хүртээмжгүй төлөв, яагаад гэвэл яг тэр үед аюулын унтраалга тэсвэрлэх ёстой. Туннелийг зориуд зогсоож, дараа нь таны хамгаалж буй аппаас чухал чиглэлүүдийг туршиж үзээрэй.
# with the tunnel stopped, does anything still leave?
ip -6 route get 2606:4700:4700::1111
curl -6 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv6.example.net/
curl -4 -sS -o /dev/null -w '%{http_code}\n' --max-time 5 https://ipv4.example.net/
Хоёр гэр бүл хоёулаа хаалттайгаар бүтэлгүйтэх ёстой. Хэрэв IPv4 хүсэлт хугацаа хэтэрч, IPv6 хүсэлт төлөвийн код буцаавал бодлого бүрэн бус бөгөөд туннелийг хэчнээн дахин туршсан ч өөрчлөгдөхгүй.
Тухайн туршилтад баримтжуулсан үл хамаарах зүйлсийг ч хадгал. Орон нутгийн сүлжээг илрүүлэх, DHCP сэргээх эсвэл VPN-ийн төгсгөлийн цэг хүртэлх ачааллын зам нь хүртээмжтэй хэвээр байх шаардлагатай байж болох бөгөөд тэдгээр үл хамаарах зүйлсийг тасалдалын үеэр илрүүлэхийн оронд бодлогод нэрлэх ёстой. Туннель буцаж гарч чадахгүйгээс бүтэлгүйтэх алдагдлын туршилт нь аюулгүй байдлын илрэл биш, харин холболтын илрэл юм.