Die diens begin, ’n kliënt assosieer, en geen roete verskyn ooit aan die bedienerkant nie. Of die daemon weier om te begin en noem ’n opdrag wat hy nie kon uitvoer nie. Beide uitkomste volg dieselfde drie reëls, wat gewoonlik saam uit ’n verhardingsgids gekopieer word: skakel oor na ’n onbevoorregte rekening, laat die groep val en verander die lêerstelselwortel. Slegs een van die drie versteek lêers, en slegs een van hulle verwyder die bevoegdheid om die roetetabel te verander. Om hulle te skei is hoe jy leer watter reël jy eintlik wil hê.

Wat die tronk wegneem wat die daemon nog nodig het

Die verandering van die wortel gebeur ná die opstart, dus die daemon hou alles wat hy reeds oopgemaak het en verloor alles wat hy later sou oopmaak. Enige helper wat die verbinding daarna uitvoer, moet binne die nuwe wortel bestaan, saam met die gedeelde biblioteke wat hy laai. ’n Tronk wat uit ’n konfigurasielêer en ’n sertifikaat gebou is, het nie een van die twee nie.

Oorskakeling na ’n onbevoorregte rekening is ’n aparte beperking. ’n Proses wat wortel prysgegee het, kan dalk nie roetes verander of ’n koppelvlak omhoog bring nie, selfs wanneer die binary reg daar is, so die twee foute moet apart gediagnoseer word.

Drie voorwaardes bepaal watter regstelling jy nodig het

Die eerste voorwaarde is hoe jou bou roetes installeer. Onlangse OpenVPN vrystellings konfigureer die koppelvlak en roetetabel in-proses, terwyl ouer pakkette en pasgemaakte opstellings op eksterne gereedskap of op up- en down-skripte staatmaak. Noem die log ’n opdrag, dan is daar eksterne gereedskap betrokke en die tronk versteek dit. Wys die log eerder ’n toestemmingsfout, dan is die rekening die probleem.

Die tweede is instandhouding. ’n Tronk met gekopieerde binaries moet verfris word elke keer wanneer die pakket wat hulle verskaf, opgradeer word, anders laat die eerste opgradering ’n gebreekte tonnel agter. Die derde is of ’n spesifieke beheer werklik ’n chroot vereis; as die vereiste eintlik oor bevoegdheidskeiding gaan, kan die rekening alleen dit bevredig.

Signal in the logOther side of the boundaryRepair direction
Command not found after startupBinary and its libraries absent inside the new rootPopulate the jail, or drop the chroot line
Operation not permittedAccount lost the privilege to edit routesKeep the account privileged, or pre-create routes elsewhere
No such deviceJail lacks the tun device nodeCreate the node inside, or open it before the root change

Wat ’n werkende tronk moet bevat

’n Tronk wat opdragte uitvoer, het die binary nodig, elke biblioteek waarteen dit skakel, en enige toestelknooppunt wat die daemon laat oopmaak. Kopieer die stukke en toets hulle sonder die VPN in die prentjie:

ldd /usr/sbin/ip
chroot /etc/openvpn/jail /sbin/ip route show
chroot /etc/openvpn/jail /sbin/ip link set tun0 up

Die eerste opdrag lys die afhanklikhede, en dit is die een wat mense oorslaan. ’n Gekopieerde binary wat nie ’n biblioteek kan vind nie, misluk met ’n ander boodskap as ’n ontbrekende binary, en albei lyk soos ’n OpenVPN-fout wanneer dit van die kliëntkant gelees word. Om die opdrag met die hand in die tronk uit te voer, reproduseer die fout sonder om die diens te herbegin.

Kopieer ook die konfigurasie, sertifikate en enige CRL in die tronk, want ’n lêer wat die daemon ná die opstart weer wil lees, sal nie gevind word sodra die wortel verander het nie. Teken aan wat jy gekopieer het, want die volgende opgradering van die netwerkpakket vervang die oorspronklikes en laat die tronk op die ou kopie.

Verklein eerder die verharding

As die tronk bestaan omdat ’n gids so gesê het, is die verwydering van daardie een reël terwyl die rekeningbeperkings bly, ’n verdedigbare uitkoms. Die daemon behou sy lêerstelselaansig en verloor die probleem, en die bevoegdheidsverlaging verwyder steeds wortel uit die langdurige proses.

Skryf neer wat oorbly, en waarom. ’n Konfigurasie wat stilweg ’n beheer sonder ’n nota verloor het, is hoe verharding wegdryf, en die volgende oudit sal vra waarom die reël verdwyn het.

Bisekteer die drie reëls voordat jy kies

Kopieer die konfigurasie, deaktiveer al drie die riglyne en bevestig dat ’n kliënt verbind en dat die verwagte roetes verskyn. Aktiveer dan net die rekeningreëls, daarna die chroot alleen. Die stap waar die tonnel breek, wys die grens, en jy vermy die herbou van ’n tronk wat nooit die oorsaak was nie.

Sodra dit weer roeteer, hardloop een kliëntsessie met hoër breedsprakigheid en lees die reël wat die opdrag of die mislukte toestemming noem. Daardie reël is meer werd as die time-out wat die kliënt uiteindelik rapporteer.

Verwante artikels