This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org --- config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
+ # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096 + if [ -f /var/ipfire/ovpn/server.conf ]; then + sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf + fi + + if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then + sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf + fi + return 0 }
Also, backup.pl is actually a shell script, so it should either go as "backup.sh" or without any file suffix whatsoever. :-)
This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org
config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
- # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096
- if [ -f /var/ipfire/ovpn/server.conf ]; then
sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf
- fi
- if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then
sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf
- fi
- return 0
}
This used to be a Perl script, but got rewritten.
And it would have been a pain to change it since it is located in /var/ipfire and so on. So I left the extension.
On 13 Dec 2022, at 15:48, Peter Müller peter.mueller@ipfire.org wrote:
Also, backup.pl is actually a shell script, so it should either go as "backup.sh" or without any file suffix whatsoever. :-)
This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org
config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
- # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096
- if [ -f /var/ipfire/ovpn/server.conf ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf
- fi
- if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf
- fi
return 0 }
Hello Peter,
On 13 Dec 2022, at 15:47, Peter Müller peter.mueller@ipfire.org wrote:
This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org
config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
- # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096
- if [ -f /var/ipfire/ovpn/server.conf ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf
- fi
- if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf
- fi
The second command will never be executed because "/var/ipfire/ovpn/n2nconf/*/*.conf” will never exist.
Because the string is quoted, the shell won’t conduct any path expansion.
What could work is running the sed command on all files simultaneously and if there is nothing to change, it won’t do anything. Passing server.conf and n2nconfig/*/*.conf will never fail if there is no N2N configuration. server.conf should always exist.
Best, -Michael
return 0 }
-- 2.35.3
Alternatively we could just not change anything and add a smiling from the old path to the new one.
On 14 Dec 2022, at 18:02, Michael Tremer michael.tremer@ipfire.org wrote:
Hello Peter,
On 13 Dec 2022, at 15:47, Peter Müller peter.mueller@ipfire.org wrote:
This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org
config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
- # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096
- if [ -f /var/ipfire/ovpn/server.conf ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf
- fi
- if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf
- fi
The second command will never be executed because "/var/ipfire/ovpn/n2nconf/*/*.conf” will never exist.
Because the string is quoted, the shell won’t conduct any path expansion.
What could work is running the sed command on all files simultaneously and if there is nothing to change, it won’t do anything. Passing server.conf and n2nconfig/*/*.conf will never fail if there is no N2N configuration. server.conf should always exist.
Best, -Michael
return 0 }
-- 2.35.3
Hello Michael,
thanks for your reply, and apologies for the belated one of mine.
Hello Peter,
On 13 Dec 2022, at 15:47, Peter Müller peter.mueller@ipfire.org wrote:
This ensures restoring a backup won't silently bring back an insecure Diffie-Hellman parameter (which could also not be inspected through the web interface anymore).
Reported-by: Michael Tremer michael.tremer@ipfire.org Signed-off-by: Peter Müller peter.mueller@ipfire.org
config/backup/backup.pl | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/config/backup/backup.pl b/config/backup/backup.pl index 6fd9e45bb..520d9315d 100644 --- a/config/backup/backup.pl +++ b/config/backup/backup.pl @@ -187,6 +187,15 @@ restore_backup() { # Update OpenVPN CRL /etc/fcron.daily/openvpn-crl-updater
- # Replace previously used OpenVPN Diffie-Hellman parameter by ffdhe4096
- if [ -f /var/ipfire/ovpn/server.conf ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf
- fi
- if [ -f "/var/ipfire/ovpn/n2nconf/*/*.conf" ]; then
- sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/n2nconf/*/*.conf
- fi
The second command will never be executed because "/var/ipfire/ovpn/n2nconf/*/*.conf” will never exist.
Because the string is quoted, the shell won’t conduct any path expansion.
Indeed, and even with the string not quoted, it won't work either, at least according to https://www.shellcheck.net/wiki/SC2144. Glad you caught that, this error made it into the update.sh script of Core Update 172 as well. :-/
What could work is running the sed command on all files simultaneously and if there is nothing to change, it won’t do anything. Passing server.conf and n2nconfig/*/*.conf will never fail if there is no N2N configuration. server.conf should always exist.
Thanks. I can confirm that
sed -i 's|/var/ipfire/ovpn/ca/dh1024.pem|/etc/ssl/ffdhe4096.pem|' /var/ipfire/ovpn/server.conf /var/ipfire/ovpn/n2nconf/*/*.conf
conducts this task properly. I will update the update.sh script and take the liberty to amend this change to backup.pl straight away. I'll get back to you bilaterally for the rest of C172.
Thanks, and best regards, Peter Müller
Best, -Michael
return 0 }
-- 2.35.3