Nur unu administra kliento: kial via monitoro elĵetas la grafikan interfacon
La administra soketo akceptas unu konekton samtempe. Dua abonanto aŭ malsukcesas aliĝi aŭ ŝtelas la regadon de la komponanto, kiu posedas la invitojn.
Labortabla grafika interfaco tenas la administran konekton, do monitora skripto, kiu provas malfermi sian propran, legas nenion aŭ, pli malbone, la interfaco ĉesas respondi al invitoj. La kutima konkludo estas, ke la demono estas malstabila. En la komunuma demono la limigo estas intenca: la rega interfaco servas unu konektitan administran klienton samtempe, kaj tiu nombro havas nenion komunan kun kiom da uzantoj la VPN povas porti.
Unu soketo, unu posedanto
La administra kanalo akceptas unu konektitan klienton. Kiam dua alvenas dum la unua estas aktiva, ĝi atendas aŭ estas rifuzata, kaj ne ekzistas paralela abonanta reĝimo kaŝita malantaŭ opcio. Malkonekti la nunan posedanton permesas al la demono akcepti la sekvan, kaj tio estas transdono, ne dua kanalo.
Tio igas ĉiun plian ilon konkuranto. Se la interfaco posedas la konekton, enketanta skripto aŭ malsukcesas aliĝi aŭ sukcesas nur post kiam la interfaco rezignis, kaj la sinsekvo ripetiĝas ĉe la sekva rekonekto. Se la skripto aliĝas unue, la interfaco perdas sian regan vojon kaj ĝiaj invitoj ĉesas funkcii. Neniu el la iloj raportas la konflikton, ĉar ĉiu vidas nur sian propran malsukcesintan komandon.
| What you need | Mechanism that fits | What it cannot do |
|---|---|---|
| Periodic list of connected clients | Status file written on an interval | Deliver events as they happen |
| Interactive prompts and session control | The single management connection | Serve two controllers at once |
| Multiple consumers of either | One owner process that fans out | Exist without you writing it |
Decidu, kiu komponanto posedas la regadon
Elektu unu posedanton por la interaga kanalo kaj lasu ĝin esti la sola, kiu konektiĝas. Interfaco, kiu administras la konekton, skripto, kiu respondas al aŭtentigaj invitoj, kaj regilo, kiu finas sesiojn, ĉiuj nombriĝas kiel posedantoj, kaj nur unu povas teni la rolon.
Kiam interfaco posedas la konekton, uzu la integriĝon, kiun ĝi proponas, anstataŭ batali kontraŭ ĝi. Konkuro kun la posedanto pri la soketo produktas intermitajn paneojn, kiuj ŝajnas hazardaj al uzantoj, kaj tiu, kiu sencimigas, kutime vidas nur la duan duonon de la konkuro. Notu, kiu procezo konektiĝas unue post restartigo, ĉar tiu ordo decidas ĉiufoje, kiu venkas. Monitoro, kiu startas antaŭ la interfaco, tenos la kanalon ĝis la interfaco rezignos.
Uzu statajn momentbildojn por la kolektantoj
Plej multaj monitoraj bezonoj volas liston, ne konversacion. Perioda stata dosiero respondas tion sen tuŝi la regan kanalon, kaj ĝi daŭre funkcias dum la interfaco restas konektita.
status /run/openvpn/server.status 10
management /run/openvpn/server.sock unix
La intervalo estas la freŝeca buĝeto, do agordu ĝin laŭ tio, kion la panelo vere bezonas, kaj ne laŭ la plej malgranda valoro, kiu ŝajnas sekura. Momentbildo skribata ĉiujn kelkajn sekundojn estas malmultekosta; skripto, kiu rekonektiĝas al la rega soketo ĉiujn kelkajn sekundojn, ne estas, ĉar ĉiu rekonekto konkurigas la posedanton.
Momentbildo ne estas historio kaj ne estas eventfluo. Konektoj, kiuj alvenas kaj foriras ene de unu intervalo, neniam aperas, do aŭdita postulo ne povas esti plenumita per enketado de dosiero, kiu superskribas sin mem. Se vi devas scii, ĉu uzanto entute konektiĝis, la momentbildo estas la malĝusta instrumento.
Disradiado estas dezajno, ne reĝimo
Se pluraj konsumantoj vere bezonas vivajn administrajn datumojn, metu unu fidindan komponanton antaŭ la soketon kaj lasu ĝin publikigi strikte elektitajn observojn al la ceteraj. Tiu komponanto posedas la rekonekton, la aŭtentigajn invitojn kaj la decidon pri tio, kio estas sekura malkaŝi.
Konstruu ĝin konscie: difinu, kiuj demandoj estas permesataj, registru kiu demandis, kaj evitu, ke la disradia tavolo hazarde fariĝu fora regpanelon. La demono havas neniun plurklientan reĝimon por ŝalti, kaj neniu agorda linio kreas unu. Traktu la posedanton kiel parton de la sekureca limo, ĉar ĝi tenas interfacon, kiu povas malkonekti homojn. Restartigi ĝin devus esti rutina operacio kun dokumentita reakira vojo.
Traktu la soketon kiel privilegion, ne kiel metrikojn
La administra interfaco povas malkonekti uzantojn, ŝanĝi staton kaj legi eventojn, kiuj nomas homojn. Ĝia pasvorto aŭtentigas la klienton kaj ne ĉifras la transporton, do reta aŭskultanto elmetas la konversacion al ĉiu, kiu povas observi ĝin.
Preferu lokan soketon aŭ strikte limigitan aŭskultanton, kaj kontrolu, al kiu procezo via kolektanto efektive sin direktas, ĉar servilaj produktoj liveras proprajn administrajn API-ojn, kiuj kondutas alie. Kolektanto direktita al la malĝusta demono produktas memfidajn kaj malĝustajn konkludojn. Konfirmu la vojon kaj la posedan procezon antaŭ ol sencimigi demandon, kiu redonas nenion.