ACK пакет дээрх conntrack NEW: юуг нотлохгүй вэ
NEW гэж тэмдэглэсэн ACK нь tracker-т тохирох төлөв байгаагүй гэсэн үг, VPN сесс нээсэн гэсэн үг биш. hook, tuple болон бичлэгийн цонхыг уншина уу.
Галт ханын бүртгэлд таны хүлээгээгүй нэг мөр байна: ACK пакет, conntrack төлөв NEW, таных биш эх хаяг, очих порт нээлттэй. Үүнийг хэн ч зөвшөөрөөгүй шинэ ирж буй холболт гэж унших уруу татагдана. Мөр бодитоор хэлж буй зүйл илүү нарийн: тэр пакет энэ hook-д хүрэх үед tracker-т тохирох төлөв байгаагүй, пакет нь ACK агуулж байсан. Эдгээр нь хоёр өөр зүйлийн тухай хоёр баримт бөгөөд аль нь ч гар барилтын бүрэн бичлэг биш. Дүгнэлт хийхээс өмнө би туулах дараалал энэ.
Шийтгэлээс биш, пакетаас эхэл
Тайлбарлахаас өмнө ажиглалтуудыг салга. TCP флагууд энэ пакетыг дүрсэлнэ, tracker-ийн төлөв тэр hook дээр юу мэдэж байсныг дүрсэлнэ, харин таны бичлэг зөвхөн бичсэн цонхыг дүрсэлнэ.
Энэ гурвыг хольсон нь ACK-ыг «үйлчилгээ үзүүлэгч хэн нэгнийг оруулсан» болгох зам.
hook дээр NEW нь үнэхээр юу гэсэн үг вэ
iptables-ийн conntrack тохирол NEW-ийг холболт эхлүүлж буй пакет, эсвэл хоёр чиглэлд трафик хараахан хараагүй холболттой холбоотой пакет гэж баримтжуулдаг. ESTABLISHED нь tracker хоёр чиглэлд пакет харсан гэсэн үг. Аль ч тодорхойлолт пакет SYN байсан гэж ч, түүхгүй ирсэн гэж ч хэлэхгүй.
Урсгалыг дундаас нь ажиглаж эхэлсэн tracker дараагийн пакетыг мэддэг зүйлээрээ ангилна, энэ нь юу ч байж болно. Энэ нь tracker-ийн санах ойн тухай мэдэгдэл, алслагдсан хост-ийн санаа зорилгын тухай биш.
Сул мөрдөлт нь ихэнх ACK гэнэтийн зүйлийг тайлбарладаг
Цөм нь баримтжуулдаг nf_conntrack_tcp_loose, энэ нь tracker-т эхлэлийг нь хараагүй TCP холболтуудыг авах боломж олгоно. Тохиргоог анхдагч утгад нь үлдээвэл урсгалын дундаас ирсэн ACK-ыг тогтсон урсгал гэж хүлээн зөвшөөрч болно. Үүнийг унтраавал мөнөөх пакет NEW-ийн оронд INVALID гэж ангилагдах магадлал өндөр. Хоёр үр дүн tracker-ийн дүрмийг дүрсэлнэ, програмын түүхийг биш.
Тиймээс шошгон дээр онол барихаасаа өмнө тэр тохиргоог шалга.
Уйтгартай шалтгаануудыг энэ дарааллаар хасаж үз
Миний мөрдсөн NEW-on-ACK үйл явдлуудын ихэнх нь эдгээрийн аль нэгээр дууссан бөгөөд бүгдийг шалгах нь хямд:
- conntrack хүснэгтийг цэвэрлэсэн, эсвэл tracker дахин эхэлсэн.
- Хост дахин ачаалсан, эсвэл урсгал өөр namespace эсвэл төхөөрөмж рүү шилжсэн.
- Асимметрик чиглүүлэлт SYN-ыг таны бичихгүй байгаа зам руу гаргасан.
- NAT tuple-ыг дахин бичсэн, тиймээс бичлэг таны уншсанаасаа цаашид тохирохгүй.
- Бичлэг оройтож эхэлсэн бөгөөд эхлэлийг хэзээ ч хараагүй.
Эдгээр тус бүр өмнөх пакетуудыг tracker-ийн харах талбараас зайлуулж, дараагийнхыг хөндөгдөхгүй үлдээдэг. Дахин ачаалах эсвэл хүснэгт цэвэрлэхийг uptime болон логоос баталгаажуулах нь хамгийн хялбар. Асимметрик чиглүүлэлт нэг чиглэлийн бичлэг хэлбэрээр илэрнэ. NAT бол зальтай нь, учир нь tracker-ийн хадгалсан tuple нь логт хэвлэгдсэн tuple биш.
Цааш явахаасаа өмнө алийг нь хассан, хэрхэн хассан гэдгээ бичиж үлдээ.
tuple, интерфейс болон hook-ыг унш
conntrack бичлэг нь хаяг, порт, протоколоор түлхүүрлэгддэг тул аливаа орчуулга аль бичлэг тохирохыг өөрчилнэ. Интерфейс болон hook-ыг ч бичиж үлдээ, учир нь буруу интерфейс дээр эсвэл өөр гинжийн дараа харсан пакет зам нь диаграмм дээрх шиг биш гэдгийг хэлнэ. Үйл явдал VPN-тэй холбоотой бол, доторх пакетыг эсвэл гадаад тээвэрлэгчийг харж байгаагаа шийд. Дараа нь гарц нь мөнөөх таван хэсэгт tuple-д бүртгэсэнтэй харьцуул.
Нэг урсгалын хоёр зөрчилдөж буй харагдац аль ч дангаараа илүү мэдээлэл өгнө.
Хэзээ эскалац хийх нь зүйтэй вэ
Хүрч болох боловч хүрч болохгүй үйлчилгээг урсгал, түүнийг зөвшөөрсөн бодлого болон хоёр талын нотолгоотойгоор харуулж чадвал эскалац хий. Нэг төлөвийн шошго эсвэл нэг хэсэгчилсэн бичлэгт үндэслэн үйлчилгээ үзүүлэгчийн алдаа гэж мэдэгдэхээс зайлсхий, учир нь тэр мэдэгдэл яг одоо уншсан тайлбараар хаагдана. Хэрэв үйлчилгээ үнэхээр нээлттэй бол тэр хилийн эзэн түүнийг засах зөв хүн бөгөөд алдаанаас илүү шилжүүлсэн портын зураглал эсвэл санамсаргүй сонсогч илүү магадлалтай шалтгаан.
Дараа нь нэг пакетыг бүхэл сесс мэт харагдуулсан харагдах байдлын цоорхойг хаа.