diff --git a/setup_server.sh b/setup_server.sh new file mode 100644 index 0000000..d616638 --- /dev/null +++ b/setup_server.sh @@ -0,0 +1,49 @@ +#!/bin/bash + +# 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 +sudo useradd -m -s /bin/bash $USERNAME +sudo usermod -aG sudo $USERNAME + +# Nastavení SSH klíčů pro nového uživatele +sudo mkdir -p /home/$USERNAME/.ssh +sudo 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 +sudo chmod 600 /home/$USERNAME/.ssh/authorized_keys +sudo chown -R $USERNAME:$USERNAME /home/$USERNAME/.ssh + +# Nastavení firewallu (ufw) +if ! command -v ufw &> /dev/null +then + sudo apt update + sudo apt install ufw -y +fi +sudo ufw default deny incoming +sudo ufw default allow outgoing +sudo ufw allow $SSH_PORT/tcp +echo "y" | sudo ufw enable + +# Změna SSH konfigurace +sudo sed -i "s/#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config +sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config +sudo sed -i 's/#PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config +sudo sed -i 's/#PubkeyAuthentication yes/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 + sudo systemctl restart ssh +elif systemctl list-units --type=service | grep -q "sshd.service"; then + sudo 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)"