DD-WRT:n OpenVPN 2.5 -kuuntelija kuollut? Lue sen luoma kokoonpano
OpenVPN 2.5 hylkää kokoonpanoja, jotka vanhemmat versiot hyväksyivät. Lue DD-WRT:ssä luotu tiedosto ja daemonin loki ennen kuin kosket palomuuriin.
Kuollut kuuntelija DD-WRT:ssä tarkoittaa yleensä, että daemon poistui jäsentäessään kokoonpanoaan, ei että palomuurisääntö esti portin. OpenVPN 2.5 kiristi useita oletusarvoja, joiden varaan vanhemmat kokoonpanot nojasivat, ja luotu kokoonpano, joka toimi vanhemmassa versiossa, voidaan hylätä ennen kuin socket edes avautuu. Syy on reitittimen omassa lokissa ja syöte luodussa tiedostossa. Molempien lukeminen tässä järjestyksessä on nopeampaa kuin mikään paketin sieppaus.
Daemon ei ole palomuuri
Ero on tärkeä, koska molemmat viat näyttävät ulkopuolelta samoilta: asiakas lähettää kättelyn eikä saa mitään takaisin. Toinen on prosessi, joka ei käynnissä, ja toinen prosessi, joka on käynnissä ja suodattaa.
Erottele ne kahdella tarkistuksella ennen kuin muutat mitään, koska palomuurin muokkaus kuolleella daemonilla lisää vain toisen muuttujan.
Lue kokoonpano, jonka DD-WRT loi
DD-WRT ei anna OpenVPN:lle tekstiä, jonka kirjoitit verkkokäyttöliittymään. Se kirjoittaa luodun kokoonpanon tiedostoon /tmp/openvpn/openvpn.conf ja käynnistää daemonin sillä tiedostolla, joten käyttöliittymän kentät ja mahdollinen Additional Config -teksti yhdistetään ennen kuin OpenVPN näkee ne. Jos debuggaat lomaketta luodun tiedoston sijaan, luet aikomusta etkä todellista syötettä. Kopioi tiedosto pysyvään paikkaan ennen kuin uudelleenkäynnistys /tmp tyhjentää.
Vertaa luotua tiedostoa siihen, mitä tarkoitit, erityisesti siellä, missä käyttöliittymä kirjoittaa direktiivin, jota et koskaan valinnut. Avattava valikko, joka tuottaa vanhentuneen valinnan, on lomakkeessa näkymätön ja daemonille kohtalokas.
Jos luotu tiedosto on tyhjä tai puuttuu, daemon ei päässyt edes käynnistymään, ja ongelma on OpenVPN:n yläpuolella.
Mitä OpenVPN 2.5 lakkasi hyväksymästä
OpenVPN 2.5 korvasi ncp-ciphers valinnalla data-ciphers, ja nosti oletusarvoisen TLS:n vähimmäisversion versioon 1.2. Se muutti myös pakkauksen käsittelyä niin, että pakkausta tarjoava vastapuoli hylätään, ellei kokoonpano nimenomaisesti salli sitä, ja se merkitsi vanhentuneiksi vanhemmat valintojen nimet kuten ns-cert-type vaihtoehtona remote-cert-tls. Jokainen näistä muutoksista muuttaa aiemmin toimineen kokoonpanon jäsennys- tai neuvotteluvirheeksi.
Vikatila riippuu direktiivistä. Tuntematon tai poistettu valinta pysäyttää daemonin käynnistyksessä, se on kuollut kuuntelijasi. Neuvottelun epäsopu antaa daemonin käydä ja hylkää asiakkaat, mikä asiakkaan puolelta näyttää palomuuriongelmalta.
Lue lokin ensimmäinen virhe, älä viimeistä. Jäsennys pysähtyy ensimmäiseen huonoon direktiiviin, ja kaikki sen jälkeen on sammutuksen kohinaa.
Broadcom-kohtaiset edellytykset
Broadcom-versioissa tunnelilaitteen on oltava olemassa ennen kuin daemon voi käyttää sitä. Tarkista, että tun-moduuli on ladattu ja että /dev/net/tun on olemassa, koska puuttuva laite aiheuttaa käynnistysvian, jolla ei ole mitään tekemistä sertifikaattien kanssa. Sama koskee apuskriptejä, jotka DD-WRT luo reiteille ja DNS:lle: jos ne puuttuvat tai eivät ole suoritettavia, daemon voi käynnistyä eikä silti saa asetuksiaan valmiiksi.
Aja daemon etualalla suuremmalla yksityiskohtaisuudella luotua kokoonpanoa vasten, kun tarvitset oikean viestin. Etuala-ajo tulostaa jäsennysvirheen, jonka init-skripti nieli.
Palauta sitten normaali palvelu, koska etualan daemon ja init-skripti kilpailevat portista.
Todista, että kuuntelija on olemassa, ennen kuin debuggaat asiakkaita
Vahvista prosessi ja socket erikseen: yksi komento käynnissä olevalle daemonille, toinen odotetussa osoitteessa sidotulle UDP-portille. Prosessi ilman socketia tarkoittaa, että se on vielä asetuksissa tai sidottu väärään liitäntään. Pari on hyödyllinen testi juuri siksi, että toinen puoli ei voi olla totta ilman toista.
Asiakaspuolen debuggaus on järkevää vasta, kun kuuntelija on olemassa. Tarkista silloin, että asiakkaan salaus ja TLS-asetukset vastaavat palvelimen data-ciphers-listaa ja vähimmäisversiota, ja että portti todella välitetään reitittimelle.
Säilytä luotu kokoonpano ja lokirivi, joka todisti korjauksen. Seuraava laiteohjelmistopäivitys voi muuttaa oletuksia taas, ja juuri se merkintä tekee toistosta viiden minuutin tarkistuksen.