PiVPN серверийн конфигурац болон клиентийн профайл бичээд, дараа нь гардаг; энэ нь хэзээ ч таны траффикийг зөөдөг процесс болдоггүй. Тиймээс бүтэлгүй гар барилт, буруу төгсгөлийн цэг рүү залгах клиент, эсвэл дахин ачаалсны дараа буруу буцаж ирэх үйлчилгээг суулгагчийн цэснээс тайлбарлах боломжгүй. Эдгээр шинж тэмдэг нь одоо ажиллаж байгаа OpenVPN демон, тэр демоны үнэхээр ачаалсан конфигурац, түүн рүү чиглүүлсэн логт хамаарна. Дөрвөн зөвхөн-унших команд үүнийг ихэвчлэн шийддэг бөгөөд тэдгээрийн аль нь ч таны сертификат эсвэл түлхүүрийг өөрчлөхгүй.

Туслах ба демон нь өөр өөр объект

Төөрөгдлийг тайлбарлахад амархан: нэг хавтаст туслахын үүсгэсэн файл, демоны уншдаг файл, заримдаа хоёулангийн хуучин хуулбар байдаг. Туслах нь бэлтгэлийн скрипт юм. Энэ нь багцуудыг суулгаж, нэгжийн файлуудыг бичиж, клиентийн профайлыг хэвлээд, дараа нь ажил нь дуусдаг. Үлдэх нь үйлчилгээний менежер дахь бичлэг ба нэг командын мөр юм.

systemd хост дээр хавтасны жагсаалтаас биш, идэвхтэй нэгжээс эхэл. Нэр нь багцлалаас хамаарна: Debian болон Raspberry Pi OS-ийн дүрсүүд ихэвчлэн загварын инстанц санал болгодог, жишээ нь openvpn-server@server, харин хуучин суулгацууд openvpn@server ашигладаг. Файлын нэрээс таамаглахын оронд менежерээс аль нь ажиллаж байгааг асуу.

systemctl list-units --type=service --all | grep -i openvpn
systemctl cat openvpn-server@server

Унш ExecStart= тэр гаралтаас. Энэ нь гүйцэтгэх файл болон менежерийн үнэхээр эхлүүлдэг сонголтуудыг, түүний дотор аливаа --config замыг нэрлэнэ; хажууд байгаа бөгөөд ямар ч команд дурдаагүй конфигурацын файл ажиллаж байгаа туннелийн хэсэг биш.

Демоны шийдсэн конфигурацын хэлхээг дага

OpenVPN тохиргоо хайж хавтасыг скан хийдэггүй. Энэ нь --config -оор дамжуулсан файлыг уншиж, доторх аливаа config зааврыг дагаж, дараа нь командын мөрийн сонголтуудыг хэрэглэдэг. Гарын авлага 2.6 тэр дарааллыг тайлбарладаг бөгөөд хоёр файл порт, төхөөрөмж эсвэл шифрлэлтийн талаар санал нийлэхгүй үед энэ чухал.

Эхлээд бодит дуудлагыг хэвлэ, дараа нь таних тэмдэг ба хүртээмжийг тодорхойлдог заавруудыг хар. Хоёр команд хоёулаа зөвхөн-унших бөгөөд амьд серверт аюулгүй, гэхдээ хоёр дахь нь нийтийн тасалбарт хүсэхгүй замуудыг хэвлэдэг.

systemctl show -p ExecStart --value openvpn-server@server
grep -E '^(config|dev|proto|port|local|log|log-append|status|ca|cert|key|tls-auth|tls-crypt)' /etc/openvpn/server/server.conf

Гэрийн хавтас дахь .ovpn файл нь клиентийн артефакт. Серверийн демон үүнийг хэзээ ч уншдаггүй, тиймээс сервер талын гар барилтын доголдлыг засахын тулд тэр файлыг засах нь юу ч өгөхгүй.

Оруулгууд нь нөгөө урхи. Нэг config мөр хоёр дахь файлыг татаж, түүний сонголтууд тэр цэг дээр боловсруулагддаг тул дараагийн нэг утгат заавар нь үндсэн файл хэлж байгаа мэт зүйлийг дарж болно. Харагдах файл зөв мэт боловч демон өөрөөр ажиллаж байвал ямар нэг зүйлийг өөрчлөхөөс өмнө оруулсан файлыг унш.

