|
| 1 | +--- |
| 2 | +title: rsync – Demo 02 |
| 3 | +author: tianci li |
| 4 | +contributors: Steven Spencer, Ganna Zhyrnova |
| 5 | +update: 2021-11-04 |
| 6 | +--- |
| 7 | + |
| 8 | +# Demo basierend auf dem rsync-Protokoll |
| 9 | + |
| 10 | +In `vsftpd` gibt es virtuelle Benutzer (durch den Administrator angepasste Benutzer), weil es nicht sicher ist, anonyme Benutzer und lokale Benutzer zu verwenden. Wir wissen, dass ein Server, der auf dem `SSH`-Protokoll basiert, sicherstellen muss, dass es ein System von Benutzern gibt. Wenn es viele Synchronisationsanforderungen gibt, kann es notwendig sein, viele Benutzer zu erstellen. Dies entspricht natürlich nicht den GNU/Linux-Betriebssystem- und Wartungsstandards (je mehr Benutzer Je unsicherer). In `rsync`, aus Sicherheitsgründen gibt es eine Anmeldemethode für `rsync`-Protokollauthentifizierung. |
| 11 | + |
| 12 | +**Wie macht man das?** |
| 13 | + |
| 14 | +Geben Sie einfach die entsprechenden Parameter und Werte in die Konfigurationsdatei ein. In Rocky Linux 8 müssen Sie die Datei <font color=red>/etc/rsyncd.conf</font> manuell erstellen. |
| 15 | + |
| 16 | +```bash |
| 17 | +[root@Rocky ~]# touch /etc/rsyncd.conf |
| 18 | +[root@Rocky ~]# vim /etc/rsyncd.conf |
| 19 | +``` |
| 20 | + |
| 21 | +Einige Parameter und Werte dieser Datei lauten wie folgt, [hier](04_rsync_configure.md) finden Sie weitere Parameterinfos: |
| 22 | + |
| 23 | +| Item | Beschreibung | |
| 24 | +| ----------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | |
| 25 | +| address = 192.168.100.4 | Die IP-Adresse, auf die rsync default-mäßig lauscht | |
| 26 | +| port = 873 | Standardmäßig lauscht der `rsync`-Daemon auf diesem Port | |
| 27 | +| pid file = /var/run/rsyncd.pid | Datei-Speicherort der Prozess-PID | |
| 28 | +| log file = /var/log/rsyncd.log | Speicherort des Log-Protokolls | |
| 29 | +| [share] | Freigabename | |
| 30 | +| comment = rsync | Hinweise oder Beschreibungsinformationen | |
| 31 | +| path = /rsync/ | Der Systempfad dort, wo er sich befindet | |
| 32 | +| read only = yes | yes bedeutet nur lesen, kein schreiben | |
| 33 | +| dont compress = \*.gz \*.gz2 \*.zip | Welche Dateitypen werden nicht komprimiert | |
| 34 | +| auth users = li | Virtuelle Benutzer aktivieren und definieren, wie ein virtueller Benutzer genannt wird. Sie sollten es selbst erstellen | |
| 35 | +| secrets file = /etc/rsyncd_users.db | Wird verwendet, um den Speicherort der Passwortdatei des virtuellen Benutzers anzugeben, die mit `.db` enden muss. Das Inhaltsformat der Datei ist "Benutzername: Passwort" für jede Zeile | |
| 36 | + |
| 37 | +!!! tip "Tip" |
| 38 | + |
| 39 | + Die Berechtigung für die Passwortdatei muss <font color=red>600</font> sein. |
| 40 | + |
| 41 | +Schreiben Sie einen Teil des Dateiinhalts in <font color=red>/etc/rsyncd.conf</font> und schreiben Sie den Benutzernamen und das Passwort in /etc/rsyncd_users.db. Die Berechtigung beträgt 600 |
| 42 | + |
| 43 | +```bash |
| 44 | +[root@Rocky ~]# cat /etc/rsyncd.conf |
| 45 | +address = 192.168.100.4 |
| 46 | +port = 873 |
| 47 | +pid file = /var/run/rsyncd.pid |
| 48 | +log file = /var/log/rsyncd.log |
| 49 | +[share] |
| 50 | +comment = rsync |
| 51 | +path = /rsync/ |
| 52 | +read only = yes |
| 53 | +dont compress = *.gz *.bz2 *.zip |
| 54 | +auth users = li |
| 55 | +secrets file = /etc/rsyncd_users.db |
| 56 | +[root@Rocky ~]# ll /etc/rsyncd_users.db |
| 57 | +-rw------- 1 root root 9 November 2 16:16 /etc/rsyncd_users.db |
| 58 | +[root@Rocky ~]# cat /etc/rsyncd_users.db |
| 59 | +li:13579 |
| 60 | +``` |
| 61 | + |
| 62 | +Sie müssen möglicherweise `dnf -y rsync-daemon install` ausführen bevor Sie den Dienst starten können: `systemctl start rsyncd.service` |
| 63 | + |
| 64 | +```bash |
| 65 | +[root@Rocky ~]# systemctl start rsyncd.service |
| 66 | +[root@Rocky ~]# netstat -tulnp |
| 67 | +Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name |
| 68 | +tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 691/sshd |
| 69 | +tcp 0 0 192.168.100.4:873 0.0.0.0:* LISTEN 4607/rsync |
| 70 | +tcp6 0 0 :::22 :::* LISTEN 691/sshd |
| 71 | +udp 0 0 127.0.0.1:323 0.0.0.0:* 671/chronyd |
| 72 | +udp6 0 0 ::1:323 :::* 671/chronyd |
| 73 | +``` |
| 74 | + |
| 75 | +## pull/download |
| 76 | + |
| 77 | +Eine Datei auf dem Server zur Verifikation erstellen: `[root@Rocky]# touch /rsync/rsynctest.txt` |
| 78 | + |
| 79 | +Der Client macht folgendes: |
| 80 | + |
| 81 | +```bash |
| 82 | +[root@fedora ~] # rsync -avz [email protected]::share /root |
| 83 | +Password: |
| 84 | +receiving incremental file list |
| 85 | +./ |
| 86 | +rsynctest.txt |
| 87 | +sent 52 bytes received 195 bytes 7.16 bytes/sec |
| 88 | +total size is 883 speedup is 3.57 |
| 89 | +[root@fedora ~]# ls |
| 90 | +aabbcc anaconda-ks.cfg fedora rsynctest.txt |
| 91 | +``` |
| 92 | + |
| 93 | +success! Zusätzlich zum obigen Schreiben basierend auf dem rsync-Protokoll können Sie folgendermaßen schreiben: `rsync://[email protected]/share` |
| 94 | + |
| 95 | +## push/upload |
| 96 | + |
| 97 | +```bash |
| 98 | +[root@fedora ~]# touch /root/fedora.txt |
| 99 | +[root@fedora ~] # rsync -avz /root/* [email protected]::share |
| 100 | +Password: |
| 101 | +sending incremental file list |
| 102 | +rsync: [sender] read error: Connection reset by peer (104) |
| 103 | +rsync error: error in socket IO (code 10) at io.c(784) [sender = 3.2.3] |
| 104 | +``` |
| 105 | + |
| 106 | +Sie erhalten den Hinweis, dass der Lesefehler mit der Einstellung `read only = yes` des Servers zusammenhängt. Ändern Sie es auf `no` und starten Sie den Dienst neu:<br/> `[root@Rocky ~]# systemctl restart rsyncd.service` |
| 107 | + |
| 108 | +Versuchen Sie es noch einmal und Sie erhalten die Meldung, dass die Berechtigung verweigert wurde: |
| 109 | + |
| 110 | +```bash |
| 111 | +[root@fedora ~] # rsync -avz /root/* [email protected]::share |
| 112 | +Password: |
| 113 | +sending incremental file list |
| 114 | +fedora.txt |
| 115 | +rsync: mkstemp " /.fedora.txt.hxzBIQ " (in share) failed: Permission denied (13) |
| 116 | +sent 206 bytes received 118 bytes 92.57 bytes/sec |
| 117 | +total size is 883 speedup is 2.73 |
| 118 | +rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1330) [sender = 3.2.3] |
| 119 | +``` |
| 120 | + |
| 121 | +Unser virtueller Benutzer hier ist <font color=red>li</font>, der standardmäßig dem Systembenutzer <font color=red>nobody</font> zugeordnet ist. Natürlich können Sie dies auf andere Systembenutzer umstellen. Mit anderen Worten, `nobody` hat keine Schreibberechtigung in das Verzeichnis `/rsync/`. Natürlich können Sie `[root@Rocky ~]# setfacl -mu:nobody:rwx /rsync/` verwenden, und es erneut versuchen. |
| 122 | + |
| 123 | +```bash |
| 124 | +[root@fedora ~] # rsync -avz /root/* [email protected]::share |
| 125 | +Password: |
| 126 | +sending incremental file list |
| 127 | +fedora.txt |
| 128 | +sent 206 bytes received 35 bytes 96.40 bytes/sec |
| 129 | +total size is 883 speedup is 3.66 |
| 130 | +``` |
0 commit comments