Re-verified with documentation: $ lxc launch ubuntu:focal test-rsync-receiver $ lxc exec test-rsync-receiver bash # apt update && apt dist-upgrade -y # apt install openssh-server rsync -y
# passwd ubuntu New password: Retype new password: passwd: password updated successfully # sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config # systemctl restart sshd # exit - Check ip of receiver with lxc list $ lxc list +---------------------+---------+----------------------+-----------------------------------------------+-----------+-----------+ | NAME | STATE | IPV4 | IPV6 | TYPE | SNAPSHOTS | +---------------------+---------+----------------------+-----------------------------------------------+-----------+-----------+ | test-rsync-receiver | RUNNING | 10.190.23.243 (eth0) | -------------------------------------- (eth0) | CONTAINER | 0 | +---------------------+---------+----------------------+-----------------------------------------------+-----------+-----------+ $ lxc launch ubuntu:focal test-rsync-sender $ lxc exec test-rsync-sender bash # cat <<EOF >/etc/apt/sources.list.d/ubuntu-$(lsb_release -cs)-proposed.list # Enable Ubuntu proposed archive deb http://archive.ubuntu.com/ubuntu/ $(lsb_release -cs)-proposed restricted main multiverse universe EOF # apt update && apt dist-upgrade -y # apt install rsync -y # rsync --help ... -s, --protect-args no space-splitting; only wildcard special-chars --trust-sender trust the remote sender's file list --address=ADDRESS bind address for outgoing socket to daemon ... # man rsync ... --trust-sender Disable the extra validation of the file list from a remote sender (this safety feature was added to address the performance downgrade after fixing CVE 2022-29154). This should only be done if you trust the sender to not try to do something malicious, which should be the case if they're running a stock rsync. Normally when pulling files from a remote rsync, the client runs 2 extra validation checks: o Verify that additional arg items didn't get added at the top of the transfer. o Verify that none of the items in the file list should have been excluded. Note that various options can turn off one or both of these checks if the option interferes with the validation. For instance: o Using a per-directory filter file reads filter rules that only the server knows about, so the filter checking is disabled. o Using the --old-args option allows the sender to manipulate the requested args, so the arg checking is disabled. o Reading the files-from list from the server side means that the client doesn't know the arg list, so the arg checking is disabled. o Using --read-batch disables both checks since the batch file's contents will have been verified when it was created. This option may help an under-powered client server if the extra pattern matching is slowing things down on a huge transfer. It can also be used to work around a bug in the verification logic, possibly after using the --list-only option combined with --trust-sender to look over the full file list. ... # dd if=/dev/urandom of=randomfile.bin bs=1M count=1000 # rsync -av randomfile.bin ubuntu@10.190.23.243:~/file1.bin ubuntu@10.190.23.243's password: sending incremental file list randomfile.bin sent 1,048,832,093 bytes received 35 bytes 99,888,774.10 bytes/sec total size is 1,048,576,000 speedup is 1.00 # rsync -av --trust-sender randomfile.bin ubuntu@10.190.23.243:~/file2.bin ubuntu@10.190.23.243's password: sending incremental file list randomfile.bin sent 1,048,832,093 bytes received 35 bytes 139,844,283.73 bytes/sec total size is 1,048,576,000 speedup is 1.00 ** Tags removed: verification-needed verification-needed-focal ** Tags added: verification-done verification-done-focal -- You received this bug notification because you are a member of Ubuntu Touch seeded packages, which is subscribed to rsync in Ubuntu. https://bugs.launchpad.net/bugs/2028810 Title: rsync 3.1.3 performance regression Status in rsync package in Ubuntu: Fix Released Status in rsync source package in Focal: Fix Committed Bug description: [Impact] Recent necessary security fixes to rsync have caused a slow down in transfer speeds due to additional authentication. In more recent versions of rsync this can be mitigated when the environment is trusted with the --trust-sender flag. In order to accomidate this use case, the flag should be backported to focal too. [Test Plan] $ lxc launch ubuntu:focal test-rsync-receiver $ lxc exec test-rsync-receiver bash # apt update && apt dist-upgrade -y # apt install openssh-server rsync -y # passwd ubuntu - set password for user # exit - Check ip of receiver with lxc list $ lxc list $ lxc launch ubuntu:focal test-rsync-sender $ lxc exec test-rsync-sender bash # apt update && apt dist-upgrade -y # apt install rsync -y - Create a random file to send over # dd if=/dev/urandom of=randomfile.bin bs=1M count=1000 - Send without --trust-sender # rsync -av randomfile.bin ubuntu@<receiver ip>:~/file1.bin - Send with --trust-sender # rsync -av --trust-sender randomfile.bin ubuntu@<receiver ip>:~/file2.bin With the fix in place, --trust-sender is a valid argument and the transfer is notably faster as reported back by rsync. [Where problems could occur] Since this change adds a new feature in the form of an input flag, problems could occour when using it. This could include issues from skipping security checks between the sending and receiving machine. Another possible problem would be issues with command line input parsing due to the additional valid argument. [Other Info] The --trust-sender option is already available in Jammy and later [Original Description] OS: Ubuntu 20.04 Focal Package: rsync 3.1.3-8ubuntu0.5 rsync's performance was regressed by ~7x amount after some security patch (debian/patches/CVE-2022-29154-*) was applied to the package, and introduced a list of filters that iterate on every file being transferred. We think that was where the performance regression came from. A Jammy version of the package (3.2.5) introduced a new flag "--trust- sender" that allowed user to avoid the expensive client-side filtering introduced by those security patches. After pulling this change (https://github.com/WayneD/rsync/commit/cff8f044776c5143a5b270969d4bb0f1fea8b017) from rsync ourselves and applied it to the Focal version, the performance regression went away. The patch we used to backport our Focal rsync is attached in this thread. Can you please backport it too? To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/rsync/+bug/2028810/+subscriptions -- Mailing list: https://launchpad.net/~touch-packages Post to : touch-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~touch-packages More help : https://help.launchpad.net/ListHelp