Öffnen Sie MySQL nur für den lokalen Host und eine bestimmte Adresse

Öffnen Sie MySQL nur für den lokalen Host und eine bestimmte Adresse

Meine Konfiguration: Ubuntu-Server 9 und msyql 5

my.cnf = bind-address = 0.0.0.0

mein iptables-Skript =

iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp --destination-port 3306 -j ACCEPT

Ich kann von jedem Ort aus eine Verbindung zu MySQL herstellen, nicht nur von dieser IP. Ich habe iptables-save ausgeführt, /etc/init.d/netwokring neu gestartet … aber ich kann immer noch von jeder IP aus eine Verbindung herstellen, irgendein Hinweis?

Antwort1

Diese Regel erlaubt Verbindungen von 99.88.77.66, verhindert aber keine Verbindungen von woanders. Dazu sollten Sie eine Regel haben, die standardmäßig DROP für alle eingehenden Verbindungen verwendet.

iptables -P INPUT DROP

und lässt dann nur diejenigen zu, die Sie explizit zulassen möchten. Alternativ können Sie Port 3306 speziell für alle Clients schließen, die nicht 99.88.77.66 sind.

iptables -A INPUT -i eth0 -s ! 99.88.77.66 -p tcp --destination-port 3306 -j DROP

Antwort2

Diese RegelerlaubtDatenverkehr von einer bestimmten IP zu Port 3306/TCP. Sie benötigen eine spätere Regel (oder Standardrichtlinie), um allen anderen Datenverkehr zu diesem Port zu unterbinden, da die Standardrichtlinie von iptables alles zulässt.

Antwort3

Möglicherweise ist Ihre Standardrichtlinie für iptables, den gesamten eingehenden Datenverkehr zuzulassen. Dies würde eine Verbindung von jeder IP-Adresse aus zulassen. Ändern Sie diese Richtlinie, um Folgendes zu verwerfen:

iptables -P INPUT DROP

verwandte Informationen