
Bei mir ist folgendes Szenario:
Ich möchte nur den Zugriff auf die Ports 22, 80 und 443 erlauben und alles andere zulassen.
Meines iptables -L
sieht so aus:
Chain INPUT (policy ACCEPT)
target prot opt source destination
ACCEPT tcp -- anywhere anywhere tcp dpt:https
ACCEPT tcp -- anywhere anywhere tcp dpt:http
ACCEPT tcp -- anywhere anywhere tcp dpt:ssh
ACCEPT tcp -- anywhere anywhere state RELATED,ESTABLISHED
DROP all -- anywhere anywhere
Chain FORWARD (policy ACCEPT)
target prot opt source destination
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
Ich erziele jedoch nicht den gewünschten Effekt und kann auch von meinem Server aus keinen Ping mehr durchführen (komme nicht mehr ins Internet).
Außerdem habe ich mir die Option zum Festlegen INPUT
einer Richtlinie DROP
und zum manuellen Öffnen der gewünschten Ports angesehen, aber das hatte auch nicht den gewünschten Effekt.
Gibt es einen Unterschied zwischen der Implementierung der DROP
Richtlinie in INPUT
die Kette und dem manuellen Öffnen der gewünschten Ports und der Vorgehensweise, bei der ich als letzte Regel den gesamten Datenverkehr gelöscht habe?
Vielen Dank,
beste Grüße.
Antwort1
Ihr aktuelles Setup für INPUT
Chain ermöglicht es Clients, sich mit Ihrem Server über TCP 22, 80 und 443 zu verbinden.TCPVerbindungen, die Sie initiieren, werden beantwortet. Das ist alles! Neinicmp(für Ping), neinUDP(DNS-Suchen).
Wenn Sie alle Protokolle ESTABLISHED, RELATED
regeln ALLOW
, statt nurTCP, sollte das oben genannte Problem beheben.
Zum Löschen von allem anhand einer Regel im Vergleich zu einer DROP
Richtlinie:
iptables -P INPUT DROP
Ist das Gleiche wie:
iptables -A INPUT -j DROP
Als Ihre letzte Regel.
Wenn Sie nicht genau wissen, was Sie tun, sollten Sie auchSchleifeVerkehr.