Wie erlaube ich nur bestimmten IPs den Zugriff auf einen bestimmten Port?

Wie erlaube ich nur bestimmten IPs den Zugriff auf einen bestimmten Port?

Ich habe einen zentralen Server mit einer installierten Datenbank und mehrere verteilte Server, die diese zentrale Datenbank aufrufen. Aus Sicherheitsgründen möchte ich, dass auf den zentralen Server nur die bekannten Server zugreifen können.

Was ich hier erreichen möchte, ist, den Servern 192.168.1.5 und 192.168.2.6 den Zugriff auf Port 5432 zu ermöglichen.

iptables -A INPUT -s 192.168.1.5,192.168.2.6 -d ??.??.??.?? -p tcp --dport 5432 -j ACCEPT

Ist das richtig?

Was ich nicht verstehe, ist die Möglichkeit, ein Ziel anzugeben. Das Ziel bei INPUT ist doch immer der Server selbst, oder? Warum ist es dann konfigurierbar? Muss ich es angeben oder wird, wenn ich es weglasse, automatisch auf den gleichen Server verwiesen?

Antwort1

Zuerst müssen Sie Ihre Regel in zwei Regeln aufteilen (ich habe es mit einem Befehl versucht, bei dem beide IPs angegeben wurden, und es scheint zu funktionieren). Das Endergebnis sind zwei Regeln wie die folgenden:

iptables -A INPUT -s 192.168.1.5 -p tcp --dport 5432 -j ACCEPT
iptables -A INPUT -s 192.168.2.6 -p tcp --dport 5432 -j ACCEPT

Zweitens können Sie das weglassen, -dum einfach eine beliebige IP abzugleichen. Da es sich um INPUTeine Kette handelt, muss es mit einer der Maschinen-IPs übereinstimmen.

Drittens: Vergessen Sie nicht, eine Regel festzulegen DROP, denn wenn Sie nur diese beiden Regeln ACCEPTals Standardrichtlinie für INPUTdie Kette haben, werden alle Verbindungen zugelassen.

Außerdem müssen Sie möglicherweise Datenverkehr zulassen RELATED, ESTABLISHEDdamit die Pakete in beide Richtungen fließen können. Dies hängt von Ihren Regeln ab (was zulässig ist und was verworfen wird). Hier ist die Regel:

iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

verwandte Informationen