ifconfig-noexec ei päästa sinu SSH-seanssi: mida see teeb
See surub maha OpenVPN-i enda liidese aadressi seadistamise. See ei reserveeri SSH vastusmarsruuti, ei lülita välja kõiki marsruudi muudatusi ega anna puuduvat aadressi.
Kuskil foorumilõimes pakutakse ifconfig-noexeci lahendusena, mis hoiab SSH-seansi elus, kui tunnel üles tuleb. Põhjendus kõlab usutavalt, kuni kontrollid, mida see valik puudutab. See takistab OpenVPN-il tunneli liidese aadressi seadistada ja annab need väärtused hoopis skriptidele; selle kohta, kuhu lähevad vastused sinu haldusühendusele, ei ütle see midagi. Vastupidise uskumine annab tunneli ilma kasutatava aadressita ja SSH-seansi, mis ikkagi sureb.
Mida see valik tegelikult delegeerib
Vaikimisi tõstab klient tunnelseadme üles ja määrab kohaliku ja kaugaadressi, mille server talle andis. Kui ifconfig-noexec on seatud, jäetakse see samm vahele ja läbiräägitud väärtused eksporditakse skriptikeskkonda, et miski muu saaks neid rakendada.
Omand liigub. Selle asemele ei mõelda midagi välja.
Seega küsimus, millele valik vastab, on see, kes liidest seadistab, ja küsimus, millele see ei vasta, on see, kuidas paketid tee tagasi sinu juurde leiavad. Hoia need lahus, muidu veedad õhtu marsruute redigeerides, et kompenseerida liidest ilma aadressita.
Kolm sarnast valikut erinevate töödega
Seda perekonda on kerge segi ajada, sest nimed erinevad ühe sõna võrra ja sümptomid kattuvad. Loe, mida igaüks maha surub, enne kui ühegi valid.
| Valik | Mis lakkab juhtumast |
|---|---|
ifconfig-noexec | OpenVPN-i enda tunneli aadressi seadistamine; väärtused lähevad hoopis skriptidesse |
route-noexec | Marsruutide automaatne lisamine ja eemaldamine; marsruudi detailid lähevad skripti |
route-nopull | Serveri lükatud marsruudid ja nendega seotud valikud, näiteks DNS, lükatakse tagasi |
Need on eraldi mõistetavad alternatiivid, mitte kokkukleepimiseks mõeldud komplekt. Aadressi seadistamise mahasurumine ei suru maha marsruudi muudatusi, tulemüürireegleid ega lükatud valikuid, mis kannavad DNS-i. Delegeeritud skript võib samuti marsruute muuta, ja see on otsus, mille sa annad üle, selle asemel et seda vältida.
Kui tarnija klient mähkib mootori, kasuta selle toetatud integratsiooni, selle asemel et visata profiili madala taseme direktiiv ja loota, et mähis seda austab. Mähised loovad profiili ühendamisel sageli uuesti, nii et käsitsi tehtud muudatus kaob ilma veata. Kontrolli, kus klient oma seadeid hoiab, enne kui veedad õhtu faili juures. See kehtib tabeli iga rea kohta, mitte ainult selle kohta, mille pärast sa tulid.
SSH-seanss, mida sa kavatsesid kaitsta
SSH-ühendusel on lähteaadress, sihtaadress ja vastusmarsruut. Serveril, mis äsja paigaldas täistunneli vaikeväärtuse, sobib vastus sinu avalikule aadressile tunneliga, ja VPN-lüüs viskab selle ära.
Miski tunneli liidese aadressi seadistuses ei muuda seda.
Seda parandab täpsem marsruut sinu haldusaadressile läbi enne tunnelit oleva lüüsi, või poliitikareegel, mis seda liiklust suunab, pluss need filtriseaded, mida sinu host rakendab. Kaks probleemi ilmuvad mõnikord koos, ja nii peetakse ühte teise ravimiks. Testi neid eraldi: tõsta tunnel ilma valikuta üles, vaata liidese aadressi ja vastusmarsruuti, seejärel otsusta, milline kahest on tegelikult katki.
Mida delegeeritud skript peab üle võtma
Kui sa tõesti tahad, et teine omanik liidest seadistaks, loetle töö: rakenda kohalik ja kaugaadress, tõsta seade üles, taasta või eemalda aadressimine mahavõtmisel, ja tee sama uuesti pärast taasühendust. Ühe õnnestunud seansi väärtusi ei tohi kõvasti kodeerida, sest server võib järgmisel korral anda teistsuguse paari.
Kliendi eksporditud keskkonnamuutujad on selle töö ainus toetatud sisend.
env | grep -E '^ifconfig_|^route_'route-up-skripti sees on need muutujad saadaval; cron-tööst või käsitsi shellist mitte. Kinnita, millist elutsükli konkši sinu versioon kasutab, ja kinnita, et konkš töötab piisava privileegiga liidese muutmiseks, sest klient võib olla juba langenud mitteprivilegeeritud kasutajale.
Testi kogu elutsüklit, mitte ühte seanssi
Tõsta tunnel üles, kontrolli seadme aadressi, seejärel ühendu uuesti ja kontrolli seda jälle. Seadistus, mis töötab korra ja ebaõnnestub teisel katsel, tähendab tavaliselt, et delegeeritud samm jookseb ainult esimesel ühendusel.
Seejärel testi mõlemat vastuvõtukriteeriumi koos: värske SSH-ühendus kavandatud haldustee kaudu töötab, ja lubatud rakendus kasutab tunnelit õigesti.
Vana SSH-seanss, mis juhuslikult püsib, kui tunnelil pole aadressi, ei ole edu, ja see on täpselt see olek, mille see valik tekitab, kui keegi tööd üle ei võta. Kontrolli kõigepealt liidese aadressi, seejärel halduse vastusmarsruuti, seejärel rakendust. Kui kaks kolmest on valed, liigutas valik tööd, andmata sellele omanikku.