Дахин ачаалсны дараа VPN серверийн сэргэлтийг шалгах: эхлээд юуг шалгах вэ
Хэн ч нэвтрээгүй байхад дахин ачаалаад, дараа нь гаднаас холбогдоорой. Өөрөө буцаж ирэх ёстой unit, интерфэйс, маршрут, firewall дүрмийг шалгаарай.
Хэн ч нэвтрээгүй байхад серверийг дахин ачаалаад, дараа нь таны хянадаггүй сүлжээнээс холбогдоорой. Энэ нэг шалгалт сэргэлт бодит эсэхийг хариулна, учир нь хэн нэгэн гараар команд ажиллуулсны дараа л ажилладаг туннель бол сэргэлт биш, засвар юм. Ихэнх шалгалт хэт эрт зогсдог: демон идэвхтэй харагдана, интерфэйс босдог, гэвч хуудас ачаалагдахгүй. Зөрүү бараг үргэлж туннелийг тойрсон хэсгүүдийн тогтвортой байдалд байдаг, туннелийн команд өөрт нь биш.
Дөрвөн эзэн, дөрвөн өөр шалгалт
Дахин ачаалахаас өмнө туннелийг юу буцаах ёстойг нэрлээрэй. Таны хийх шалгалт болон хэрэглэх засвар хоёулаа тэр хариултаас хамаарна, мөн дөрвөн нийтлэг эзэн байдаг: VPN демоны systemd unit, WireGuard интерфэйсийн wg-quick instance unit, контейнер runtime эсвэл сүлжээний менежерийн профайл. Хэрэв эзнийг нэрлэж чадахгүй бол зогсоод олоорой, учир нь хүлээгдэж буй эхлэх замгүй дахин ачаалах шалгалт танд ямар нэгэн зүйл болсныг л хэлнэ.
Эзэн бүр тохиргоогоо өөр газар хадгалдаг. systemd-ээр удирдуулсан OpenVPN сервер эхлэх үед тохиргоог уншдаг тул ачаалах үед файлд байгаа зүйл ажиллана. wg-quick интерфэйс хаяг, маршрут, DNS-ээ ижил файлаас авдаг, энэ нь shell-ээс гараар өргөж, хэзээ ч unit болгон идэвхжүүлээгүй интерфэйс буцаж ирэхгүй гэсэн үг. Контейнер өөрийн орох цэгийг буцаадаг боловч хостны firewall өөрчлөлтийг буцаадаггүй, хэрэв тэдгээр нь контейнероос гадуур байхгүй бол.
Эхлээд суурь төлөв, эс бөгөөс үр дүн юу ч гэсэн үггүй
Ажиллаж байх үед ажиллах төлөвийг тэмдэглээрэй: туннелийн хаягууд, клиентийн дэд сүлжээний маршрутууд, NAT эсвэл дамжуулах дүрмүүд, сонсож буй сокет, дамжуулах sysctl. ip addr show wg0, ip route, nft list ruleset эсвэл iptables-save, ss -lunp болон sysctl net.ipv4.ip_forward ихэнх хостод хангалттай.
Үйлчилгээ ажиллаж байгаа эсэхийг төдийгүй, эхлэхэд хэрхэн тохируулагдсаныг тэмдэглээрэй. systemctl is-enabled wg-quick@wg0 болон systemctl is-active wg-quick@wg0 өөр асуултад хариулдаг бөгөөд ачаалах үед идэвхжсэн төлөв нь чухал, systemctl(1)-д тайлбарласны дагуу. OpenVPN-ийн хувьд хост ямар загвар ашигладаг болохыг шалгаарай, учир нь openvpn@server болон openvpn-server@server нь өөр өгөөмөр утгатай өөр unit-ууд юм.
Дахин ачааллыг гүйцэтгэж, эхний алдааг уншаарай
Өөрөө сонгосон цонхондоо санаатайгаар дахин ачаалаарай, нээлттэй консол эсвэл зурвасаас гадуурх замаар. Эцсийн төлөв биш, үйл явдлын дарааллыг ажиглаарай: хост хүртээмжтэй, unit идэвхжсэн, интерфэйс байгаа, маршрутууд суулгагдсан, firewall дүрмүүд байгаа, сонсогч холбогдсон, клиент хүлээн авсан. Болохгүй эхний алхам нь олдвор; дараах бүхэн нь чимээ.
Туннель ашиглах боломжгүй байхад демон идэвхтэй байж болно, энэ нь хамгийн түгээмэл хуурамч дамралт юм. Хэрэв unit зөвхөн network.target-г хүлээж, network-online.target-г биш бол сүлжээ онлайн болохоос өмнө эхлэл дуусаж болно. Сертификат, түлхүүр эсвэл CRL зэрэг дурдсан файлууд тэр мөчид уншигдахгүй байж болно, учир нь mount эсвэл нууцын зам хараахан бэлэн болоогүй. Аль ч асуудал unit-ийн журналыг унтах хүртэл systemctl status-д харагдахгүй.
Хостоос гадуур туршаарай. Ижил LAN дахь клиент алслагдсан ямар ч клиент хэзээ ч хэрэглэхгүй маршрутаар амжилттай болж болно, машинд хийсэн SSH сесс туннелийн талаар юу ч батлахгүй. Холбогдоод, дотоод нэрийг шийдээд, хувийн нөөцөд хүрээд, дараа нь цуцлалтын төлөв болон түлхүүрүүд хүчинтэй хэвээр байгааг батлахын тулд дахин нэг удаа холбогдоорой.
Таны засварыг тодорхойлох гурван нөхцөл
Хэрэв туннель буцаж ирсэн ч клиентүүд юунд ч хүрч чадахгүй бол алдаа нь маршрутжуулалт эсвэл NAT-ын тогтвортой байдалд байна. Хэрэв клиентүүд гар барилтыг ч дуусгаж чадахгүй бол алдаа нь интерфэйс эсвэл баталгаажуулалтын материалд байна. Хэрэв үйлчилгээ хэзээ ч эхлэхгүй бол алдаа нь unit файл эсвэл түүний хамаарлуудад байна. Эдгээр гурван салбар өөр өөр засварт хүргэдэг тул суурь төлөвгүй сохор дахин ачаалалт хэмнэснээс илүү цаг зарцуулдаг.
Засварыг тохиргооны эзэн байгаа газарт хий. Дамжуулалтыг sysctl drop-in-д, NAT дүрмийг ачаалах үед ачаалагдах дүрмийн багцад хий, unit-ийг эхлүүлэхийн оронд идэвхжүүл, нууцыг unit эхлэхээс өмнө байгаа замд хадгал. Unit-д унталт нэмэх нь хамаарлыг зарлахын оронд нуудаг.
Үр дүнг runbook-д тэмдэглэ
Юу өөрөө буцаж ирсэн, юуг эхлүүлэх шаардлагатай болсон, зөрүү хэр удаан үргэлжилснийг бич. Шалгахад ашигласан яг командуудыг оруул, дараагийн хүн шинийг зохиохын оронд шалгалтыг давтаг. Хэрэв аль нэг алхамд гараар команд шаардлагатай байсан бол тэр команд нь тохиргоонд хамаарна, runbook-д байнгын алхам болохгүй.
Дараа нь дараагийн шалгалтыг хостны сүлжээний стек дэх дараагийн өөрчлөлтийн дараа товло, зургаан сарын дараах хуанлийн өдөр биш. Таны сэргийлж буй алдааны горим нь байнгын мэт санагдсан түр команд бөгөөд тэдгээр нь хэн нэгэн firewall дүрэм засварлах эсвэл үйлчилгээг шинэ unit руу зөөх үед яг тэр үед гарч ирдэг.