Sichern des Datenbankservers mit IPTables

Sichern des Datenbankservers mit IPTables

Ich habe meine App (WordPress) und meine Datenbank (MySQL) auf separaten Servern. Sie sind über ein privates Netzwerk verbunden, das vom Hosting-Dienstanbieter bereitgestellt wird.alle vorbereitenden Schritte(soweit ich weiß) aus Sicherheitsgründen.

Normalerweise halte ich mich an diese IPTables-Regeln:

*filter

#  Allow all loopback (lo0) traffic and drop all traffic to 127/8 that doesn't use lo0
-A INPUT -i lo -j ACCEPT
-A INPUT -d 127.0.0.0/8 -j REJECT

#  Accept all established inbound connections
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

#  Allow all outbound traffic - you can modify this to only allow certain traffic
-A OUTPUT -j ACCEPT

#  Allow HTTP and HTTPS connections from anywhere (the normal ports for websites and SSL).
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT

#  Allow SSH connections
#
#  The -dport number should be the same port number you set in sshd_config
#
-A INPUT -p tcp -m state --state NEW --dport 22 -j ACCEPT

#  Allow ping
-A INPUT -p icmp -j ACCEPT

#  Log iptables denied calls
-A INPUT -m limit --limit 5/min -j LOG --log-prefix "iptables denied: " --log-level 7

#  Drop all other inbound - default deny unless explicitly allowed policy
-A INPUT -j DROP
-A FORWARD -j DROP

COMMIT

Aber für meinen eigenständigen (MySQL) Datenbankserver sehe ich, dass die Regeln geändert werden müssen. Ich muss beispielsweise Port 3306 für MySQL öffnen, was ganz einfach wäre:

-A INPUT -p tcp --dport 443 -j ACCEPT

Allerdings weiß ich nicht, wie ich es so ändern kann, dass nur der App-Server eine Verbindung zur Datenbank herstellen kann (also eine Remote-Verbindung unterstützt). Also, wie mache ich das?

Antwort1

Also brauchst du

 -A INPUT -p tcp -s $INTERNAL_WEB_SERVER_IP --dport 3306 -j ACCEPT

Ermöglicht nur Ihrem Webserver, mit MySQL zu kommunizieren. Wie dmourati erwähnt, ist es eine gute Idee, Ping-Verkehr zuzulassen. Meiner Meinung nach hilft es, viel mehr Probleme zu lösen, als es Sicherheitsprobleme mit sich bringt.

iptables -A INPUT -p icmp --icmp-type 8 -s 0/0 -d $SERVER_IP -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type 0 -s $SERVER_IP -d 0/0 -m state --state ESTABLISHED,RELATED -j ACCEPT

Die von Ihnen erwähnte Ausgangsregel bedeutet, dass Ihr Datenbankserver alle ihm zugewiesenen ausgehenden Verbindungen herstellen kann. Im Wesentlichen wird JEDER und ALLE von Ihrem Datenbankserver ausgehende Datenverkehr zugelassen.

verwandte Informationen