Was ist falsch an meinen Iptables-Regeln für Port 80?

Was ist falsch an meinen Iptables-Regeln für Port 80?

ich möchte einfachim Internet surfen und ein Webserver seinaber es funktioniert nicht.

Meine Regeln sind:

-P INPUT DROP
-P OUTPUT DROP
-P FORWARD DROP

-A INPUT -p tcp --dport 80 -m state --state NEW,RELATED,ESTABLISHED -j ACCEPT
-A OUTPUT -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT

Außerdem bin ich mir bei diesen Zuständen nicht ganz sicher. Welche sind in meinem Fall nutzlos und warum?

Vielen Dank für Ihre Hilfe.

BEARBEITEN

Ich kann immer noch nicht im Internet surfen. Mit diesen Regeln möchte ich, dass mein Server ein Webserver ist und ich gleichzeitig von diesem Rechner aus im Internet surfen kann (das ist nur zum Üben)

Hier sind meine aktualisierten Regeln. Was ist falsch daran? (Ich habe zwei Zeilen für den DNS-Port hinzugefügt, bin mir nicht sicher, ob sie nützlich oder richtig sind)

    -P INPUT DROP
    -P OUTPUT DROP
    -P FORWARD DROP

    -I INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -I OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

    -A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT
    -A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

    -A OUTPUT -p tcp --dport 53 -j ACCEPT
    -A INPUT -p tcp --dport 53 -j ACCEPT

Antwort1

Ihre INPUTRegel scheint zu versuchen, eingehende Verbindungen zu einem Webserver auf dem lokalen Computer zuzulassen. Ihre OUTPUTRegel scheint zu versuchen, ausgehende Verbindungen vom lokalen Computer zu einem beliebigen externen Webserver zuzulassen. Was möchten Sie erreichen? Beides?

In jedem Fall müssen Sie bei Ihren ESTABLISHED,RELATED-Regeln großzügiger sein. Sie möchten alle Pakete zulassen, die Teil etablierter Verbindungen sind, nicht nur die mit Zielport 80. Insbesondere die Antworten vom Webserver haben nicht Zielport 80 (sie haben Quellport 80) und Sie lassen sie nicht zu. Normalerweise haben Sie am Anfang jeder Kette eine Regel, die alle etablierten und verwandten Pakete zulässt:

-I INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
-I OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

Sobald Sie das getan haben, können Sie einfach das erste Paket zulassen, das eine neue Verbindung herstellt. So erlauben Sie den Zugriff auf den lokalen Webserver:

-A INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

... und um den Zugriff vom lokalen Rechner auf externe Webserver zu ermöglichen:

-A OUTPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT

ABERHaben Sie im zweiten Fall (Zugriff vom lokalen Rechner auf externe Webserver zulassen) darüber nachgedacht, ob Sie das wirklich wollen? Sie möchten, dass nichts anderes als HTTP durchgeht, nicht einmal DNS?

verwandte Informationen