From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 75BC31FF15F for ; Mon, 7 Oct 2024 11:22:34 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A69913AB81; Mon, 7 Oct 2024 11:22:57 +0200 (CEST) From: Christoph Heiss To: pve-devel@lists.proxmox.com Date: Mon, 7 Oct 2024 11:22:17 +0200 Message-ID: <20241007092218.723938-4-c.heiss@proxmox.com> X-Mailer: git-send-email 2.46.0 In-Reply-To: <20241007092218.723938-1-c.heiss@proxmox.com> References: <20241007092218.723938-1-c.heiss@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.028 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment RCVD_IN_VALIDITY_CERTIFIED_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_RPBL_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. RCVD_IN_VALIDITY_SAFE_BLOCKED 0.001 ADMINISTRATOR NOTICE: The query to Validity was blocked. See https://knowledge.validity.com/hc/en-us/articles/20961730681243 for more information. SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Subject: [pve-devel] [PATCH installer 3/3] auto-installer: raise minimum root password length to 8 characters X-BeenThere: pve-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox VE development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox VE development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pve-devel-bounces@lists.proxmox.com Sender: "pve-devel" .. in accordance with current NIST recommendations [0]. It's 2024; so reasonable to expect an 8-character-password at the minimum. [0] https://pages.nist.gov/800-63-4/sp800-63b.html#passwordver Signed-off-by: Christoph Heiss --- proxmox-auto-installer/src/utils.rs | 5 +++++ .../tests/resources/parse_answer/disk_match.json | 2 +- .../tests/resources/parse_answer/disk_match.toml | 2 +- .../tests/resources/parse_answer/disk_match_all.json | 2 +- .../tests/resources/parse_answer/disk_match_all.toml | 2 +- .../tests/resources/parse_answer/disk_match_any.json | 2 +- .../tests/resources/parse_answer/disk_match_any.toml | 2 +- .../tests/resources/parse_answer/minimal.json | 2 +- .../tests/resources/parse_answer/minimal.toml | 2 +- .../tests/resources/parse_answer/nic_matching.json | 2 +- .../tests/resources/parse_answer/nic_matching.toml | 2 +- .../tests/resources/parse_answer/specific_nic.json | 2 +- .../tests/resources/parse_answer/specific_nic.toml | 2 +- proxmox-auto-installer/tests/resources/parse_answer/zfs.json | 2 +- proxmox-auto-installer/tests/resources/parse_answer/zfs.toml | 2 +- 15 files changed, 19 insertions(+), 14 deletions(-) diff --git a/proxmox-auto-installer/src/utils.rs b/proxmox-auto-installer/src/utils.rs index 45ad222..e0dd2ae 100644 --- a/proxmox-auto-installer/src/utils.rs +++ b/proxmox-auto-installer/src/utils.rs @@ -13,6 +13,7 @@ use proxmox_installer_common::{ setup::{ InstallConfig, InstallRootPassword, InstallZfsOption, LocaleInfo, RuntimeInfo, SetupInfo, }, + ROOT_PASSWORD_MIN_LENGTH, }; use serde::{Deserialize, Serialize}; @@ -309,6 +310,10 @@ fn verify_root_password_settings(answer: &Answer) -> Result<()> { } else if answer.global.root_password.is_none() && answer.global.root_password_hashed.is_none() { bail!("One of `global.root_password` or `global.root_password_hashed` must be set"); + } else if answer.global.root_password.is_some() + && answer.global.root_password.as_ref().map(|s| s.len()) < Some(ROOT_PASSWORD_MIN_LENGTH) + { + bail!("`global.root_password` must be at least {ROOT_PASSWORD_MIN_LENGTH} characters long"); } else { Ok(()) } diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json index 6c8d6d9..a2f8b6f 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.json @@ -18,7 +18,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "eno1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "timezone": "Europe/Vienna", "zfs_opts": { "arc_max": 2048, diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml index 68676ac..5177eb2 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-dhcp" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.json index 2d2e94e..a6567c2 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.json @@ -15,7 +15,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "eno1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "timezone": "Europe/Vienna", "zfs_opts": { "arc_max": 2048, diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.toml index f20a4fe..60daa54 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_all.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-dhcp" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.json b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.json index 1f3b2eb..f9d29f7 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.json @@ -22,7 +22,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "eno1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "timezone": "Europe/Vienna", "zfs_opts": { "arc_max": 2048, diff --git a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.toml b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.toml index e1f33c9..6e45c5b 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/disk_match_any.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-dhcp" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/minimal.json b/proxmox-auto-installer/tests/resources/parse_answer/minimal.json index 9fe9150..1db23e6 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/minimal.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/minimal.json @@ -12,7 +12,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "eno1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "target_hd": "/dev/sda", "timezone": "Europe/Vienna" } diff --git a/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml b/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml index db8fec4..16f355c 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/minimal.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-dhcp" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.json b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.json index 610060e..ba0a47f 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.json @@ -12,7 +12,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "enp65s0f0", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "target_hd": "/dev/sda", "timezone": "Europe/Vienna" } diff --git a/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.toml b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.toml index 087c37f..eb6130a 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/nic_matching.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-answer" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.json b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.json index 5f456bb..fcf26fb 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.json @@ -12,7 +12,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "enp129s0f1np1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "target_hd": "/dev/sda", "timezone": "Europe/Vienna" } diff --git a/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.toml b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.toml index 60f7f14..4ea49bc 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/specific_nic.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-answer" diff --git a/proxmox-auto-installer/tests/resources/parse_answer/zfs.json b/proxmox-auto-installer/tests/resources/parse_answer/zfs.json index 025dd8f..710b4d6 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/zfs.json +++ b/proxmox-auto-installer/tests/resources/parse_answer/zfs.json @@ -16,7 +16,7 @@ "keymap": "de", "mailto": "mail@no.invalid", "mngmt_nic": "eno1", - "root_password": { "plain": "123456" }, + "root_password": { "plain": "12345678" }, "timezone": "Europe/Vienna", "zfs_opts": { "arc_max": 2048, diff --git a/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml b/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml index 4d48998..369fd63 100644 --- a/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml +++ b/proxmox-auto-installer/tests/resources/parse_answer/zfs.toml @@ -4,7 +4,7 @@ country = "at" fqdn = "pveauto.testinstall" mailto = "mail@no.invalid" timezone = "Europe/Vienna" -root_password = "123456" +root_password = "12345678" [network] source = "from-dhcp" -- 2.46.0 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel