rsync preko VPN-a: port demona 873 nasuprot SSH načinu
Port 873 unutarnja je usluga koju tunel nosi, a ne njezina zamjena. Razlikujte način rada demona od SSH načina, pa otvorite samo putanju koju doista koristite.
Dopuštanje TCP 873 na sučelju tunela ne propušta rsync kroz OpenVPN, niti čini da drugi kraj prihvati modul. Tunel nosi unutarnju vezu čija pravila protokola i odredišta ostaju točno kakva su bila. Stoga prvo pitanje nije koji port otvoriti, nego kakvu vrstu veze rsync uspostavlja. Sve u nastavku pretpostavlja da je tunel već podignut i da je sporan samo unutarnja usluga.
Odredite koju vezu rsync zapravo uspostavlja
Udaljeni argument u naredbi obično odgovara na to pitanje prije bilo kakve promjene vatrozida. Dvostruka dvotočka ili URL shema biraju demona, dok jedna dvotočka nakon imena hosta bira udaljenu ljusku. Čitajte argument koji doista izvršavate, a ne onaj iz primjera u dokumentaciji.
Eksplicitna opcija udaljene ljuske može ponovno promijeniti odgovor jer govori rsyncu koji program pokrenuti za prijenos. Čitajte cijeli naredbeni redak, uključujući naslijeđene omotne skripte, a ne samo dio s hostom.
| 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: adresa vezanja, modul i port
U sintaksi demona segment putanje imenuje konfigurirani modul, a ne direktorij na disku. Lozinka modula provjerava se tek nakon što je veza prihvaćena, a modul uz to može biti samo za čitanje ili skriven s popisa. Taj je redoslijed važan kad čitate pogrešku jer su odbijena veza i odbijeni modul kvarovi u dvije različite faze. Nijedna poruka ne govori ništa o samom tunelu.
Samostalni demon može se prikvačiti na adresu tunela u svojoj konfiguracijskoj datoteci, što ga drži izvan javnog sučelja bez ikakvog pravila vatrozida. Vrijednost mora postojati kada se demon veže, a slušatelj pokrenut socketom ili vođen inetdom može je posve zanemariti.
address = 10.44.0.1
port = 873
[archive]
path = /srv/archive
read only = yes
Zatim testirajte prema privatnoj adresi, a ne javnom imenu. Javno ime hosta razrješava se u WAN adresu i prolazi drugom putanjom, čak i kad jedan stroj odgovara na obje.
rsync --list-only rsync://10.44.0.1/archive/
Način udaljene ljuske: SSH nosi prijenos
S jednom dvotočkom rsync pokreće program udaljene ljuske i govori njegov protokol preko tog kanala, pa je jedina dostupna usluga SSH na kojem god portu poslužitelj sluša. Demon rsync nikada ne radi, port 873 nije važan, a odluka o pristupu postaje odluka o SSH računu. Udaljena putanja tada je stvarna putanja datotečnog sustava koju tumači ljuska na drugoj strani. Zato promjena vatrozida usmjerena na 873 ne čini baš ništa za ovaj način.
Taj dizajn treba ovlašteni račun i provjeru ključa hosta, i nasljeđuje vlastitu politiku provjere autentičnosti SSH-a. Često je bolji izbor kad prijenos mora prijeći preko nepouzdane mreže jer enkripcija pripada protokolu koji je za to napravljen. Demon sa zahtjevom za lozinku nije ista stvar.
Otvorite samo putanju koju ste odabrali
Kad je način utvrđen, dopustite jedinu unutarnju uslugu na jedinom sučelju koje nosi tunel. Suzite pravilo po sučelju, izvornom bazenu i odredišnoj adresi kako ga kasnija promjena zadanog odbijanja ne bi mogla tiho proširiti. Zatim pregledajte redoslijed pravila jer dopuštajuće pravilo ranije u lancu usko pravilo čini ukrasnim.
Ako demon radi na stroju iza VPN pristupnika, a ne na samom pristupniku, pristupniku treba i putanja prosljeđivanja, a cilju vlastito dopuštenje i povratna ruta. Otvaranje porta samo na pristupniku daje vezu koja se prihvati i zatim nigdje ne ode.
Provjerite s klijenta s istim načinom i odredištem koje namjeravate koristiti u produkciji. Uspješan popis dokazuje slušatelja, rutu i pravilo zajedno; istek vremena pokazuje na putanju, a odbijanje na slušatelja.
ufw allow in on tun0 from 10.44.0.0/24 to 10.44.0.1 port 873 proto tcp
ss -ltnp | grep 873