Standart Olmayan SSH Bağlantı Noktasıyla Rsync Kullanarak Dosyaları/Dizinleri Eşitleme


Bugün, standart olmayan SSH bağlantı noktasıyla rsync kullanarak dosyaların nasıl senkronize edileceğini tartışacağız. Neden standart olmayan SSH bağlantı noktasını kullanmamız gerektiğini merak ediyor olabilirsiniz? Güvenlik nedenlerinden dolayıdır. Herkes 22'nin SSH varsayılan bağlantı noktası olduğunu biliyor.

Bu nedenle, SSH varsayılan bağlantı noktası numaranızı tahmin edilmesi çok zor olan farklı bir şeyle değiştirmeniz zorunludur. Bu gibi durumlarda dosyalarınızı/klasörlerinizi Uzak sunucunuzla nasıl senkronize edeceksiniz? Merak etmeyin, o kadar da zor değil. Burada standart olmayan SSH bağlantı noktasıyla rsync kullanarak dosya ve klasörlerin nasıl senkronize edileceğini göreceğiz.

Bildiğiniz gibi, Uzaktan Senkronizasyon olarak da bilinen rsync, dosyaları/dizinleri yerelden yerele kopyalamak ve senkronize etmek için kullanılabilecek hızlı, çok yönlü ve güçlü bir araçtır. yerel veya uzak ana bilgisayarlara yerel. Rsync hakkında daha fazla ayrıntı için man sayfalarını kontrol edin:

man rsync

Veya aşağıdaki bağlantıdan önceki kılavuzumuza bakın.

  1. Rsync: Linux'ta Rsync Komutunun 10 Pratik Örneği

SSH Bağlantı Noktasını Standart Olmayan Bağlantı Noktasına Değiştirin

Hepimizin bildiği gibi, varsayılan olarak rsync, dosyaları yerelden uzak ana bilgisayarlara (veya tam tersi) senkronize etmek için varsayılan SSH bağlantı noktası 22'yi kullanır. Güvenliği sıkılaştırmak için uzak sunucumuzun SSH portunu değiştirmeliyiz.

Bunu yapmak için SSH yapılandırması /etc/ssh/sshd_config dosyasını açın ve düzenleyin:

vi /etc/ssh/sshd_config 

Aşağıdaki satırı bulun. Açıklamayı kaldırın ve seçtiğiniz bağlantı noktası numarasını değiştirin. Tahmin edilmesi çok zor olan herhangi bir sayıyı seçmenizi öneririm.

Mevcut hizmetler tarafından kullanılmayan benzersiz bir numara kullandığınızdan emin olun. Hangi hizmetlerin hangi TCP/UDP bağlantı noktalarında çalıştığını öğrenmek için bu netstat makalesine göz atın.

Örneğin burada 1431 numaralı bağlantı noktasını kullanıyorum.

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

Dosyayı kaydedip kapatın.

RHEL, CentOS ve Scientific Linux 7 gibi RPM tabanlı sistemlerde, yeni bağlantı noktasına güvenlik duvarınız veya yönlendiriciniz üzerinden izin vermeniz gerekir.

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

RHEL/CentOS/Scientific Linux 6 ve üzeri sürümlerde, bağlantı noktasına izin vermek için selinux izinlerini de güncellemelisiniz.

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

Son olarak değişikliklerin geçerli olması için SSH hizmetini yeniden başlatın.

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

Şimdi standart olmayan bağlantı noktasıyla rsync kullanarak dosyaları nasıl senkronize edeceğimizi görelim.

Standart olmayan SSH Bağlantı Noktasıyla Rsync Nasıl Yapılır?

Standart olmayan ssh bağlantı noktasıyla Rsync kullanarak dosyaları/klasörleri senkronize etmek için terminalden aşağıdaki komutu çalıştırın.

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

Bu eğitimin amacı doğrultusunda iki sistem kullanacağım.

Uzak Sistem Detayları:

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

Yerel Sistem Detayları:

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

Uzak sunucunun /backup1 klasörünün içeriğini yerel sistemimin /home/sk/backup2/ klasörüyle senkronize edelim.

sudo rsync -arvz -e 'ssh -p 1431' --progress --delete [email :/backup1 /home/sk/backup2
Örnek Çıktı
[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.

Uzak sunucudaki /backup1/ klasörünün içeriğini kontrol edelim.

sudo ls -l /backup1/
Örnek Çıktı
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

Şimdi local sistemin /backup2/ klasörünün içeriğini kontrol edelim.

ls /home/sk/backup2/
Örnek Çıktı
backup1

Yukarıdaki çıktıda gördüğünüz gibi /backup1/ içeriği yerel sistemimin /home/sk/backup2/ dizinine başarıyla kopyalandı.

/backup1/ klasörünün içeriğini doğrulayın:

ls /home/sk/backup2/backup1/
Örnek Çıktı
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

Bakın, hem uzak hem de yerel sistemin klasörleri aynı dosyalara sahiptir.

Çözüm

Dosyaları/klasörleri SSH ile Rsync kullanarak senkronize etmek sadece kolay değil, aynı zamanda hızlı ve güvenli bir yöntemdir. Bağlantı noktası 22'yi kısıtlayan bir güvenlik duvarının arkasındaysanız endişelenmeyin. Varsayılan bağlantı noktasını değiştirin ve dosyaları bir profesyonel gibi senkronize edin.