Vyhledávání na webu

Jak synchronizovat soubory/adresáře pomocí Rsync s nestandardním portem SSH


Dnes budeme diskutovat o tom, jak synchronizovat soubory pomocí rsync s nestandardním portem SSH. Možná se divíte, proč potřebujeme používat nestandardní port SSH? Je to z bezpečnostních důvodů. Každý ví, že 22 je výchozí port SSH.

Je tedy povinné změnit výchozí číslo portu SSH na něco jiného, což je velmi těžké uhodnout. Jak v takových případech synchronizujete soubory/složky se vzdáleným serverem? Žádný strach, není to tak těžké. Zde uvidíme, jak synchronizovat soubory a složky pomocí rsync s nestandardním portem SSH.

Jak možná víte, rsync, také známý jako Vzdálená synchronizace, je rychlý, všestranný a výkonný nástroj, který lze použít ke kopírování a synchronizaci souborů/adresářů z místního do místní nebo místní ke vzdáleným hostitelům. Další podrobnosti o rsync naleznete na manuálových stránkách:

man rsync

Nebo se podívejte na naši předchozí příručku z odkazu níže.

  1. Rsync: 10 praktických příkladů příkazu Rsync v Linuxu

Změňte port SSH na nestandardní port

Jak všichni víme, rsync ve výchozím nastavení používá výchozí port SSH 22 k synchronizaci souborů přes místní a vzdálené hostitele a naopak. Měli bychom změnit port SSH našeho vzdáleného serveru, abychom zpřísnili zabezpečení.

Chcete-li to provést, otevřete a upravte konfigurační soubor SSH /etc/ssh/sshd_config:

vi /etc/ssh/sshd_config 

Najděte následující řádek. Odkomentujte a změňte číslo portu podle svého výběru. Doporučuji vám vybrat libovolné číslo, které je velmi těžké uhodnout.

Ujistěte se, že používáte jedinečné číslo, které stávající služby nepoužívají. V tomto článku netstat zjistíte, které služby běží na kterých portech TCP/UDP.

Například zde používám číslo portu 1431.

[...]
Port 1431
[...]

Uložte a zavřete soubor.

V systémech založených na RPM, jako jsou RHEL, CentOS a Scientific Linux 7, musíte povolit nový port přes bránu firewall nebo směrovač.

firewall-cmd --add-port 1431/tcp
firewall-cmd --add-port 1431/tcp --permanent

V systému RHEL/CentOS/Scientific Linux 6 a vyšším byste také měli aktualizovat oprávnění selinux, abyste povolili port.

iptables -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 1431 -j ACCEPT
semanage port -a -t ssh_port_t -p tcp 1431

Nakonec restartujte službu SSH, aby se změny projevily.

systemctl restart sshd        [On SystemD]
OR
service sshd restart          [On SysVinit]

Nyní se podívejme, jak synchronizovat soubory pomocí rsync s nestandardním portem.

Jak Rsync s nestandardním portem SSH

Spusťte následující příkaz z terminálu pro synchronizaci souborů/složek pomocí Rsync s nestandardním portem ssh.

Syntaxe:
rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder

Pro účely tohoto tutoriálu budu používat dva systémy.

Podrobnosti o vzdáleném systému:

IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1

Podrobnosti o místním systému:

Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2

Synchronizujeme obsah složky /backup1 vzdáleného serveru do složky mého místního systému /home/sk/backup2/.

sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
Ukázkový výstup
[email 's password: 
receiving incremental file list
backup1/
backup1/linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
        752,876 100%   13.30MB/s    0:00:00 (xfr#1, to-chk=2/4)
backup1/linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
      9,676,510 100%   12.50MB/s    0:00:00 (xfr#2, to-chk=1/4)
backup1/linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
     56,563,302 100%   11.26MB/s    0:00:04 (xfr#3, to-chk=0/4)

sent 85 bytes  received 66,979,455 bytes  7,050,477.89 bytes/sec
total size is 66,992,688  speedup is 1.00.

Zkontrolujeme obsah složky /backup1/ na vzdáleném serveru.

sudo ls -l /backup1/
Ukázkový výstup
total 65428
-rw-r--r-- 1 root root  9676510 Dec  9 13:44 linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb
-rw-r--r-- 1 root root   752876 Dec  9 13:44 linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
-rw-r--r-- 1 root root 56563302 Dec  9 13:44 linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

Nyní se podívejme na obsah složky /backup2/ místního systému.

ls /home/sk/backup2/
Ukázkový výstup
backup1

Jak vidíte ve výše uvedeném výstupu, obsah /backup1/ byl úspěšně zkopírován do adresáře /home/sk/backup2/ mého místního systému.

Ověřte obsah složky /backup1/:

ls /home/sk/backup2/backup1/
Ukázkový výstup
linux-headers-4.3.0-040300_4.3.0-040300.201511020949_all.deb            
linux-image-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb
linux-headers-4.3.0-040300-generic_4.3.0-040300.201511020949_amd64.deb

Podívejte se, složky vzdáleného i místního systému mají stejné soubory.

Závěr

Synchronizace souborů/složek pomocí Rsync s SSH je nejen snadná, ale také rychlá a bezpečná metoda. Pokud jste za firewallem, který omezuje port 22, žádný strach. Stačí změnit výchozí port a synchronizovat soubory jako profesionál.