Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Server sichern mit ufw
#5
# ? Was dieses Skript macht:


# 1️⃣ Firewall & Sicherheitsmaßnahmen

# ✅ UFW (Uncomplicated Firewall) prüfen & installieren
# ➡ Falls UFW nicht installiert ist, wird sie automatisch installiert.

# ✅ SSH-Port ändern
# ➡ Der Benutzer kann einen neuen SSH-Port wählen, um Angriffe auf Port 22 zu vermeiden.

# ✅ SSH-Schlüssel-Authentifizierung aktivieren
# ➡ Deaktiviert das Login per Passwort und erlaubt nur noch Schlüssel-Authentifizierung.

# ✅ Automatische Sicherheitsupdates aktivieren
# ➡ Installiert unattended-upgrades, um sicherzustellen, dass dein Server immer aktuell bleibt.

# ✅ Fail2Ban installieren & aktivieren
# ➡ Schützt vor Brute-Force-Angriffen durch das automatische Sperren von IP-Adressen.


# 2️⃣ Offene Ports & Firewall-Regeln

# ✅ Alle offenen Ports anzeigen
# ➡ Zeigt, welche Ports von welchen Programmen genutzt werden (ss -tulpn).

# ✅ Benutzer entscheidet, welche Ports geöffnet werden
# ➡ Er kann manuell wählen, welche Ports über UFW freigegeben werden sollen.

# ✅ Firewall-Regeln anwenden
# ➡ Blockiert alle eingehenden Verbindungen, erlaubt aber ausgehenden Traffic.

# ✅ SSH-Dienst neu starten
# ➡ Wendet alle Änderungen an der SSH-Konfiguration an.


# 3️⃣ Erhöhte Sicherheit & Analyse

# ✅ Überprüfung fehlgeschlagener Login-Versuche
# ➡ Nutzt grep "Failed" /var/log/auth.log, um Angriffsversuche zu erkennen.

# ✅ Optionaler Portscan mit nmap
# ➡ Falls gewünscht, führt nmap einen umfassenden Scan aller 65.535 Ports durch.
# ? Warum ist dieses Skript wichtig?

# ✔ Minimiert Angriffsfläche: UFW schließt alle unnötigen Ports.
# ✔ Schützt gegen Brute-Force: SSH-Schlüssel & Fail2Ban sichern den Zugriff.
# ✔ Reduziert Sicherheitsrisiken: Automatische Updates verhindern Exploits.
# ✔ Gibt dir volle Kontrolle: Du entscheidest, welche Ports wirklich nötig sind.

Skript osmsafty.sh
PHP-Code:
#!/bin/bash

# Funktion zur Prüfung, ob UFW installiert ist
function check_ufw_installed {
    if ! 
command -v ufw &> /dev/nullthen
        
echo "UFW ist nicht installiert. Installation wird durchgeführt..."
        
sudo apt-get update
        sudo apt
-get install -y ufw
    
else
        echo 
"UFW ist bereits installiert."
    
fi
}

