diff --git a/Linux/SSH/README.md b/Linux/SSH/README.md index 9501658..e7a750d 100644 --- a/Linux/SSH/README.md +++ b/Linux/SSH/README.md @@ -6,10 +6,30 @@ SSH_CONFIG_DIR="/etc/ssh/sshd_config.d" SSH_MAIN_CONFIG="/etc/ssh/sshd_config" SSH_CONFIG_FILE="$SSH_CONFIG_DIR/secure.conf" +ED25519_KEY="/etc/ssh/ssh_host_ed25519_key" + +# Farben definieren +RED='\033[1;31m' +GREEN='\033[1;32m' +YELLOW='\033[1;33m' +BLUE='\033[1;34m' +RESET='\033[0m' + +log() { + echo -e "${GREEN}$1${RESET}" +} + +warn() { + echo -e "${YELLOW}$1${RESET}" +} + +error() { + echo -e "${RED}$1${RESET}" +} # Überprüfe und installiere sudo, falls nicht vorhanden if ! command -v sudo &> /dev/null; then - echo "sudo ist nicht installiert. Versuche, sudo zu installieren..." + warn "sudo ist nicht installiert. Versuche, sudo zu installieren..." if command -v apt &> /dev/null; then apt update && apt install -y sudo @@ -18,16 +38,16 @@ if ! command -v sudo &> /dev/null; then elif command -v apk &> /dev/null; then apk add sudo else - echo "Nicht unterstütztes System. Bitte sudo manuell installieren." + error "Nicht unterstütztes System. Bitte sudo manuell installieren." exit 1 fi else - echo "sudo ist bereits installiert." + log "sudo ist bereits installiert." fi # Installiere OpenSSH-Server, falls nicht vorhanden if ! command -v sshd &> /dev/null; then - echo "OpenSSH-Server wird installiert..." + warn "OpenSSH-Server wird installiert..." if command -v apt &> /dev/null; then sudo apt update && sudo apt install -y openssh-server @@ -36,20 +56,30 @@ if ! command -v sshd &> /dev/null; then elif command -v apk &> /dev/null; then sudo apk add openssh else - echo "Nicht unterstütztes System. Bitte OpenSSH manuell installieren." + error "Nicht unterstütztes System. Bitte OpenSSH manuell installieren." exit 1 fi else - echo "OpenSSH-Server ist bereits installiert." + log "OpenSSH-Server ist bereits installiert." +fi + +# Generiere fehlende Host-Schlüssel (Ed25519) +if [ ! -f "$ED25519_KEY" ]; then + warn "Host-Schlüssel fehlt. Generiere ssh_host_ed25519_key..." + sudo ssh-keygen -t ed25519 -f $ED25519_KEY -N "" + sudo chown root:root $ED25519_KEY + sudo chmod 600 $ED25519_KEY +else + log "Host-Schlüssel ssh_host_ed25519_key ist bereits vorhanden." fi # SSHD-Konfigurationsverzeichnis sicherstellen und alte Konfigs löschen -echo "Lösche bestehende Konfigurationen in $SSH_CONFIG_DIR ..." +warn "Lösche bestehende Konfigurationen in $SSH_CONFIG_DIR ..." sudo mkdir -p $SSH_CONFIG_DIR sudo rm -f $SSH_CONFIG_DIR/* # Haupt-sshd_config aufräumen und Include setzen -echo "Passe die Haupt-sshd_config an..." +warn "Passe die Haupt-sshd_config an..." sudo tee $SSH_MAIN_CONFIG > /dev/null </dev/null; then - echo "Benutzer $user existiert." + log "Benutzer $user existiert." VALID_USERS+="$user " else - read -p "Benutzer $user existiert nicht. Soll dieser erstellt werden? (y/n): " CREATE_USER + echo -en "${BLUE}Benutzer $user existiert nicht. Soll dieser erstellt werden? (y/n): ${RESET}" + read CREATE_USER if [ "$CREATE_USER" == "y" ]; then sudo adduser $user sudo passwd $user sudo usermod -aG wheel $user - echo "Benutzer $user wurde erstellt und zur sudo-Gruppe hinzugefügt." + log "Benutzer $user wurde erstellt und zur sudo-Gruppe hinzugefügt." # SSH-Verzeichnis und authorized_keys erstellen sudo mkdir -p /home/$user/.ssh @@ -80,9 +112,11 @@ for user in $SSH_USERS; do sudo chmod 700 /home/$user/.ssh sudo chmod 600 /home/$user/.ssh/authorized_keys - read -p "Möchtest du einen SSH Public Key für $user hinzufügen? (y/n): " ADD_KEY + echo -en "${BLUE}Möchtest du einen SSH Public Key für $user hinzufügen? (y/n): ${RESET}" + read ADD_KEY if [ "$ADD_KEY" == "y" ]; then - read -p "Füge den SSH Public Key hier ein: " SSH_KEY + echo -en "${BLUE}Füge den SSH Public Key hier ein: ${RESET}" + read SSH_KEY echo "$SSH_KEY" | sudo tee -a /home/$user/.ssh/authorized_keys fi VALID_USERS+="$user " @@ -91,7 +125,7 @@ for user in $SSH_USERS; do done # SSH-Konfigurationsdatei erstellen -echo "Erstelle SSH-Konfigurationsdatei..." +warn "Erstelle SSH-Konfigurationsdatei..." sudo tee $SSH_CONFIG_FILE > /dev/null <