Таны туннель өргөгдөж, клиент холбогддог ч тогтмол хаяг болон тэр нэг хэрэглэгчид зориулж тодорхойлсон түлхсэн маршрутууд байхгүй байна. Бүртгэлд “file not found” гэж бичээгүй бөгөөд энэ нь хүмүүсийг сертификатыг дахин үүсгэхэд хүргэдэг. Эдгээр тохиолдлын ихэнхэд демон таны туршиж байсан бүрхүүлээс өөр хавтсаас ажилладаг бөгөөд client-config-dir таны таамагласан шиг хэзээ ч шийдэгдээгүй. Засвар нь замын засвар бөгөөд итгэмжлэлийг дахин тохируулах биш.

Тохиргоонд хүрэхээс өмнө unit-ыг уншина уу

Таны засварласан файлаас биш, бодит ажиллаж байгаа процессоос эхэл. systemd-ээс гүйцэтгэх мөр, ажлын хавтас, түүний буух бүртгэлийг асуу. Тэр гурван хариулт энэ ангиллын ихэнх алдааг тайлбарладаг:

systemctl show openvpn-server@server -p ExecStart -p WorkingDirectory -p User -p RootDirectory

Хоосон WorkingDirectory нь unit /-д эхэлдэг гэсэн үг тул харьцангуй client-config-dir ccd /ccd-с хайгдана. Тэр хавтас бараг байдаггүй бөгөөд демон түүний байхгүйг үхлийн гэж үздэггүй.

Үүнийг туршилтын үеэр ашигласан интерактив эхлүүлэлттэй харьцуул: тэнд таны бүрхүүлийн одоогийн хавтас тохиргооны хавтас байсан байх. Ижил файл, ижил түлхүүр үгс, хоёр өөр үр дүн.

Харьцангуй зам юунд хамаараад шийдэгддэг вэ

Түлхүүр үг нь сонголтыг ашиглаж буй мөчид процессын ажлын хавтсанд хамаараад шийдэгддэг. Энэ нь “би --config-ээр дамжуулсан тохиргооны файлын дэргэд” гэсэн үг биш. OpenVPN тохиргоог үнэмлэхүй замаас баяртайгаар уншиж, харьцангуй утгуудыг өөр газар шийдэх болно, энэ бол яг эндхийн урхи. OpenVPN 2.6 гарын авлага дүрмийг --client-config-dir дор болон дахин --cd дор дурдсан.

cd түлхүүр үг бусад файлыг уншихаас өмнө тэр контекстийг өөрчилдөг тул cd /etc/openvpn/server тохируулаад дараа нь client-config-dir ccd тавьсан unit /etc/openvpn/server/ccd болж шийдэгддэг. Хэрэв cd нэмбэл зааварчилгын дарааллыг шалгаж, энэ нь мөн файлын бусад бүх харьцангуй лавлагаанд нөлөөлдөг гэдгийг сана.

Замыг демоны бүртгэлээр яв

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

namei бүрэлдэхүүн бүрийн эрхийг дарааллаар нь хэвлэдэг нь хавтаснуудыг нэг нэгээр шалгахаас хурдан:

namei -l /etc/openvpn/server/ccd/client1

Дараа нь уншилтыг өөрөөрөө биш, үйлчилгээний бүртгэлээр турш:

runuser -u openvpn -- test -r /etc/openvpn/server/ccd/client1 && echo readable

Хэрэв unit chroot ашигладаг бол хавтас шорон дотор байх ёстой бөгөөд тохиргооны зам нь chroot хэрэглэсний дараа тайлбарлагдана. Шоронгийн гадна хост дээр байгаа файл дотроос харагдахгүй.

Таамаглахын оронд хайлтыг баталгаажуул

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

openvpn --config /etc/openvpn/server.conf --verb 4 --client-config-dir /etc/openvpn/server/ccd

Үүнийг чөлөөт порт дээр урд талд ажиллуулж, нэг клиент холбо. Энэ нь systemd-г зурагнаас бүрмөсөн гаргана: хэрэв дарж бичилтүүд энд гарч, үйлчилгээний доор гарахгүй бол ялгаа нь файлд биш, unit-ийн контекстэд.

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

Зас, дахин эхлүүл, баталгаажуул

Тохиргоонд хавтсыг үнэмлэхүй болгож, тэгэж нь үлдээ. Харьцангуй замууд нь unit ажлын хавтсыг тогтоосон үед л аюулгүй бөгөөд тогтоох нь хожим хэн нэгэн арилгах нэмэлт хөдөлгөөнт хэсэг.

client-config-dir /etc/openvpn/server/ccd
ccd-exclusive

Инстанцыг дахин эхлүүлж, мэдэгдэх нэг клиентийг дахин холбож, түүний авсан хаягийг түүн рүү түлхсэн маршрутуудын хамт унш. Хэрэв хаяг тэр клиентийн файл дахь ifconfig-push мөртэй тохирч байвал хайлт ажилласан. Клиент ерөнхий санд орсоор байвал бүртгэлийн мөрийн тоо руу буц: тэг импорт нь зам эсвэл таних тэмдэг буруу гэсэн үг, буруу агуулгатай нэг импорт нь демоны уншдагаас өөр файлыг засварлаж байгаа гэсэн үг.

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

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