OpenVPN-ийн удирдлагын пакетыг мөрдөх: TLS-ээс өмнөх tls-auth
tls-auth-ийн HMAC нь удирдлагын бүрхүүл дээр байрладаг, TLS гар барилтын дотор биш. Түлхүүр, чиглэл, digest-ийг тааруулж, хамгаалалтыг арилгахгүйгээр шалгаарай.
tls-auth-ийн алдааг ихэвчлэн гар барилтын асуудал гэж мэдээлдэг боловч хэзээ ч тийм байгаагүй. HMAC-ийг ямар ч TLS боловсруулалт эхлэхээс өмнө удирдлагын пакет дээр шалгадаг тул тохирохгүй түлхүүр эсвэл чиглэл нь гэрчилгээний асуудал мэт харагдах бөгөөд хоёр давхаргаар эрт шийдэгдэх алдаа үүсгэдэг. Бүрхүүлийг тусдаа объект гэж үзвэл оношлогоо богино болно: талбаруудыг уншиж, шалгалт эрт ажиллаж байгааг баталгаажуулж, дараа нь хоёр тал зөвшилцөх ёстой гурван зүйлийг харьцуулна.
Бүрхүүлийг бүтээгдэх дарааллаар нь уншина
Удирдлагын пакет нь сессийн танихуур, сонголтоор tls-auth HMAC, давталт ба баталгаажуулалтын мэдээлэл, найдвартай мессежийн танихуурыг агуулж, дараа нь мессежийн төрлийн ачаалал ирнэ. Мессеж нь гар барилтын мессеж бол ачаалал нь TLS шифрлэсэн текст байна. Бүх холбоо ийм л байна: TLS материал бүрхүүл аль хэдийн хамгаалж буй мессежийн дотор явна. Үзнэ үү OpenVPN сүлжээний протоколын лавлагаа удирдлагын сувгийн талбаруудыг энэ дарааллаар жагсаасан.
Найдвартай байдлын давхаргыг криптографтай андуурахад хялбар. Баталгаажуулалт, дахин илгээлт, мессежийн танихуур нь удирдлагын мессежүүд найдваргүй тээврийн дээгүүр нэг удаа, дарааллаар хүрэхийн тулд байдаг. Тэдгээр нь нэвтрүүлэлт биш бөгөөд зөв мессежийн танихуур пакетыг хэн илгээсэн тухай юу ч батлахгүй.
Энэ бүлэглэлийг үзэл баримтлалын түвшинд барина уу. Энэ нь байтын дарааллын диаграм биш бөгөөд шошго тооцоолоход хангалтгүй, учир нь HMAC-д ордог талбарууд хэрэгжүүлэлт, хувилбар, горимоос хамаардаг.
Шалгалт гар барилтаас өмнө ажилладаг гэдгийг харуулна уу
Хамтарсан түлхүүртэй хүлээн авагч HMAC-ийг шалгаж, хуурамч пакетыг шууд хаяж чадна, гар барилтын төлөв хуваарилах эсвэл нийтийн түлхүүрийн ажил хийхгүйгээр. Хамгаалалт нь эхний гар барилтын пакетуудыг ч хамардаг тул буруу түлхүүр нь оройтсон нэвтрүүлэлтийн алдаа биш, холболтын бүтэлгүйтэл хэлбэрээр илэрдэг.
Демоны дэлгэрэнгүй байдлыг нэмэгдүүлж, tun төхөөрөмжийн оронд удирдлагын сувгийг ажиглаарай:
openvpn --config /etc/openvpn/server.conf --verb 6
Таны хайж байгаа зүйл бол удирдлагын сувгийн HMAC шалгалтын алдаа бөгөөд пакетын түвшинд, ямар ч TLS анхааруулгаас өмнө мэдээлэгддэг. Бүртгэлд TLS анхааруулга байгаа нь бүрхүүл хүлээн авсан бөгөөд алдаа доошоо шилжсэн гэсэн үг бөгөөд энэ нь өөр шийдэлтэй өөр мөрдөн шалгалт юм.
Чиглэлийн зохицуулалт ч энд байна. Статик түлхүүрийн файлыг tls-auth-тай хамт ашиглах үед хоёр тал эсрэг түлхүүрийн чиглэл авч, протокол энэ хуваагдлыг ашиглан баригдсан пакетыг илгээгч рүү нь буцааж ойлгуулах боломжгүй болгодог. Чиглэлийг эсрэг эргүүлэх нь түлхүүрийг ижил байлгаж, гэсэн хэдий ч пакет бүр бүтэлгүйтдэг. Нэг удаад нэг талыг өөрчилж, дараа нь хосыг хамт ачаалуулахын тулд хоёр демоныг дахин эхлүүлнэ үү.
Хоёр талд түлхүүр, чиглэл, digest-ийг тааруулна уу
Гурван утга тохирох ёстой бөгөөд тэдгээрийн зөвхөн нэг нь файл юм. Статик түлхүүрийн агуулга хоёр талд ижил байх ёстой, чиглэл эсрэг байх ёстой, HMAC-д ашиглах digest тохирох ёстой. Түлхүүрийн материалд хүрэхээс өмнө тохиргоог шалгаарай, учир нь нэг эсрэг чиглэл нь гэмтсэн файлаас илүү олон алдааг тайлбарладаг:
grep -E 'tls-auth|tls-crypt|key-direction|auth ' /etc/openvpn/server.conf
Хамтарсан нууцыг редактороор биш, хэрэгслээр үүсгэж, зөвшөөрлийг чанга барина уу:
openvpn --genkey secret /etc/openvpn/ta.key
chmod 600 /etc/openvpn/ta.key
Хуучин хувилбарууд түлхүүр үүсгэхэд арай өөр сонголтын дарааллыг хүлээж авдаг байсан бөгөөд тэдгээр хувилбарт зориулсан профайлууд одоо ч эргэлдэж байна. Үүсгэсэн файл хоёр тохиолдолд ижил төрлийн объект тул шалгалт нь хоёр тал ижил байттай эсэх, тэдгээрийг аль бичиглэл үүсгэсэн биш.
tls-auth-ийг tls-crypt-тай андуурах хэрэггүй. Хоёулаа удирдлагын сувгийг хамгаалдаг ч tls-crypt үүнийг нэмж шифрлэж, гар барилтыг ажиглагчдаас нуудаг, мөн чиглэлийн хуваалтыг өөрийн түлхүүрийн зохицуулалтаар сольдог. Нэгийг ашигласан профайл нөгөөд зориулж тохируулсан түнштэй ажиллахгүй бөгөөд digest-ийн ямар ч тохируулга энэ зөрүүг нөхөхгүй.
Шошгыг зөвхөн бодит форматаас дахин үүсгээрэй
Байтад тууштай хуулбарлах нь VPN ажиллуулахаас тусдаа ажил бөгөөд зөвхөн бодит оролттой ажилладаг: пакетыг бүтээсэн хэрэгжүүлэлт ба хувилбар, сонгосон digest, чиглэл, мөн сессийн танихуур, баталгаажуулалтын массив орсон бодит байтууд. Талбарын жагсаалтын текстэн дүрслэл нь тэдгээр байт биш.
Шошгын урт digest-ээс гардаг тул тогтмол урт гэсэн таамаг хэн нэгэн үүнийг өөрчилсөн агшинд эвдэрдэг. Пакетыг хэрэгжүүлэлтийн хийдэг шиг хэшлээрэй, блог нийтлэлийн хүснэгт танилцуулдаг шиг биш, мөн гараар гаргасан хүлээлттэй биш, ижил түншээс авсан бичлэгтэй харьцуулна уу.
Энэ дасгалыг үйлдвэрлэлийн профайлаас хол байлгаарай. Шошгыг дахин үүсгэхэд байршуулалт хамгаалалтыг асаах ёстой эсэхийг юу ч хэлэхгүй.
Хамгаалалтыг арилгахгүйгээр зөрүүг буцаана уу
Уруу татсан шалгалт нь tls-auth-ийг устгаж, холболт амжилттай болсныг хараад түлхүүр буруу байсан гэж дүгнэх явдал юм. Тэр хариулт хамгаалалтыг чинь үнэтэй болгож, гурван утгын аль нь тохироогүй тухай юу ч заахгүй. Оронд нь серверийн талаас батлагдсан тохирох тохиргоог авч, түүнтэй харьцуулна уу.
Өөрчлөлтийг буцаах боломжтой байдлаар бэлтгээрэй. Өмнөх серверийн тохиргоо болон түлхүүрийн файлыг хадгалж, зассан хосыг хэрэглэж, клиент гар барилтыг дуусгаж байгааг шалгаж, дараа нь л нөөц хуулбарыг устгана уу. Хэрэв өөрчлөлтийн дараа клиентүүд бүтэлгүйтвэл тасалдлын үеэр гурав дахь хувилбарыг зохиохын оронд өмнөх файлуудыг сэргээнэ үү. Сэргээх нь эхлэхээс өмнө таны мэддэг нэг команд байх ёстой.
Эцэст нь, давсан шалгалт юу гэсэн үг болохыг санаарай. Энэ нь түнш хамтарсан түлхүүртэй гэдгийг баталдаг, түүний гэрчилгээ эсвэл бүртгэл зөвшөөрөгдсөн гэдгийг биш, мөн энэ нь тохиролцсон өгөгдлийн сувгийн шифрийн тухай юу ч хэлэхгүй. Зөвшөөрөл ба өгөгдлийн хамгаалалт дараа нь тогтоогддог тул цэвэр бүрхүүлийн шалгалт бол эхлэх цэг, шийтгэл биш.