Логыг санаж байгаа алдаатай биш, процесст тааруул

Хоёр логын очих газар түгээмэл бөгөөд тэдгээрийн зөвхөн нэг нь journal юм. log-append тохируулсан үед демон тэр файлд бичих ба journal эхлэх мөрүүдээс бусад цөөнийг хадгална. Үүнгүйгээр journalctl үйл явдлын эх сурвалж болно.

journalctl -u openvpn-server@server -n 80 --no-pager

Нэг холболтын оролдлогыг нэг цаг хугацааны цонхтой холбо. Клиентийн төгсгөлийн цэгийг тэмдэглээд, дараа нь мөнөөх секундүүдийн серверийн үйл явдлыг унш. Сертификатын солилцоонд хэзээ ч хүрдэггүй TLS гар барилт нь хүртээмж эсвэл протоколын зөрүүг заадаг бол баталгаажуулалтын татгалзал нь туннелийн параметрүүд аль хэдийн тохирсны дараа ирдэг.

Хуучин логын бичлэг таван минутын өмнө татсан профайлын талаар юу ч батлахгүй. Клиентийн файлыг дахин үүсгэж, нэг удаа холбогдож, тэр оролдлогын үеэр гарсан мөрүүдийг л унш.

Сүүлийн ерөнхий алдааны оронд эхний тодорхой бүтэлгүйтлийг бич. Холболтын алдаа, хариугүй гадаад солилцоо, сертификатын татгалзал, бүртгэлийн татгалзал тус бүр өөр давхарга руу илгээдэг бөгөөд төгсгөлийн таймаут нь дээрх ашигтай үйл явдлыг ихэвчлэн нуудаг.

Туннелийг дахин барих нь оношилгооны алхам биш

Уруу татах богино зам нь хоёр дахь, илүү энгийн туннель босгох: статик түлхүүр, сертификатгүй, нэмэлт баталгаажуулалтгүй. Энэ нь ихэвчлэн холбогдож, хоёр хост хоорондоо UDP эсвэл TCP дамжуулж чадна гэдгийг л батална. Сертификатаар баталгаажсан байршуулалт яагаад бүтэлгүйтдэг тухай юу ч хэлэхгүй бөгөөд хадгалахыг шаардсан аюулгүй байдлын загварыг чимээгүй сольдог.

Мөн адил tls-auth эсвэл tls-crypt унтраах, verify-x509-name сулруулах, эсвэл ногоон төлөвт хүрэхийн тулд хоёр дахь хүчин зүйлийг орхихыг хэлнэ. Шалгалтыг хасны улмаас холбогдож байгаа туннель нь өөр систем, зассан систем биш.

Логын нэрлэсэн давхаргад нэг хязгаарлагдмал өөрчлөлт хийж, ижил нэгжийг дахин эхлүүлж, тэр ганц холболтын оролдлогыг давт. Энэ нь харьцуулалтыг шударга байлгаж, буцаах боломжтой өөрчлөлтийг үлдээдэг.

Дараагийн хүнд юу дамжуулах вэ

Дөрвөн баримтыг одоо ч гар дээр байгаа үед бич: OpenVPN хувилбар openvpn --version гаралтаас, идэвхтэй нэгж, оруулгуудтай конфигурацын хэлхээ, нэг оролдлогыг хамарсан логын цонх. Тэр дөрөв нь бүрхэг гомдлыг давтагдах боломжтой хэрэг болгоно.

Хуваалцахаас өмнө мэдээллийг хаа. Хувийн түлхүүрүүд, auth-user-pass файлууд, статик түлхүүрийн материал болон бүрэн клиентийн багцууд тасалбарт байх ёсгүй; сонголтын нэрс болон хэлхээний хэлбэр нь хоёр дахь хос нүдэнд ихэвчлэн хангалттай.

Хэрэв хэлхээ бүрэн бүтэн бөгөөд лог нь сүлжээ рүү чиглэсэн хэвээр байвал, дараагийн алхам нь клиент ба серверийн хоорондох зам, өөр суулгалт биш. Энэ бол туслах хэзээ ч эзэмшээгүй түүхийн тэр хэсэг юм.

Холбоотой нийтлэлүүд