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: 250)
Ein Metaversum sind viele kleine Räume, die nahtlos aneinander passen,
sowie direkt sichtbar und begehbar sind, als wäre es aus einem Guss.



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
RE: Server sichern mit ufw - von nihal - 23.02.2025, 11:21

Gehe zu:


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