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.
- 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.