From 4487e384b896e32bb880aae5d3281aa6bb6e624d Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 11:40:41 +0100 Subject: [PATCH 01/21] While configuring and in the summary, display both IPv6 and IPv4. --- du_setup.sh | 39 +++++++++++++++++++++++++++++---------- 1 file changed, 29 insertions(+), 10 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index 52a66ce..4b96f81 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -1,8 +1,9 @@ #!/bin/bash # Debian and Ubuntu Server Hardening Interactive Script -# Version: 0.65 | 2025-08-19 +# Version: 0.66 | 2025-08-26 # Changelog: +# - v0.66: While configuring and in the summary, display both IPv6 and IPv4. # - v0.65: If reconfigure locales - appy newly configured locale to the current environment. # - v0.64: Tested at Debian 13 to confirm it works as expected # - v0.63: Added ssh install in key packages @@ -65,7 +66,7 @@ set -euo pipefail # Exit on error, undefined vars, pipe failures # --- Update Configuration --- -CURRENT_VERSION="0.65" +CURRENT_VERSION="0.66" SCRIPT_URL="https://raw.githubusercontent.com/buildplan/du_setup/refs/heads/main/du_setup.sh" CHECKSUM_URL="${SCRIPT_URL}.sha256" @@ -126,7 +127,7 @@ print_header() { echo -e "${CYAN}╔═════════════════════════════════════════════════════════════════╗${NC}" echo -e "${CYAN}║ ║${NC}" echo -e "${CYAN}║ DEBIAN/UBUNTU SERVER SETUP AND HARDENING SCRIPT ║${NC}" - echo -e "${CYAN}║ v0.65 | 2025-08-19 ║${NC}" + echo -e "${CYAN}║ v0.66 | 2025-08-26 ║${NC}" echo -e "${CYAN}║ ║${NC}" echo -e "${CYAN}╚═════════════════════════════════════════════════════════════════╝${NC}" echo @@ -446,15 +447,22 @@ collect_config() { SSH_PORT=${SSH_PORT:-2222} if validate_port "$SSH_PORT"; then break; else print_error "Invalid port number."; fi done - SERVER_IP=$(curl -s https://ifconfig.me 2>/dev/null || echo "unknown") - print_info "Detected server IP: $SERVER_IP" + SERVER_IP_V4=$(curl -4 -s https://ifconfig.me 2>/dev/null || echo "unknown") + SERVER_IP_V6=$(curl -6 -s https://ifconfig.me 2>/dev/null || echo "not available") + print_info "Detected server IPv4: $SERVER_IP_V4" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + print_info "Detected server IPv6: $SERVER_IP_V6" + fi echo -e "\n${YELLOW}Configuration Summary:${NC}" echo -e " Username: $USERNAME" echo -e " Hostname: $SERVER_NAME" echo -e " SSH Port: $SSH_PORT" - echo -e " Server IP: $SERVER_IP" + echo -e " Server IPv4: $SERVER_IP_V4" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + echo -e " Server IPv6: $SERVER_IP_V6" + fi if ! confirm "\nContinue with this configuration?" "y"; then print_info "Exiting."; exit 0; fi - log "Configuration collected: USER=$USERNAME, HOST=$SERVER_NAME, PORT=$SSH_PORT" + log "Configuration collected: USER=$USERNAME, HOST=$SERVER_NAME, PORT=$SSH_PORT, IPV4=$SERVER_IP_V4, IPV6=$SERVER_IP_V6" } install_packages() { @@ -778,7 +786,12 @@ configure_ssh() { fi print_warning "SSH Key Authentication Required for Next Steps!" - echo -e "${CYAN}Test SSH access from a SEPARATE terminal now: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP${NC}" + echo -e "${CYAN}Test SSH access from a SEPARATE terminal now:${NC}" + echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + echo -e "${CYAN} Or IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@[$SERVER_IP_V6]${NC}" + fi + if ! confirm "Can you successfully log in using your SSH key?"; then print_error "SSH key authentication is mandatory to proceed." return 1 @@ -841,7 +854,10 @@ EOF fi print_warning "CRITICAL: Test new SSH connection in a SEPARATE terminal NOW!" - print_info "Use: ssh -p $SSH_PORT $USERNAME@$SERVER_IP" + print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + print_info "Or IPv6: ssh -p $SSH_PORT $USERNAME@[$SERVER_IP_V6]" + fi # Retry loop for SSH connection test local retry_count=0 @@ -2323,7 +2339,10 @@ generate_summary() { printf " %-20s%s\n" "Admin User:" "$USERNAME" printf " %-20s%s\n" "Hostname:" "$SERVER_NAME" printf " %-20s%s\n" "SSH Port:" "$SSH_PORT" - printf " %-20s%s\n" "Server IP:" "$SERVER_IP" + printf " %-20s%s\n" "Server IPv4:" "$SERVER_IP_V4" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + printf " %-20s%s\n" "Server IPv6:" "$SERVER_IP_V6" + fi # --- Kernel Hardening Status --- if [[ -f /etc/sysctl.d/99-du-hardening.conf ]]; then From 51571aa09f67a520e28161e3857a671b6356f846 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 12:06:02 +0100 Subject: [PATCH 02/21] update sha256 v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index ff301dc..ee6174a 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -5b6b07eaa69643d2928d9bdcb847d74ac8d4a31d80be64b5b43efc33f10a9567 du_setup.sh +3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33 du_setup.sh From 52b5f534ef39d27134743df6c930324dd36c4f1a Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 12:06:22 +0100 Subject: [PATCH 03/21] version bump --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 3eb0c41..a7acd8f 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ [![Shell](https://img.shields.io/badge/Shell-Bash%204.4%2B-green)](https://www.gnu.org/software/bash/) [![Type](https://img.shields.io/badge/Type-Setup%20%26%20Hardening-blue)](https://github.com/buildplan/du_setup) -**Version:** v0.65 +**Version:** v0.66 -**Last Updated:** 2025-08-19 +**Last Updated:** 2025-08-26 **Compatible With:** @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`5b6b07eaa69643d2928d9bdcb847d74ac8d4a31d80be64b5b43efc33f10a9567` +`3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo 5b6b07eaa69643d2928d9bdcb847d74ac8d4a31d80be64b5b43efc33f10a9567 du_setup.sh | sha256sum --check - +echo 3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33 du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script From 0ecb31178410ad8090d58b2fd807159e908d1025 Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 14:05:48 +0100 Subject: [PATCH 04/21] show ipv4 and ipv6 both in summary --- du_setup.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index 4b96f81..e686e4f 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -2418,9 +2418,13 @@ generate_summary() { fi echo - # --- Post-Reboot Verification --- + # --- Post-Reboot Verification Steps --- echo -e "${YELLOW}Post-Reboot Verification Steps:${NC}" - printf " %-25s ${CYAN}%s${NC}\n" "- SSH access:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP" + echo -e " - SSH access:" + printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + if [[ "$SERVER_IP_V6" != "not available" ]]; then + printf " %-21s ${CYAN}%s${NC}\n" "- Or IPv6:" "ssh -p $SSH_PORT $USERNAME@[$SERVER_IP_V6]" + fi printf " %-25s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" printf " %-25s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" printf " %-25s ${CYAN}%s${NC}\n" "- Fail2Ban sshd jail:" "sudo fail2ban-client status sshd" From 9566dfb958113cd8890f7e0105c30ad84d020915 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 14:08:40 +0100 Subject: [PATCH 05/21] sha256 for v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index ee6174a..a451207 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33 du_setup.sh +dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979 du_setup.sh From bf5338b7c1447281dd7610886483c89447e719d4 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 14:09:54 +0100 Subject: [PATCH 06/21] version bump --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a7acd8f..a6036ed 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33` +`dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo 3d40a44dbd1d6d777a75e0a0c920818a5ed85b8a68db55c1ec322b92df15ab33 du_setup.sh | sha256sum --check - +echo dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979 du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script From a841f7bb3099fbb5e620f7173cc1ba6e25ac61ef Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 15:09:09 +0100 Subject: [PATCH 07/21] show both ipv6 and ipv4 for config and summary --- du_setup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index e686e4f..2b3a756 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -789,7 +789,7 @@ configure_ssh() { echo -e "${CYAN}Test SSH access from a SEPARATE terminal now:${NC}" echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" if [[ "$SERVER_IP_V6" != "not available" ]]; then - echo -e "${CYAN} Or IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@[$SERVER_IP_V6]${NC}" + echo -e "${CYAN} Or IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" fi if ! confirm "Can you successfully log in using your SSH key?"; then @@ -856,7 +856,7 @@ EOF print_warning "CRITICAL: Test new SSH connection in a SEPARATE terminal NOW!" print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" if [[ "$SERVER_IP_V6" != "not available" ]]; then - print_info "Or IPv6: ssh -p $SSH_PORT $USERNAME@[$SERVER_IP_V6]" + print_info "Or IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi # Retry loop for SSH connection test @@ -2423,7 +2423,7 @@ generate_summary() { echo -e " - SSH access:" printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" if [[ "$SERVER_IP_V6" != "not available" ]]; then - printf " %-21s ${CYAN}%s${NC}\n" "- Or IPv6:" "ssh -p $SSH_PORT $USERNAME@[$SERVER_IP_V6]" + printf " %-21s ${CYAN}%s${NC}\n" "- Or IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi printf " %-25s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" printf " %-25s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" From 65868b465de29d4e05cfccf7529ae242e70273cc Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 15:41:00 +0100 Subject: [PATCH 08/21] if available show both ipv6 and ipv4 in summary --- du_setup.sh | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index 2b3a756..eeae07c 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -454,12 +454,12 @@ collect_config() { print_info "Detected server IPv6: $SERVER_IP_V6" fi echo -e "\n${YELLOW}Configuration Summary:${NC}" - echo -e " Username: $USERNAME" - echo -e " Hostname: $SERVER_NAME" - echo -e " SSH Port: $SSH_PORT" - echo -e " Server IPv4: $SERVER_IP_V4" + printf " %-15s %s\n" "Username:" "$USERNAME" + printf " %-15s %s\n" "Hostname:" "$SERVER_NAME" + printf " %-15s %s\n" "SSH Port:" "$SSH_PORT" + printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" if [[ "$SERVER_IP_V6" != "not available" ]]; then - echo -e " Server IPv6: $SERVER_IP_V6" + printf " %-15s %s\n" "Server IPv6:" "$SERVER_IP_V6" fi if ! confirm "\nContinue with this configuration?" "y"; then print_info "Exiting."; exit 0; fi log "Configuration collected: USER=$USERNAME, HOST=$SERVER_NAME, PORT=$SSH_PORT, IPV4=$SERVER_IP_V4, IPV6=$SERVER_IP_V6" @@ -2336,12 +2336,12 @@ generate_summary() { # --- Main Configuration Summary --- echo -e "${YELLOW}Configuration Summary:${NC}" - printf " %-20s%s\n" "Admin User:" "$USERNAME" - printf " %-20s%s\n" "Hostname:" "$SERVER_NAME" - printf " %-20s%s\n" "SSH Port:" "$SSH_PORT" - printf " %-20s%s\n" "Server IPv4:" "$SERVER_IP_V4" + printf " %-15s %s\n" "Admin User:" "$USERNAME" + printf " %-15s %s\n" "Hostname:" "$SERVER_NAME" + printf " %-15s %s\n" "SSH Port:" "$SSH_PORT" + printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" if [[ "$SERVER_IP_V6" != "not available" ]]; then - printf " %-20s%s\n" "Server IPv6:" "$SERVER_IP_V6" + printf " %-15s %s\n" "Server IPv6:" "$SERVER_IP_V6" fi # --- Kernel Hardening Status --- From d8648861082f4ebbd3ede2e363fd98610f97e5df Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 16:14:58 +0100 Subject: [PATCH 09/21] hide ipv4 on ipv6 only setup --- du_setup.sh | 40 ++++++++++++++++++++++++++-------------- 1 file changed, 26 insertions(+), 14 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index eeae07c..cd7d048 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -449,7 +449,9 @@ collect_config() { done SERVER_IP_V4=$(curl -4 -s https://ifconfig.me 2>/dev/null || echo "unknown") SERVER_IP_V6=$(curl -6 -s https://ifconfig.me 2>/dev/null || echo "not available") - print_info "Detected server IPv4: $SERVER_IP_V4" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + print_info "Detected server IPv4: $SERVER_IP_V4" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then print_info "Detected server IPv6: $SERVER_IP_V6" fi @@ -457,7 +459,9 @@ collect_config() { printf " %-15s %s\n" "Username:" "$USERNAME" printf " %-15s %s\n" "Hostname:" "$SERVER_NAME" printf " %-15s %s\n" "SSH Port:" "$SSH_PORT" - printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then printf " %-15s %s\n" "Server IPv6:" "$SERVER_IP_V6" fi @@ -787,7 +791,9 @@ configure_ssh() { print_warning "SSH Key Authentication Required for Next Steps!" echo -e "${CYAN}Test SSH access from a SEPARATE terminal now:${NC}" - echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then echo -e "${CYAN} Or IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" fi @@ -854,7 +860,9 @@ EOF fi print_warning "CRITICAL: Test new SSH connection in a SEPARATE terminal NOW!" - print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then print_info "Or IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi @@ -2339,7 +2347,9 @@ generate_summary() { printf " %-15s %s\n" "Admin User:" "$USERNAME" printf " %-15s %s\n" "Hostname:" "$SERVER_NAME" printf " %-15s %s\n" "SSH Port:" "$SSH_PORT" - printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + printf " %-15s %s\n" "Server IPv4:" "$SERVER_IP_V4" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then printf " %-15s %s\n" "Server IPv6:" "$SERVER_IP_V6" fi @@ -2421,21 +2431,23 @@ generate_summary() { # --- Post-Reboot Verification Steps --- echo -e "${YELLOW}Post-Reboot Verification Steps:${NC}" echo -e " - SSH access:" - printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + fi if [[ "$SERVER_IP_V6" != "not available" ]]; then printf " %-21s ${CYAN}%s${NC}\n" "- Or IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi - printf " %-25s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" - printf " %-25s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" - printf " %-25s ${CYAN}%s${NC}\n" "- Fail2Ban sshd jail:" "sudo fail2ban-client status sshd" - printf " %-25s ${CYAN}%s${NC}\n" "- Fail2Ban ufw jail:" "sudo fail2ban-client status ufw-probes" - printf " %-25s ${CYAN}%s${NC}\n" "- Swap status:" "sudo swapon --show && free -h" - printf " %-25s ${CYAN}%s${NC}\n" "- Kernel settings:" "sudo sysctl fs.protected_hardlinks kernel.yama.ptrace_scope" + printf " %-28s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" + printf " %-28s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" + printf " %-28s ${CYAN}%s${NC}\n" "- Fail2Ban sshd jail:" "sudo fail2ban-client status sshd" + printf " %-28s ${CYAN}%s${NC}\n" "- Fail2Ban ufw jail:" "sudo fail2ban-client status ufw-probes" + printf " %-28s ${CYAN}%s${NC}\n" "- Swap status:" "sudo swapon --show && free -h" + printf " %-28s ${CYAN}%s${NC}\n" "- Kernel settings:" "sudo sysctl fs.protected_hardlinks kernel.yama.ptrace_scope" if command -v docker >/dev/null 2>&1; then - printf " %-25s ${CYAN}%s${NC}\n" "- Docker status:" "docker ps" + printf " %-28s ${CYAN}%s${NC}\n" "- Docker status:" "docker ps" fi if command -v tailscale >/dev/null 2>&1; then - printf " %-25s ${CYAN}%s${NC}\n" "- Tailscale status:" "tailscale status" + printf " %-28s ${CYAN}%s${NC}\n" "- Tailscale status:" "tailscale status" fi if [[ -f /root/run_backup.sh ]]; then echo -e " Remote Backup:" From b84355eca35b215ae202fb414f91733682f2f717 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 16:20:11 +0100 Subject: [PATCH 10/21] sha256 for v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index a451207..a147d18 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979 du_setup.sh +b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad du_setup.sh From 6c48279dfd623d6d077643db5365355f3de30dd7 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 16:21:38 +0100 Subject: [PATCH 11/21] version bump --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a6036ed..e356594 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979` +`b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo dccfec8e19289b957222d8b4d8ec7e2791c6e14a8b8c294059b38fd7f071b979 du_setup.sh | sha256sum --check - +echo b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script From 6f4f2c159fb5e59532542118c857eaba7a537cd6 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 16:26:40 +0100 Subject: [PATCH 12/21] hide ipv4 on ipv6 only setup --- du_setup.sh | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/du_setup.sh b/du_setup.sh index cd7d048..164229c 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -633,7 +633,12 @@ setup_user() { echo -e "${CYAN}3. On your local machine, set permissions for the private key:${NC}" echo -e "${CYAN} chmod 600 ~/.ssh/${USERNAME}_key${NC}" echo -e "${CYAN}4. Connect to the server using:${NC}" - echo -e "${CYAN} ssh -i ~/.ssh/${USERNAME}_key -p $SSH_PORT $USERNAME@$SERVER_IP${NC}" + if [[ "$SERVER_IP_V4" != "unknown" ]]; then + echo -e "${CYAN} ssh -i ~/.ssh/${USERNAME}_key -p $SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" + fi + if [[ "$SERVER_IP_V6" != "not available" ]]; then + echo -e "${CYAN} ssh -i ~/.ssh/${USERNAME}_key -p $SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" + fi echo echo -e "${PURPLE}ℹ The private key file ($TEMP_KEY_FILE) will be deleted after this step.${NC}" read -rp "$(echo -e "${CYAN}Press Enter after you have saved the keys securely...${NC}")" From 65100e9c6ea67da12dd82f3a1b3a32ffa2cf912c Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 16:27:00 +0100 Subject: [PATCH 13/21] sha256 for v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index a147d18..2fd5f02 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad du_setup.sh +f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203 du_setup.sh From eab6b59198ba5c65928fd114ec622ef611abfa4a Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 16:28:12 +0100 Subject: [PATCH 14/21] version bump --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index e356594..a19a7b4 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad` +`f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo b0c8b156ed06c61562fbed81015ae8e64c436ee7fa649dfb36123e02aab734ad du_setup.sh | sha256sum --check - +echo f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203 du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script From faffed1872592af2904177f72151ff08bf56f744 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 20:18:35 +0100 Subject: [PATCH 15/21] minor improvements for ipv6 only systems --- du_setup.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index 164229c..fb88595 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -800,7 +800,7 @@ configure_ssh() { echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - echo -e "${CYAN} Or IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" + echo -e "${CYAN} Using IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" fi if ! confirm "Can you successfully log in using your SSH key?"; then @@ -869,7 +869,7 @@ EOF print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - print_info "Or IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" + print_info "Use IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi # Retry loop for SSH connection test @@ -2440,7 +2440,7 @@ generate_summary() { printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - printf " %-21s ${CYAN}%s${NC}\n" "- Or IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" + printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi printf " %-28s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" printf " %-28s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" From bf20dcdd07c8b09415f71311e17e53f0f04ff6d1 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 20:19:33 +0100 Subject: [PATCH 16/21] sha256 for v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index 2fd5f02..9aec9ae 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203 du_setup.sh +0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d du_setup.sh From 1d291597da6b0b836221380cd300f0d2f99453f2 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 20:21:55 +0100 Subject: [PATCH 17/21] hash check update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a19a7b4..b1ebbd0 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203` +`0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo f72d91643b28939e29b9ffb3b3022dafc8516590cd95286de280a8c9468a1203 du_setup.sh | sha256sum --check - +echo 0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script From 555bb424080d445fe9fb6dc1dd5ac5ab65b9e11b Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 20:39:06 +0100 Subject: [PATCH 18/21] formatting --- du_setup.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh b/du_setup.sh index fb88595..326e24c 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -800,7 +800,7 @@ configure_ssh() { echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - echo -e "${CYAN} Using IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" + echo -e "${CYAN} Using IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" fi if ! confirm "Can you successfully log in using your SSH key?"; then From 62002b8188cbe3dce49eef81ba0f23561425a9d9 Mon Sep 17 00:00:00 2001 From: buildplan <170122315+buildplan@users.noreply.github.com> Date: Tue, 26 Aug 2025 21:05:00 +0100 Subject: [PATCH 19/21] formatting --- du_setup.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/du_setup.sh b/du_setup.sh index 326e24c..51559e4 100644 --- a/du_setup.sh +++ b/du_setup.sh @@ -800,7 +800,7 @@ configure_ssh() { echo -e "${CYAN} Using IPv4: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V4${NC}" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - echo -e "${CYAN} Using IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" + echo -e "${CYAN} Using IPv6: ssh -p $CURRENT_SSH_PORT $USERNAME@$SERVER_IP_V6${NC}" fi if ! confirm "Can you successfully log in using your SSH key?"; then @@ -869,7 +869,7 @@ EOF print_info "Use IPv4: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - print_info "Use IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" + print_info "Use IPv6: ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi # Retry loop for SSH connection test @@ -2437,10 +2437,10 @@ generate_summary() { echo -e "${YELLOW}Post-Reboot Verification Steps:${NC}" echo -e " - SSH access:" if [[ "$SERVER_IP_V4" != "unknown" ]]; then - printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" + printf " %-26s ${CYAN}%s${NC}\n" "- Using IPv4:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V4" fi if [[ "$SERVER_IP_V6" != "not available" ]]; then - printf " %-21s ${CYAN}%s${NC}\n" "- Using IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" + printf " %-26s ${CYAN}%s${NC}\n" "- Using IPv6:" "ssh -p $SSH_PORT $USERNAME@$SERVER_IP_V6" fi printf " %-28s ${CYAN}%s${NC}\n" "- Firewall rules:" "sudo ufw status verbose" printf " %-28s ${CYAN}%s${NC}\n" "- Time sync:" "chronyc tracking" From c01f7036d04ee9ca887c0105b928acfb1f73dce5 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 21:29:05 +0100 Subject: [PATCH 20/21] sha256 for v0.66 --- du_setup.sh.sha256 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/du_setup.sh.sha256 b/du_setup.sh.sha256 index 9aec9ae..ea24be0 100644 --- a/du_setup.sh.sha256 +++ b/du_setup.sh.sha256 @@ -1 +1 @@ -0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d du_setup.sh +552a23eb55417266e1b8c048f80b81323630c9dadbacdbf0fb1e3781cb5978b1 du_setup.sh From f9aae47b92040ad38b4a9485c669900610a0e985 Mon Sep 17 00:00:00 2001 From: buildplan Date: Tue, 26 Aug 2025 21:31:59 +0100 Subject: [PATCH 21/21] hash check update --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1ebbd0..117256c 100644 --- a/README.md +++ b/README.md @@ -83,12 +83,12 @@ sha256sum du_setup.sh Compare the output hash to the one below. They must match exactly. -`0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d` +`552a23eb55417266e1b8c048f80b81323630c9dadbacdbf0fb1e3781cb5978b1` Or echo the hash to check, it should output: `du_setup.sh: OK` ``` -echo 0fd83600035b4d08ee574235bf95a03fea81e680db0caa5a6d77c6f7f5db203d du_setup.sh | sha256sum --check - +echo 552a23eb55417266e1b8c048f80b81323630c9dadbacdbf0fb1e3781cb5978b1 du_setup.sh | sha256sum --check - ``` ### 3\. Run the Script