Skootrekenaars agter ’n tuisroeteer sonder poortdoorstuur aanvaar steeds SSH-verbindings wat oor die VPN aankom. Dit is nie ’n teenstrydigheid nie, want twee verskillende toestelle beoordeel twee verskillende pakkette. Die roeteerder stuur die geënkripteerde vervoer deur, en die gasheer besluit wat om te doen met die ontsyferde pakket wat by sy tonnelkoppelvlak uitkom. Om daardie twee besluite uitmekaar te hou, is die hele oefening.

Die roeteerder stuur die tonnel deur, die gasheer beoordeel die pakket

Teken die pad van die afgeleë bron na die diens voordat jy na ’n enkele reël kyk. Die buitenste trajek is die VPN-vervoer, wat deur die roeteerder en die gateway hanteer word. Die binneste trajek begin sodra die eindpunt die tonnellaag afstroop en die gasheer ’n pakket ontvang wat aan sy VPN-adres geadresseer is.

Voeg daardie twee trajekte saam en die roeteerder kry krediet vir ’n besluit wat die gasheer neem. ’n Poortdoorstuur-bladsy of ’n roeteerder-log beskryf slegs buitenste gesprekke, en nie een sê watter ontsyferde verkeer die gasheer sal aanvaar nie. Die gasheer pas sy eie inkomende beleid toe op die binneste pakket, net soos op enige pakket wat op ’n koppelvlak aankom. Daardie beleid is waar die blootstellingsvraag werklik besleg word.

’n Jokerteken-luisteraar is nie ’n openbare diens nie

Op Linux beteken binding aan INADDR_ANY elke plaaslike adres, so ’n diens kan antwoord op ’n tonnelkoppelvlak wat dit nooit genoem het nie. Die IP-sokkelverwysing beskryf daardie binding, en dit is die moeite werd om te lees voordat jy gevolgtrekkings uit ’n luisteraarlys maak. ’n Jokerteken-inskrywing is ’n feit oor die sokkel, nie ’n stelling oor bereikbaarheid nie.

Die twee reëls hieronder is dieselfde diens in twee verskillende bindings, en die verskil is die hele antwoord op die vraag of die koppelvlak saak maak. Lees op watter adres die sokkel sit voordat jy enigiets anders doen.

ss -lntp "sport = :22"
LISTEN 0 4096 0.0.0.0:22 0.0.0.0:* users:(("sshd",pid=812,fd=3))
LISTEN 0 4096 10.8.0.6:22 0.0.0.0:* users:(("sshd",pid=812,fd=4))

Noem die reëling wat die poort sou kon bereik

Drie reëlings plaas ’n pakket op daardie koppelvlak, en hulle het verskillende eienaars. Om die regte een te noem, besluit wie ’n beleid moet verander.

ArrangementWhat reaches the portWhere the decision lives
Another permitted VPN peerA packet from the same tunnel subnetGateway forwarding policy and host input rules
A deliberate public forwardTraffic the gateway publishes on purposeGateway service definition
A subnet routed behind the gatewayClient traffic from the far sideGateway route and host input rules

’n Blaaierresultaat wat ’n openbare uitgangsadres wys, sê niks oor enige van die drie nie, want dit beskryf hoe uitgaande verkeer vertrek eerder as wat inkomende verkeer mag inkom. Werk eerder terug vanaf die luisteraar en die bronadres in die dienslog. As die bron ’n ander tonnelportuur is, is die gateway-beleid die interessante dokument. As dit ’n vertaalde adres is, vind die vertaling voordat jy ’n reël verander.

Beperk die diens tot die pad wat jy bedoel het

As SSH slegs vanaf ’n bestuurspad nodig is, skryf daardie pad neer as ’n bronreeks plus ’n koppelvlak. Beperk dan die gasheer se inkomende reëls volgens koppelvlak, bestemming en bron eerder as volgens netwerknaam, want ’n naam wat privaat lyk, kan enige adres verteenwoordig. Hou ’n roete in vir die persoon wat die volgende probleem sal oplos.

nft add rule inet filter input iifname "tun0" ip saddr 10.8.0.0/24 tcp dport 22 accept
nft list chain inet filter input

’n Reël wat die tonnelkoppelvlak en die bestuurdreeks noem, stel die bedoeling op een plek. Vergelyk dit met ’n reël wat vir die Wi-Fi-netwerk geskryf is, wat niks oor ontsyferde tonnelverkeer sê nie. Wanneer die twee lae verskil, is die gasheerbeleid die een wat die pakket teëkom.

Los aanmeldings en pleisterwerk presies waar dit is; om ’n poort te bereik was nooit dieselfde as om dit te mag gebruik nie. Teken die adresfamilie en tyd vir enige onbekende bron aan, en ondersoek voordat jy ’n kenmerk of ’n kwesbaarheid die skuld gee. ’n Reël wat elke tonnelportuur toelaat, is ’n ander ontwerp as een wat ’n bestuursubnet toelaat, en geen logreël sal sê watter bedoel is nie.

Aanvaar die regstelling met een sukses en een weiering

Bewys beide helftes: een goedgekeurde verbinding slaag en een uitgeslote pad word geweier. Die weiering is die helfte wat mense oorslaan, en dit is die een wat wys die reël doen werk eerder as om langs ’n toelatende verstek te sit. Toets vanaf die uitgeslote kant eerder as om daaroor te redeneer.

Herhaal die paar ná ’n herverbinding, want ’n tonnel wat met ’n ander koppelvlaknaam terugkom, kan ’n reël wat op die ou een beperk is, stilweg omseil. Die grens wat saak maak, is die een wat die gasheer toepas op pakkette wat hy werklik ontvang.

Verwante artikels