Der Iptables-Ausgangsblock verweigert den eingehenden

Der Iptables-Ausgangsblock verweigert den eingehenden

Ich versuche, nur ausgehende Verbindungen zu bestimmten IP-Adressen zu blockieren, möchte jedoch eingehende Verbindungen von denselben IP-Adressen zulassen.

Soweit ich das Blockieren ausgehender Verbindungen verstehe,sollte nichtBlock, wenn eine eingehende Verbindung erfolgreich hergestellt wurde.

Ich habe grundsätzlich folgende Regeln aufgestellt:

--append OUTPUT --jump DROP --destination x.x.x.x

Und um bestehende Verbindungen zuzulassen:

--append INPUT --in-interface eth0 --match state --state RELATED,ESTABLISHED --jump ACCEPT

Ich möchte, dass Verbindungen zugelassen werden, wenn diese IP-Adresse versucht, eine Verbindung zum Server herzustellen. Wenn mein Server jedoch versucht, eine ausgehende Verbindung herzustellen, sollte dies nicht möglich sein.

Ich möchte den vollständigen Zugriff des Servers auf ausgehende Verbindungen blockieren x.x.x.x. Wenn jedoch ein Benutzer mit dieser IP-Adresse auf den Server zugreifen möchte, sollte er Websites über bestimmte Ports besuchen können.

Antwort1

Mit Ihren versuchten Firewall-Regeln sind Sie fast am Ziel. Folgendes benötigen Sie, um eingehenden Datenverkehr vom Host zuzulassen 10.10.10.10und ausgehenden Datenverkehr an diese Adresse zu unterbinden:

  1. Eingehenden Datenverkehr zulassen (vermutlich zu jedem Port)
  2. Ausgehende Antworten auf hergestellte eingehende Verbindungen zulassen
  3. Blockieren des verbleibenden ausgehenden Datenverkehrs

Also,

iptables -A INPUT --src 10.10.10.10 --jump ACCEPT

iptables -A OUTPUT --match state --state RELATED,ESTABLISHED --jump ACCEPT
iptables -A OUTPUT --dst 10.10.10.10 --jump DROP

Sie benötigen die Regel nicht wirklich, INPUTes sei denn, Sie haben spätere Regeln, die gelten DENY, REJECToder Ihre Richtlinie ist so festgelegt.

Antwort2

Sie verstehen das falsch! So verstehe ich es:

Sehen Sie sich zunächst Ihre inputRegel an. Sie sollte Eingaben von zulassen state, aber was bedeutet das state? Es bedeutet, dass der Datenverkehr von Ihrem Server schon einmal an diese Adresse gegangen ist ! Diese Regel wird also nie zutreffen, wenn Sie (für diese Adresse) vollständig outblockieren .output

Aus diesem Grund ist Ihr gesamtes Vorhaben nicht möglich, statees ist nur in verfügbar input.

Es könnte eine Hack-Lösung geben. Aber mit den gegebenen Optionen ist das nicht möglich.

PS

Nach deiner Frage habe ich noch einmal nach einem alten Thema gesucht und raten Sie mal. Nachdem ich deinen Beitrag noch einmal gelesen habe, ist mir aufgefallen, dass das GENAU das ist, was du willst. Schau dir mal anHafenKnocking.

Es fügt Ihrer Anfrage eine Komponente hinzu, die sie noch besser macht: Zufälligkeit.

Richten Sie einfach ein Anklopfschema ein und lassen Sie outputVerbindungen nicht nur zu, sondern auch inputnur, wenn das Richtige knockingpassiert ist.

verwandte Informationen