#!/bin/bash #Tento skript provede základní nastavení serveru včetně vytvoření nového uživatele, nastavení SSH přístupu a konfigurace firewallu. ################################################################################################################## # Written to be used on 64 bits computers # Author : Archos # Website : https://arch-linux.cz ################################################################################################################## ################################################################################################################## # # PEČLIVĚ SKRIPT ZKONTROLUJTE. SPUŠTĚNÍ JE NA VAŠE VLASTNÍ RIZIKO. # ################################################################################################################## # Aktualizace systému apt update && sudo apt upgrade -y # Zadejte uživatelské jméno pro nového uživatele read -p "Zadejte jméno nového uživatele: " USERNAME # Zadejte SSH port (výchozí port 2022) read -p "Zadejte nový SSH port (výchozí 2022): " SSH_PORT SSH_PORT=${SSH_PORT:-2022} # Vytvoření nového uživatele a přidání do skupiny sudo useradd -m -s /bin/bash $USERNAME usermod -aG sudo $USERNAME # Nastavení hesla pro nového uživatele echo "Nastavte heslo pro uživatele $USERNAME:" sudo passwd $USERNAME # Nastavení SSH klíčů pro nového uživatele mkdir -p /home/$USERNAME/.ssh chmod 700 /home/$USERNAME/.ssh read -p "Vložte veřejný klíč pro uživatele $USERNAME: " USER_SSH_KEY echo $USER_SSH_KEY | sudo tee /home/$USERNAME/.ssh/authorized_keys chmod 600 /home/$USERNAME/.ssh/authorized_keys chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh # Nastavení firewallu (ufw) if ! command -v ufw &> /dev/null then apt update apt install ufw -y fi ufw default deny incoming ufw default allow outgoing ufw allow $SSH_PORT/tcp echo "y" | ufw enable # Změna SSH konfigurace sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config sed -i 's/#PermitRootLogin.*/PermitRootLogin no/' /etc/ssh/sshd_config sed -i 's/PermitRootLogin .*/PermitRootLogin no/' /etc/ssh/sshd_config sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config sed -i 's/PasswordAuthentication .*/PasswordAuthentication no/' /etc/ssh/sshd_config sed -i 's/#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config sed -i 's/PubkeyAuthentication .*/PubkeyAuthentication yes/' /etc/ssh/sshd_config # Restart SSH služby, aby se změny projevily if systemctl list-units --type=service | grep -q "ssh.service"; then systemctl restart ssh elif systemctl list-units --type=service | grep -q "sshd.service"; then systemctl restart sshd else echo "SSH služba nebyla nalezena. Zkontrolujte název služby." fi echo "Nastavení serveru je dokončeno." echo "Připojte se k serveru pomocí: ssh -p $SSH_PORT $USERNAME@$(curl -s ifconfig.me)"