chroot-тан бас тарту керек пе, әлде iproute2-ні түрмеге көшіру керек пе?
Толық емес түрме жүктеу кезінде емес, іске қосылғаннан кейін сәтсіз аяқталады. Қатайтуды босаңсыту мен екілік файлдарды және кітапханаларды жаңа түбірге көшірудің арасында таңдаңыз.
Қызмет іске қосылады, клиент қосылады, бірақ сервер жағында маршрут ешқашан пайда болмайды. Немесе демон іске қосылудан бас тартып, орындай алмаған команданы атайды. Екі нәтиже де әдетте қатайту нұсқаулығынан бірге көшірілетін бірдей үш жолға сүйенеді: артықшылығы жоқ тіркелгіге ауысу, топтан бас тарту және файл жүйесінің түбірін өзгерту. Үшеуінің тек біреуі ғана файлдарды жасырады және тек біреуі маршруттау кестесін өзгерту құқығын алып тастайды. Оларды бөлу - қай жол керектігін білудің жолы.
Түрме алып тастайтын, бірақ демонға әлі қажет нәрселер
Түбірді өзгерту іске қосылғаннан кейін орын алады, сондықтан демон бұрын ашқанның бәрін сақтайды және кейін ашатынның бәрін жоғалтады. Қосылым осы сәттен кейін іске қосатын кез келген көмекші жаңа түбірдің ішінде, жүктейтін ортақ кітапханалармен бірге болуы керек. Конфигурация файлы мен сертификаттан құрылған түрмеде екеуі де жоқ.
Артықшылығы жоқ тіркелгіге ауысу - бөлек шектеу. Түбірден бас тартқан процесс екілік файл дәл сол жерде болса да маршруттарды өзгерте алмауы немесе интерфейсті көтере алмауы мүмкін, сондықтан екі ақауды бөлек диагностикалау керек.
Қандай түзету керек екенін үш шарт шешеді
Бірінші шарт - құрастыруыңыз маршруттарды қалай орнататыны. Жаңа OpenVPN нұсқалары интерфейс пен маршруттау кестесін процесс ішінде конфигурациялайды, ал ескі пакеттер мен жеке параметрлер сыртқы құралдарға немесе up және down скрипттеріне сүйенеді. Журнал команданы атаса, істе сыртқы құрал бар және түрме оны жасырады. Журнал оның орнына рұқсат қатесін көрсетсе, мәселе тіркелгіде.
Екіншісі - техникалық қызмет. Көшірілген екілік файлдары бар түрмені оларды беретін пакет әр жаңарғанда жаңарту керек, әйтпесе бірінші жаңарту артында сынған туннель қалдырады. Үшіншісі - белгілі бір бақылау шынымен chroot талап ете ме; егер талап шын мәнінде артықшылықтарды бөлу туралы болса, тіркелгіні өзгертудің өзі жеткілікті болуы мүмкін.
| Signal in the log | Other side of the boundary | Repair direction |
|---|---|---|
| Command not found after startup | Binary and its libraries absent inside the new root | Populate the jail, or drop the chroot line |
| Operation not permitted | Account lost the privilege to edit routes | Keep the account privileged, or pre-create routes elsewhere |
| No such device | Jail lacks the tun device node | Create the node inside, or open it before the root change |
Жұмыс істейтін түрмеде қандай болуы керек
Командаларды орындайтын түрмеге екілік файл, ол байланысатын әрбір кітапхана және демон кеш ашатын әрбір құрылғы түйіні қажет. Бөлшектерді көшіріп, оларды VPN жоқ күйде сынап көріңіз:
ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up
Бірінші команда тәуелділіктерді тізімдейді және адамдар дәл соны өткізіп жібереді. Кітапхана таба алмаған көшірілген екілік файл жоқ екілік файлдан басқа хабарламамен сәтсіз аяқталады және екеуі де клиент жағынан оқығанда OpenVPN ақауы сияқты көрінеді. Команданы түрме ішінде қолмен орындау қызметті қайта іске қоспай-ақ ақауды қайталайды.
Конфигурацияны, сертификаттарды және болса CRL-ді де түрмеге көшіріңіз, себебі демон іске қосылғаннан кейін қайта оқуды күтетін файл түбір өзгергеннен кейін табылмайды. Нені көшіргеніңізді жазып қойыңыз, өйткені желілік пакеттің келесі жаңартуы түпнұсқаларды алмастырады және түрмені ескі көшірмеде қалдырады.
Оның орнына қатайтуды азайтыңыз
Егер түрме тек нұсқаулық солай дегендіктен болса, сол бір жолды алып тастап, тіркелгі шектеулерін сақтау қорғауға болатын нәтиже. Демон файл жүйесіне көзқарасын сақтайды және мәселеден құтылады, ал артықшылықтың төмендеуі ұзақ өмір сүретін процестен түбірді әлі де алып тастайды.
Не қалғанын және неге екенін жазыңыз. Бақылауды ескертусіз үнсіз жоғалтқан конфигурация - қатайтудың осылайша ауытқитыны, ал келесі аудит жолдың неге жоғалғанын сұрайды.
Таңдамас бұрын үш жолды бөліңіз
Конфигурацияны көшіріңіз, үш директиваны да өшіріңіз және клиент қосылатынын және күтілетін маршруттар пайда болатынын растаңыз. Содан кейін тек тіркелгі жолдарын, одан кейін тек chroot-ты қайта қосыңыз. Туннель сынатын қадам шекараны көрсетеді, және ешқашан себеп болмаған түрмені қайта салудан аулақ боласыз.
Ол қайтадан маршруттағанда, жоғарырақ егжей-тегжейлік деңгейімен бір клиент сессиясын іске қосыңыз және команданы немесе сәтсіз болған рұқсатты атайтын жолды оқыңыз. Сол жол клиент соңында хабарлайтын тайм-ауттан құндырақ.