72 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			72 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
| #!/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)"
 | |
| 
 |