Дозвола TCP 873 на интерфејсу тунела не прогура rsync кроз OpenVPN, нити чини да друга страна прихвати модул. Тунел носи унутрашњу везу чија правила протокола и одредишта остају тачно каква су била. Зато прво питање није који порт отворити, него какву врсту везе rsync успоставља. Све испод претпоставља да је тунел већ подигнут и да је споран само унутрашња услуга.

Одредите коју везу rsync заиста успоставља

Удаљени аргумент у наредби обично одговара на то питање пре било какве измене заштитног зида. Двоструко двотачка или URL шема бирају демона, док једна двотачка после имена хоста бира удаљену љуску. Читајте аргумент који заиста извршавате, а не онај из примера у документацији.

Експлицитна опција удаљене љуске може поново да промени одговор, јер говори rsync-у који програм да покрене за пренос. Читајте цео наредбени ред, укључујући наслеђене омотне скрипте, а не само део са хостом.

Remote argumentWhat 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

Режим демона: адреса везивања, модул и порт

У синтакси демона сегмент путање именује конфигурисани модул, а не директоријум на диску. Лозинка модула проверава се тек након што је веза прихваћена, а модул уз то може бити само за читање или скривен са списка. Тај редослед је важан када читате грешку, јер су одбијена веза и одбијени модул кварови у две различите фазе. Ниједна порука не говори ништа о самом тунелу.

Самостални демон може се приковати на адресу тунела у својој конфигурационој датотеци, што га држи изван јавног интерфејса без икаквог правила заштитног зида. Вредност мора постојати када се демон везује, а слушалац покренут сокетом или вођен inetd-ом може је потпуно занемарити.

address = 10.44.0.1
port = 873
[archive]
    path = /srv/archive
    read only = yes

Затим тестирајте према приватној адреси, а не јавном имену. Јавно име хоста разрешава се у WAN адресу и иде другом путањом, чак и када један рачунар одговара на оба.

rsync --list-only rsync://10.44.0.1/archive/

Режим удаљене љуске: SSH носи пренос

Са једном двотачком rsync покреће програм удаљене љуске и говори његовим протоколом преко тог канала, па је једина доступна услуга SSH на ком год порту сервер слуша. Демон rsync-а никада не ради, порт 873 није важан, а одлука о приступу постаје одлука о SSH налогу. Удаљена путања је тада стварна путања у датотечком систему коју тумачи љуска на другој страни. Зато измена заштитног зида усмерена на 873 не чини баш ништа за овај режим.

Тај дизајн тражи овлашћени налог и проверу кључа хоста, и наслеђује сопствену политику провере идентитета SSH-а. Често је то бољи избор када пренос мора да пређе преко непоуздане мреже, јер шифровање припада протоколу који је за то направљен. Демон са захтевом за лозинку није иста ствар.

Отворите само путању коју сте изабрали

Када је режим утврђен, дозволите једину унутрашњу услугу на једином интерфејсу који носи тунел. Сузите правило по интерфејсу, изворном скупу и одредишној адреси, како га каснија измена подразумеваног одбијања не би могла тихо проширити. Затим прегледајте редослед правила, јер дозвољавајуће правило раније у ланцу чини уско правило само украсним.

Ако демон ради на рачунару иза VPN пролаза, а не на самом пролазу, пролаз такође треба путању прослеђивања, а циљ сопствену дозволу и повратну руту. Отварање порта само на пролазу даје везу која се прихвати и затим нигде не оде.

Проверите са клијента са истим режимом и одредиштем које намеравате да користите у продукцији. Успешан списак доказује слушаоца, руту и правило заједно; истек времена указује на путању, а одбијање на слушаоца.

ufw allow in on tun0 from 10.44.0.0/24 to 10.44.0.1 port 873 proto tcp
ss -ltnp | grep 873

Повезани чланци