# Funktion zum Ändern des SSH-Ports
function change_ssh_port {
    echo 
"Gib den neuen SSH-Port ein (Standard: 22):"
    
read -r SSH_PORT

    
if [[ -"$SSH_PORT]]; then
        SSH_PORT
=22
    fi

    sudo sed 
-"s/^#Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config
    sudo sed 
-"s/^Port 22/Port $SSH_PORT/" /etc/ssh/sshd_config

    
echo "SSH-Port wurde auf $SSH_PORT geändert."
}

# Funktion zur Aktivierung der SSH-Schlüssel-Authentifizierung
function enable_ssh_keys {
    
sudo sed -'s/^#PubkeyAuthentication yes/PubkeyAuthentication yes/' /etc/ssh/sshd_config
    sudo sed 
-'s/^PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config
    
echo "SSH-Schlüssel-Authentifizierung wurde aktiviert."
}

# Funktion zur Generierung eines SSH-Schlüssels
function create_ssh_key {
    echo 
"Möchtest du ein neues SSH-Schlüsselpaar erstellen? (ja/nein)"
    
read -r choice
    
if [[ "$choice== "ja" ]]; then
        ssh
-keygen -t rsa -b 4096 -~/.ssh/id_rsa
        
echo "SSH-Schlüssel wurde erstellt."
    
fi
}

# Funktion zur Aktivierung automatischer Updates
function enable_auto_updates {
    echo 
"Aktiviere automatische Sicherheitsupdates..."
    
sudo apt-get install -y unattended-upgrades
    sudo dpkg
-reconfigure -plow unattended-upgrades
    
echo "Automatische Updates wurden aktiviert."
}

# Funktion zur Installation und Aktivierung von Fail2Ban
function install_fail2ban {
    echo 
"Installiere Fail2Ban..."
    
sudo apt-get update
    sudo apt
-get install -y fail2ban
    sudo systemctl enable fail2ban
    sudo systemctl start fail2ban
    
echo "Fail2Ban wurde installiert."
}

# Funktion zur Anzeige aktuell offener Ports
function list_ports {
    echo 
"Offene Ports auf diesem System:"
    
ss -tulpn awk '{print $1, $2, $5, $7}' column -t
}

# Funktion zur Konfiguration der benötigten Ports
function configure_ports {
    echo 
"Welche Ports sollen geöffnet werden? (Trenne sie mit Leerzeichen, z. B. '22 80 443')"
    
read -r PORTS

    
for PORT in $PORTS; do
        
sudo ufw allow "$PORT"
        
echo "Port $PORT wurde geöffnet."
    
done
}

# Funktion zur vollständigen Firewall-Konfiguration
function configure_firewall {
    echo 
"Konfiguriere Firewall..."
    
sudo ufw default deny incoming
    sudo ufw 
default allow outgoing
    sudo ufw enable
    
echo "Firewall-Regeln angewendet: Eingehender Traffic wird blockiert, ausgehender ist erlaubt."
}

# Funktion zum Scannen nach fehlgeschlagenen Login-Versuchen
function check_failed_logins {
    echo 
"Überprüfung fehlgeschlagener Login-Versuche..."
    
grep "Failed" /var/log/auth.log tail -20
}

# Funktion zum Durchführen eines Portscans mit nmap
function perform_portscan {
    echo 
"Möchtest du einen Portscan durchführen? (ja/nein)"
    
read -r choice
    
if [[ "$choice== "ja" ]]; then
        
echo "Gib die Ziel-IP für den Portscan ein:"
        
read -r TARGET_IP
        sudo nmap 
-Pn -sS -sV --version-all --reason -----osscan-guess -p0-65535 "$TARGET_IP"
    
fi
}

# Hier beginnt die Konfiguration

# UFW Installation prüfen
check_ufw_installed

# SSH-Port ändern
change_ssh_port

# SSH-Schlüssel-Authentifizierung aktivieren
enable_ssh_keys

# SSH-Schlüssel generieren (optional)
create_ssh_key

# Automatische Updates aktivieren
enable_auto_updates

# Fail2Ban installieren
install_fail2ban

# Offene Ports anzeigen
list_ports

# Benutzer soll selbst entscheiden, welche Ports wirklich geöffnet werden
configure_ports

# Firewall aktivieren und konfigurieren
configure_firewall

# SSH-Dienst neu starten
sudo systemctl restart ssh

# Überprüfung auf fehlgeschlagene Logins
check_failed_logins

# Optional: Portscan durchführen
perform_portscan

echo "Alle Sicherheitsmaßnahmen wurden erfolgreich angewendet!" 


Angehängte Dateien
.zip   osmsafty.zip (Größe: 2,29 KB / Downloads: 4)
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



[-] The following 3 users say Thank You to Manfred Aabye for this post:
  • Bogus Curry, Dorena Verne, Pius Noel
Zitieren


Nachrichten in diesem Thema
Server sichern mit ufw - von Manfred Aabye - 07.02.2025, 17:30
RE: Server sichern mit ufw - von Pius Noel - 09.02.2025, 18:45
RE: Server sichern mit ufw - von nihal - 09.02.2025, 22:52
RE: Server sichern mit ufw - von Manfred Aabye - 12.02.2025, 17:09
RE: Server sichern mit ufw - von Manfred Aabye - 15.02.2025, 11:57

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 7 Gast/Gäste