Демонстрація на основі протоколу rsync¶
У vsftpd є віртуальні користувачі (імітовані користувачі, налаштовані адміністратором), тому що використовувати анонімних і локальних користувачів небезпечно. Ми знаємо, що сервер, заснований на протоколі SSH, повинен забезпечувати наявність системи користувачів. Коли існує багато вимог до синхронізації, може знадобитися створити багато користувачів. Це, очевидно, не відповідає стандартам роботи та обслуговування GNU/Linux (чим більше користувачів, тим небезпечніше), у rsync з міркувань безпеки існує метод автентифікації протоколу rsync для входу в систему.
Як це зробити?
Просто запишіть відповідні параметри та значення у файл конфігурації. У Rocky Linux 8 вам потрібно вручну створити файл /etc/rsyncd.conf.
[root@Rocky ~]# touch /etc/rsyncd.conf
[root@Rocky ~]# vim /etc/rsyncd.conf
Деякі параметри та значення цього файлу наведені нижче, ось тут є інші описи параметрів:
Елемент | Опис |
---|---|
address = 192.168.100.4 | IP-адреса, яку rsync прослуховує за замовчуванням |
port = 873 | порт прослуховування за замовчуванням rsync |
pid file = /var/run/rsyncd.pid | Розташування файлу процесу pid |
log file = /var/log/rsyncd.log | Розташування файлу журналу |
[share] | Назва спільного доступу |
comment = rsync | Примітки або опис |
path = /rsync/ | Розташування системного шляху, де він розташований |
read only = yes | yes означає лише читання, no означає читання та запис |
dont compress = *.gz *.gz2 *.zip | Які типи файлів не стискають його |
auth users = li | Вмикає віртуальних користувачів і визначає назву віртуального користувача. Його потрібно створити самостійно |
secrets file = /etc/rsyncd_users.db | Використовується для вказівки розташування файлу пароля віртуального користувача, який має закінчуватися на .db. Формат вмісту файлу: «Ім’я користувача: пароль», по одному на рядок |
Підказка
Дозвіл доступу до файлу паролів має бути 600.
Запишіть деякий вміст файлу в /etc/rsyncd.conf, а ім’я користувача та пароль – у /etc/rsyncd_users.db, дозвіл 600
[root@Rocky ~]# cat /etc/rsyncd.conf
address = 192.168.100.4
port = 873
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
[share]
comment = rsync
path = /rsync/
read
dont compress = *.gz *.bz2 *.zip
auth users = li
secrets file = /etc/rsyncd_users.db
[root@Rocky ~]# ll /etc/rsyncd_users.db
-rw------- 1 root root 9 November 2 16:16 /etc/rsyncd_users.db
[root@Rocky ~]# cat /etc/rsyncd_users.db
li:13579
Можливо, вам знадобиться dnf -y встановити rsync-daemon
, перш ніж ви зможете запустити службу: systemctl start rsyncd.service
[root@Rocky ~]# systemctl start rsyncd.service
[root@Rocky ~]# netstat -tulnp
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 691/sshd
tcp 0 0 192.168.100.4:873 0.0.0.0:* LISTEN 4607/rsync
tcp6 0 0 :::22 :::* LISTEN 691/sshd
udp 0 0 127.0.0.1:323 0.0.0.0:* 671/chronyd
udp6 0 0 ::1:323 :::* 671/chronyd
витягти/завантажити¶
Створіть файл на сервері для перевірки: [root@Rocky]# touch /rsync/rsynctest.txt
Клієнт робить наступне:
[root@fedora ~]# rsync -avz li@192.168.100.4::share /root
Password:
receiving incremental file list
./
rsynctest.txt
sent 52 bytes received 195 bytes 7.16 bytes/sec
total size is 883 speedup is 3.57
[root@fedora ~]# ls
aabbcc anaconda-ks.cfg fedora rsynctest.txt
успіх! На додаток до написання вище на основі протоколу rsync, ви також можете написати так: rsync://li@10.1.2.84/share
передати/відвантажити¶
[root@fedora ~]# touch /root/fedora.txt
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
rsync: [sender] read error: Connection reset by peer (104)
rsync error: error in socket IO (code 10) at io.c(784) [sender = 3.2.3]
Вам буде запропоновано, що помилка читання пов’язана з параметром «read only = yes» сервера. Змініть його на "no" та перезапустіть службу [root@Rocky ~]# systemctl перезапустіть rsyncd.service
Спробуйте ще раз, запитуючи дозвіл заборонено:
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
fedora.txt
rsync: mkstemp " /.fedora.txt.hxzBIQ " (in share) failed: Permission denied (13)
sent 206 bytes received 118 bytes 92.57 bytes/sec
total size is 883 speedup is 2.73
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3]
Наш віртуальний користувач тут li, який за замовчуванням зіставлено з системним користувачем nobody. Звичайно, ви можете змінити його на інших користувачів системи. In other words, nobody does not have write permission to the /rsync/ directory. Звичайно, ми можемо використати [root@Rocky ~]# setfacl -mu:nobody:rwx /rsync/
, спробувати ще раз і вдасться.
[root@fedora ~]# rsync -avz /root/* li@192.168.100.4::share
Password:
sending incremental file list
fedora.txt
sent 206 bytes received 35 bytes 96.40 bytes/sec
total size is 883 speedup is 3.66
Author: tianci li
Contributors: Steven Spencer, Ganna Zhyrnova