← Alle Guides
🔒 Ports & Dienste

MySQL (Port 3306) absichern

MySQL/MariaDB sollte niemals oeffentlich erreichbar sein. Angreifer koennen Brute-Force-Angriffe auf Datenbank-Zugaenge durchfuehren.
Risiko: Vollstaendiger Datenverlust, Datendiebstahl, Ransomware auf Datenbank-Ebene.

1. MySQL auf localhost binden

MySQL soll nur lokale Verbindungen akzeptieren:

# /etc/mysql/mariadb.conf.d/50-server.cnf (oder my.cnf):
[mysqld]
bind-address = 127.0.0.1

# Neustart:
sudo systemctl restart mariadb  # oder mysql

2. Firewall-Regel setzen

Als zusaetzliche Sicherheitsebene:

# UFW:
sudo ufw deny 3306/tcp

# iptables:
iptables -A INPUT -p tcp --dport 3306 -j DROP
iptables -A INPUT -p tcp --dport 3306 -s 127.0.0.1 -j ACCEPT

3. Remote-Zugriff sicher ermoeglichen

Wenn Sie extern auf die DB zugreifen muessen:

# Option A: SSH-Tunnel (empfohlen)
ssh -L 3306:127.0.0.1:3306 user@server
# Dann: mysql -h 127.0.0.1 -P 3306

# Option B: Nur bestimmte IPs erlauben
iptables -A INPUT -p tcp --dport 3306 -s IHRE_IP -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

Referenzen & weiterführende Links

MySQL Security Guide