ifconfig-noexec ei pelasta SSH-istuntoasi: mitä se tekee
Se tukahduttaa OpenVPN:n oman liittymäosoitteen määrityksen. Se ei varaa SSH-vastausreittiä, ei kytke pois kaikkia reittimuutoksia eikä toimita puuttuvaa osoitetta.
Jossakin foorumiketjussa ifconfig-noexec tarjotaan korjauksena, joka pitää SSH-istunnon elossa, kun tunneli nousee. Päättely kuulostaa uskottavalta, kunnes tarkistat, mihin asetus koskee. Se estää OpenVPNää määrittämästä tunneliliittymän osoitetta ja antaa ne arvot sen sijaan skripteille; siitä, mihin vastaukset hallintayhteyteesi menevät, se ei sano mitään. Päinvastaisen uskominen tuottaa tunnelin ilman käyttökelpoista osoitetta ja SSH-istunnon, joka silti kuolee.
Mitä asetus itse asiassa delegoi
Oletuksena asiakas nostaa tunnelilaitteen ja määrittää paikallisen ja etäosoitteen, jonka palvelin antoi sille. Kun ifconfig-noexec on asetettu, tämä vaihe ohitetaan ja neuvotellut arvot viedään skriptiympäristöön, jotta jokin muu voi soveltaa niitä.
Omistajuus siirtyy. Sen tilalle ei keksitä mitään.
Kysymys, johon asetus vastaa, on siis kuka määrittää liittymän, ja kysymys, johon se ei vastaa, on miten paketit löytävät tien takaisin sinulle. Pidä ne erillään, muuten vietät illan reittejä muokaten kompensoidaksesi liittymää ilman osoitetta.
Kolme samankaltaista asetusta eri tehtävillä
Perhettä on helppo sekoittaa, koska nimet eroavat yhdellä sanalla ja oireet menevät päällekkäin. Lue, mitä kukin tukahduttaa, ennen kuin valitset mitään.
| Asetus | Mitä lakkaa tapahtumasta |
|---|---|
ifconfig-noexec | OpenVPN:n oma tunneliosoitteen määritys; arvot menevät sen sijaan skripteille |
route-noexec | Reittien automaattinen lisääminen ja poistaminen; reitin tiedot menevät skriptille |
route-nopull | Palvelimen työntämät reitit ja niihin liittyvät asetukset, kuten DNS, hylätään |
Nämä ovat erikseen ymmärrettäviä vaihtoehtoja, eivät yhteen liitettäväksi tarkoitettu joukko. Osoitemäärityksen tukahduttaminen ei tukahduta reittimuutoksia, palomuurisääntöjä tai työnnettyjä asetuksia, jotka kuljettavat DNS:ää. Delegoitu skripti saa myös muuttaa reittejä, ja se on päätös, jonka annat eteenpäin sen sijaan että välttäisit sen.
Jos toimittajan asiakas käärii moottorin, käytä sen tuettua integraatiota sen sijaan, että pudottaisit matalan tason direktiivin profiiliin ja toivoisit, että kääre kunnioittaa sitä. Kääreet luovat profiilin usein uudelleen yhdistäessä, joten manuaalinen muutos katoaa ilman virhettä. Tarkista, missä asiakas pitää asetuksensa, ennen kuin vietät illan tiedoston ääressä. Tämä koskee taulukon jokaista riviä, ei vain sitä, jonka vuoksi tulit.
SSH-istunto, jonka halusit suojata
SSH-yhteydellä on lähdeosoite, kohdeosoite ja vastausreitti. Palvelimella, joka juuri asensi täystunnelin oletukseksi, vastaus julkiseen osoitteeseesi osuu tunneliin, ja VPN-yhdyskäytävä pudottaa sen.
Mikään tunneliliittymän osoitemäärityksessä ei muuta sitä.
Sitä korjaa täsmällisempi reitti hallintaosoitteellesi tunnelia edeltävän yhdyskäytävän kautta, tai politiikkasääntö, joka ohjaa liikennettä, sekä ne suodatinasetukset, joita isäntäsi soveltaa. Kaksi ongelmaa ilmenevät joskus yhdessä, ja niin yhtä pidetään toisen parannuskeinona. Testaa niitä erikseen: nosta tunneli ilman asetusta, katso liittymän osoitetta ja vastausreittiä, ja päätä sitten kumpi kahdesta on todella rikki.
Mitä delegoidun skriptin on otettava hoitaakseen
Jos todella haluat toisen omistajan määrittävän liittymän, luettele työ: sovella paikallinen ja etäosoite, nosta laite, palauta tai poista osoitteistus purkaessa ja tee sama uudelleen yhteyden palautuksen jälkeen. Yhden onnistuneen istunnon arvoja ei pidä kovakoodata, koska palvelin voi antaa seuraavalla kerralla eri parin.
Asiakkaan vientiin tuomat ympäristömuuttujat ovat ainoa tuettu syöte tälle työlle.
env | grep -E '^ifconfig_|^route_'route-up-skriptin sisällä ne muuttujat ovat saatavilla; cron-työstä tai käsin ajettavasta kuoresta eivät. Varmista, minkä elinkaaren koukun versiosi käyttää, ja varmista, että koukku ajetaan riittävällä oikeudella liittymän muuttamiseksi, koska asiakas on ehkä jo pudonnut ei-etuoikeutettuun käyttäjään.
Testaa koko elinkaari, ei yhtä istuntoa
Nosta tunneli, tarkista osoite laitteella, yhdistä sitten uudelleen ja tarkista se taas. Määritys, joka toimii kerran ja epäonnistuu toisella yrityksellä, tarkoittaa yleensä, että delegoitu vaihe ajetaan vain ensimmäisellä yhteydellä.
Testaa sitten molemmat hyväksymiskriteerit yhdessä: tuore SSH-yhteys aiotun hallintareitin kautta toimii, ja sallittu sovellus käyttää tunnelia oikein.
Vanha SSH-istunto, joka sattuu selviämään kun tunnelilla ei ole osoitetta, ei ole onnistuminen, ja se on täsmälleen se tila, jonka tämä asetus tuottaa, kun kukaan ei ota työtä hoitaakseen. Tarkista ensin liittymän osoite, sitten hallinnan vastausreitti, sitten sovellus. Jos kaksi kolmesta on väärin, asetus siirsi työtä antamatta sille omistajaa.