Jak synchronizować pliki/katalogi za pomocą Rsync z niestandardowym portem SSH
Dzisiaj omówimy, jak synchronizować pliki za pomocą rsync z niestandardowym portem SSH. Możesz się zastanawiać, dlaczego musimy używać niestandardowego portu SSH? Dzieje się tak ze względów bezpieczeństwa. Wszyscy wiedzą, że 22 to domyślny port SSH.
Dlatego obowiązkowa jest zmiana domyślnego numeru portu SSH na inny, który jest bardzo trudny do odgadnięcia. Jak w takich przypadkach zsynchronizować pliki/foldery z serwerem zdalnym? Bez obaw. To nie jest takie trudne. Tutaj zobaczymy, jak synchronizować pliki i foldery za pomocą rsync z niestandardowym portem SSH.
Jak zapewne wiesz, rsync, znany również jako Zdalna synchronizacja, to szybkie, wszechstronne i potężne narzędzie, którego można używać do kopiowania i synchronizowania plików/katalogów z lokalnego do hosty lokalne lub lokalne do zdalnych. Aby uzyskać więcej informacji na temat rsync, sprawdź strony podręcznika:
man rsync
Możesz też zapoznać się z naszym poprzednim przewodnikiem, korzystając z linku poniżej.
- Rsync: 10 praktycznych przykładów polecenia Rsync w systemie Linux
Zmień port SSH na port niestandardowy
Jak wszyscy wiemy, rsync domyślnie używa domyślnego portu SSH 22 do synchronizowania plików przez hosty lokalne ze zdalnymi i odwrotnie. Powinniśmy zmienić port SSH naszego zdalnego serwera, aby zwiększyć bezpieczeństwo.
Aby to zrobić, otwórz i edytuj plik konfiguracyjny SSH /etc/ssh/sshd_config:
vi /etc/ssh/sshd_config
Znajdź następującą linię. Odkomentuj i zmień wybrany numer portu. Radzę wybrać dowolną liczbę, która jest bardzo trudna do odgadnięcia.
Upewnij się, że używasz unikalnego numeru, który nie jest używany w istniejących usługach. Sprawdź ten artykuł netstat, aby dowiedzieć się, które usługi działają na jakich portach TCP/UDP.
Na przykład tutaj używam numeru portu 1431.
[...]
Port 1431
[...]
Zapisz i zamknij plik.
W systemach opartych na RPM, takich jak RHEL, CentOS i Scientific Linux 7, musisz zezwolić na nowy port przez zaporę ogniową lub router.
firewall-cmd --add-port 1431/tcp
firewall-cmd --add-port 1431/tcp --permanent
W systemie RHEL/CentOS/Scientific Linux 6 i nowszych wersjach należy także zaktualizować uprawnienia selinux, aby zezwolić na 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
Na koniec uruchom ponownie usługę SSH, aby zastosować zmiany.
systemctl restart sshd [On SystemD]
OR
service sshd restart [On SysVinit]
Zobaczmy teraz, jak synchronizować pliki za pomocą rsync z niestandardowym portem.
Jak wykonać Rsync z niestandardowym portem SSH
Uruchom następującą komendę na terminalu, aby zsynchronizować pliki/foldery przy użyciu Rsync z niestandardowym portem ssh.
Składnia:
rsync -arvz -e 'ssh -p <port-number>' --progress --delete user@remote-server:/path/to/remote/folder /path/to/local/folder
Na potrzeby tego samouczka będę używać dwóch systemów.
Szczegóły systemu zdalnego:
IP Address: 192.168.1.103
User name: tecmint
Sync folder: /backup1
Szczegóły systemu lokalnego:
Operating System: Ubuntu 14.04 Desktop
IP Address: 192.168.1.100
Sync folder: /home/sk/backup2
Zsynchronizujmy zawartość folderu /backup1
zdalnego serwera z folderem mojego lokalnego systemu /home/sk/backup2/
.
sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
Przykładowe wyjście
[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.
Sprawdźmy zawartość folderu /backup1/
na serwerze zdalnym.
sudo ls -l /backup1/
Przykładowe wyjście
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
Sprawdźmy teraz zawartość folderu /backup2/
systemu lokalnego.
ls /home/sk/backup2/
Przykładowe wyjście
backup1
Jak widać na powyższym wyjściu, zawartość /backup1/
została pomyślnie skopiowana do katalogu /home/sk/backup2/
mojego systemu lokalnego.
Sprawdź zawartość folderu /backup1/
:
ls /home/sk/backup2/backup1/
Przykładowe wyjście
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
Widzisz, zarówno foldery systemu zdalnego, jak i lokalnego mają te same pliki.
Wniosek
Synchronizowanie plików/folderów za pomocą Rsync z SSH jest nie tylko łatwą, ale także szybką i bezpieczną metodą. Jeśli znajdujesz się za zaporą sieciową, która ogranicza port 22, nie martw się. Po prostu zmień domyślny port i synchronizuj pliki jak profesjonalista.