Miksi lähdeporttisääntö rikkoo yhden SSH-poluisäsi
"sport 22" -osumä ei kerro, mihin SSH-sisääntuloon vastaus kuuluu. Rajaa käytäntösääntö hallintavirtaan yhden vain WAN-verkkoa koskevan taulun sijaan.
Kaksi hallintasisääntuloa yhdellä isännällä, yksi palveluportti ja käytäntösääntö, jonka piti auttaa molempia. Sääntö täsmää lähdeporttiin 22, lähettää haun tauluun, joka tuntee vain WAN-oletuksen, ja VPN-sisääntulo lakkaa vastaamasta uusiin kirjautumisiin, kun taas suora sisääntulo jatkaa toimintaansa. Mikään tässä ei ole arvoituksellista, kun valitsin luetaan oikein. Lähdeportti yksilöi palvelun, ei reittiä, jota pitkin yhteys saapui.
Kaksi sisääntuloa, yksi palveluportti
Isännällä on LANin puoleinen osoite ja VPN-osoite, ja sshd kuuntelee molemmilla. Suora istunto ja tunnelistunto jakavat siis palveluportin ja eroavat vain siinä, mikä paikallinen osoite vastaanottaa yhteyden.
Tämä ero riittää vastausreitin valintaan, ja se on täsmälleen se ero, jonka porttiin perustuva sääntö hylkää. Molemmat istunnot tuottavat vastauksia, joiden lähdeportti on 22, joten kyseiseen porttiin täsmäävä sääntö ei voi erottaa niitä. Se lähettää molemmat haut samaan tauluun, ja toinen niistä saa vastauksen, joka ei sovi. Korjaus on täsmätä ominaisuuteen, joka todella eroaa.
Oman portin antaminen kullekin sisääntulolle toimisi myös, ja sen pitäminen vaatimuksena on suunnitteluvalinta, ei SSH:n ominaisuus.
Lue sääntö ja sitten taulu
Käytäntösääntö on järjestetty valitsin, ja ensimmäinen käyttökelpoisen vastauksen palauttava sääntö päättää haun. Lue luettelo järjestyksessä ja huomaa, mikä sääntö voi voittaa.
Lue sitten taulu, johon kyseinen sääntö osoittaa, sillä onnistuneesti ratkeava sääntö ei ole hyödyllisesti ratkeava sääntö. Taulu, jossa on vain oletusreitti, lähettää VPN-lähteisen vastauksen WAN-liittymän kautta ulos. Myöhemmän taulun tarkempaa reittiä ei koskaan tarkastella, ja siksi toisen taulun lisääminen niin usein ei muuta mitään. Valittu taulu on se, mitä pitää tutkia.
ip -4 rule show
ip route show table 100
ip route show table main
Nämä kaksi tulostetta yhdessä selittävät tuloksen; kumpikin yksin houkuttelee väärään johtopäätökseen.
Rajaa sääntö siihen virtaan, jota tarkoitat
Kaksi sisääntuloa erottava ominaisuus on paikallinen lähdeosoite. Tuohon osoitteeseen täsmäävä sääntö lähettää vain tunnelistunnot yksityiseen tauluun ja jättää suorat istunnot päätauluun.
Tämä sääntö on paritettava taulun kanssa, joka sisältää yksityisen reitin ja kyseisen aliverkon paluureitin. Rajaa molemmat hallintaliikenteeseen eikä jokaiseen isännän palveluun. Sääntö, joka nappaa kaiken liikenteen tuosta osoitteesta, ohjaa uudelleen myös kaiken muun, mitä isäntä sieltä lähettää. Kapea voittaa ovelan tässä, koska seuraavan henkilön on luettava se.
sudo ip rule add from 10.90.0.1 lookup 100 priority 100
sudo ip route add 10.90.0.0/24 dev wg0 table 100
ip route get 10.90.5.20 from 10.90.0.1
Jos molemmat sisääntulot käännetään yhdelle paikalliselle osoitteelle, tämä ero katoaa ja suunnittelu tarvitsee sen sijaan yhteydestä tietoista tilaa.
Pidä kuuntelija, käyttöoikeus ja vastauksen valinta erillään
Kolmen erillisen asian on oltava totta ennen kuin istunto toimii: osoite on olemassa, palvelu kuuntelee sitä ja vastaus löytää paluutiensä. Reittimuutos korjaa vain kolmannen.
Kuuntelijan kokoonpano on oma tiedostonsa ja oma uudelleenlatauksensa, ja useat kuunteluosoitteet ovat normaaleja. Todennus on jälleen kolmas päätös, eikä reitityspoikkeus anna kenellekään pääsyä. Pidä isäntäavaimen vahvistus, tilin todennus ja lähderajoitukset molemmissa sisääntuloissa, ja vastusta halua heikentää tunnelin muita kontrolleja, jotta yksi hallintareitti toimisi.
Pidä palautumiskanava, joka ei riipu muuttamastasi reitistä, koska virhe tässä sulkee korjauksen itsensä ulos.
Todista se uudella istunnolla, älä vanhalla
Vakiintunut päätelaite ei todista mitään, koska se hyväksyttiin ennen muutosta. Avaa tuore istunto jokaisen aiottavan sisääntulon kautta.
ss -ltnp | grep ':22'
sudo sshd -T | grep -i listenaddress
ssh -v [email protected] true
sudo journalctl -u ssh -n 30
Toista sitten VPN:n uudelleenyhdistäminen ja yritä uudelleen, sillä uudelleenyhdistämisen kestävä reitti ei ole sama kuin tauluun lisätty reitti, jonka uudelleenyhdistäminen tyhjentää. Tarkkaile hylättyjä lähteitä erillään sallituista, jotta estetty yritys ei piiloudu toimivan istunnon taakse. Tallenna paikallinen osoite, sääntö ja taulu tuloksen viereen. Jos jaat sen sijaan portit, kirjaa se toimintapäätöksenä, ei SSH:n rajoituksena.