rsync lewat VPN: porta daemon 873 versus mode SSH
Porta 873 adalah layanan dalam yang dibawa terowongan, bukan penggantinya. Bedakan mode daemon dari mode SSH, lalu buka hanya jalur yang benar-benar Anda pakai.
Mengizinkan TCP 873 pada antarmuka terowongan tidak mendorong rsync melewati OpenVPN, dan tidak membuat ujung jauh menerima modul. Terowongan membawa koneksi dalam yang aturan protokol dan tujuannya tetap persis seperti sebelumnya. Jadi pertanyaan pertama bukanlah porta mana yang dibuka, melainkan jenis koneksi apa yang dibuat rsync. Semua di bawah ini mengasumsikan terowongan sudah aktif dan hanya layanan dalam yang masih diragukan.
Tentukan koneksi apa yang sebenarnya dibuat rsync
Argumen jarak jauh dalam perintah biasanya menjawab pertanyaan itu sebelum ada perubahan firewall. Dua titik dua atau skema URL memilih daemon, sedangkan satu titik dua setelah nama host memilih shell jarak jauh. Bacalah argumen yang benar-benar Anda jalankan, bukan yang ada di contoh dokumentasi.
Opsi shell jarak jauh yang eksplisit dapat mengubah jawaban lagi, karena memberi tahu rsync program mana yang harus dijalankan untuk transportasi. Bacalah seluruh baris perintah, termasuk skrip pembungkus yang diwarisi, bukan hanya bagian host.
| 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 |
Mode daemon: alamat pengikatan, modul, dan porta
Dalam sintaks daemon, segmen jalur menamai modul yang dikonfigurasi, bukan direktori di disk. Kata sandi modul diperiksa hanya setelah koneksi diterima, dan modul juga bisa hanya-baca atau tersembunyi dari daftar. Urutan itu penting saat membaca galat, karena koneksi yang ditolak dan modul yang ditolak adalah kegagalan pada dua tahap berbeda. Tidak satu pun pesan itu memberi tahu Anda apa pun tentang terowongan itu sendiri.
Daemon mandiri dapat dipatok ke alamat terowongan di berkas konfigurasinya, yang menjaganya tetap di luar antarmuka publik tanpa aturan firewall apa pun. Nilainya harus ada saat daemon mengikat, dan pendengar yang diaktifkan socket atau dikelola inetd dapat mengabaikannya sama sekali.
address = 10.44.0.1
port = 873
[archive]
path = /srv/archive
read only = yes
Lalu uji terhadap alamat privat, bukan nama publik. Nama host publik diselesaikan ke alamat WAN dan menempuh jalur berbeda, bahkan ketika satu mesin menjawab keduanya.
rsync --list-only rsync://10.44.0.1/archive/
Mode shell jarak jauh: SSH membawa transfer
Dengan satu titik dua, rsync memulai program shell jarak jauh dan berbicara protokolnya melalui kanal itu, sehingga satu-satunya layanan yang dapat dijangkau adalah SSH pada porta apa pun yang didengarkan server. Daemon rsync tidak pernah berjalan, porta 873 tidak relevan, dan keputusan akses menjadi keputusan akun SSH. Jalur jarak jauh kemudian menjadi jalur sistem berkas nyata yang ditafsirkan shell di sisi jauh. Itulah sebabnya perubahan firewall yang diarahkan ke 873 sama sekali tidak melakukan apa pun untuk mode ini.
Rancangan itu membutuhkan akun yang diotorisasi dan verifikasi kunci host, dan ia mewarisi kebijakan autentikasi SSH sendiri. Sering kali ini pilihan yang lebih baik ketika transfer harus melintasi jaringan yang tidak tepercaya, karena enkripsinya milik protokol yang memang dibuat untuk itu. Daemon dengan permintaan kata sandi bukan hal yang sama.
Buka hanya jalur yang Anda pilih
Setelah mode ditetapkan, izinkan satu layanan dalam pada satu antarmuka yang membawa terowongan. Batasi aturan berdasarkan antarmuka, kumpulan sumber, dan alamat tujuan agar perubahan tolak-bawaan di kemudian hari tidak dapat memperlebarnya diam-diam. Tinjau urutan aturan setelahnya, karena aturan yang mengizinkan lebih awal dalam rantai membuat aturan sempit sekadar hiasan.
Jika daemon berjalan pada mesin di belakang gateway VPN dan bukan pada gateway itu sendiri, gateway juga memerlukan jalur penerusan dan target memerlukan izin serta rute baliknya sendiri. Membuka porta hanya pada gateway menghasilkan koneksi yang diterima lalu tidak menuju ke mana-mana.
Verifikasi dari klien dengan mode dan tujuan yang sama yang akan Anda pakai di produksi. Daftar yang berhasil membuktikan pendengar, rute, dan aturan sekaligus; batas waktu menunjuk ke jalur, dan penolakan menunjuk ke pendengar.
ufw allow in on tun0 from 10.44.0.0/24 to 10.44.0.1 port 873 proto tcp
ss -ltnp | grep 873