rsync prek VPN: vrata demona 873 proti načinu SSH
Vrata 873 so notranja storitev, ki jo nosi tunel, ne njegova zamenjava. Ločite način demona od načina SSH in nato odprite le pot, ki jo resnično uporabljate.
Dovolitev TCP 873 na vmesniku tunela ne potisne rsynca skozi OpenVPN, niti ne doseže, da bi druga stran sprejela modul. Tunel nosi notranjo povezavo, katere pravila protokola in cilja ostanejo natanko takšna, kot so bila. Zato prvo vprašanje ni, katera vrata odpreti, ampak kakšno vrsto povezave vzpostavlja rsync. Vse spodaj predpostavlja, da je tunel že vzpostavljen in da je vprašljiva le notranja storitev.
Ugotovite, kakšno povezavo rsync dejansko vzpostavlja
Oddaljeni argument v ukazu običajno odgovori na to vprašanje pred kakršno koli spremembo požarnega zidu. Dvojno dvopičje ali shema URL izbereta demona, medtem ko enojno dvopičje za imenom gostitelja izbere oddaljeno lupino. Berite argument, ki ga dejansko izvajate, ne tistega iz primera v dokumentaciji.
Izrecna možnost oddaljene lupine lahko odgovor znova spremeni, ker rsyncu pove, kateri program naj zažene za prenos. Berite celo ukazno vrstico, vključno s podedovanimi ovojnimi skripti, ne le dela z gostiteljem.
| Remote argument | What it opens |
|---|---|
rsync://vault.corp.internal/archive/ | rsync daemon, normally TCP 873 |
vault.corp.internal::archive/ | rsync daemon, normally TCP 873 |
[email protected]:/srv/archive/ | Remote shell, normally SSH on its configured port |
Način demona: naslov vezave, modul in vrata
V sintaksi demona segment poti poimenuje konfiguriran modul, ne mape na disku. Geslo modula se preveri šele potem, ko je povezava sprejeta, modul pa je lahko dodatno samo za branje ali skrit s seznama. Ta vrstni red je pomemben pri branju napake, ker sta zavrnjena povezava in zavrnjen modul napaki v dveh različnih fazah. Nobeno od sporočil vam ne pove ničesar o samem tunelu.
Samostojnega demona je mogoče v konfiguracijski datoteki pripeti na naslov tunela, kar ga drži zunaj javnega vmesnika brez vsakega pravila požarnega zidu. Vrednost mora obstajati, ko se demon veže, in poslušalec, ki ga aktivira vtičnica ali upravlja inetd, jo lahko popolnoma prezre.
address = 10.44.0.1
port = 873
[archive]
path = /srv/archive
read only = yes
Nato preizkusite zasebni naslov namesto javnega imena. Javno ime gostitelja se razreši v naslov WAN in gre po drugi poti, tudi ko en stroj odgovarja na oba.
rsync --list-only rsync://10.44.0.1/archive/
Način oddaljene lupine: SSH nosi prenos
Z enim dvopičjem rsync zažene program oddaljene lupine in govori njegov protokol po tem kanalu, zato je edina dosegljiva storitev SSH na tistih vratih, na katerih posluša strežnik. Demon rsync nikoli ne teče, vrata 873 niso pomembna in odločitev o dostopu postane odločitev o računu SSH. Oddaljena pot je takrat resnična pot datotečnega sistema, ki jo interpretira lupina na drugi strani. Zato sprememba požarnega zidu, usmerjena na 873, za ta način ne naredi prav ničesar.
Takšna zasnova potrebuje pooblaščen račun in preverjanje ključa gostitelja, in podeduje lastno politiko preverjanja pristnosti SSH. Pogosto je to boljša izbira, ko mora prenos prečkati nezanesljivo omrežje, ker šifriranje pripada protokolu, ki je bil za to zgrajen. Demon z zahtevo po geslu ni ista stvar.
Odprite le pot, ki ste jo izbrali
Ko je način določen, dovolite edino notranjo storitev na edinem vmesniku, ki nosi tunel. Zožite pravilo po vmesniku, naboru virov in ciljnem naslovu, da ga poznejša sprememba privzete zavrnitve ne more tiho razširiti. Nato pregledajte vrstni red pravil, ker dovoljujoče pravilo prej v verigi naredi ozko pravilo zgolj okrasno.
Če demon teče na stroju za prehodom VPN in ne na samem prehodu, potrebuje tudi prehod pot posredovanja, cilj pa lastno dovoljenje in povratno pot. Odpiranje vrat samo na prehodu ustvari povezavo, ki je sprejeta in nato ne pelje nikamor.
Preverite odjemalca z istim načinom in ciljem, ki ju nameravate uporabljati v produkciji. Uspešen seznam dokaže poslušalca, pot in pravilo skupaj; potek časa kaže na pot, zavrnitev pa na poslušalca.
ufw allow in on tun0 from 10.44.0.0/24 to 10.44.0.1 port 873 proto tcp
ss -ltnp | grep 873