iptables zum Blockieren von http und ssh in eine Richtung

iptables zum Blockieren von http und ssh in eine Richtung

Ich habe eine Topologie, in der ein Linux als Router zwei Linux-Systeme verbindet, und ich möchte iptables verwenden, um SSH und HTTP in eine Richtung zu filtern. Ich habe den folgenden Code verwendet, aber er hat nicht funktioniert! Ich bin für jede Hilfe, die Sie mir geben können, wirklich dankbar.

iptables -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --sport 80 -j ACCEPT
iptables -A FORWARD -i ens38 -o ens33 -p tcp --dport 80 -j DROP

Topologie

Antwort1

Ihr Skript sollte für http funktionieren, ist aber nicht wirklich gut. Ich würde so etwas verwenden:

IPTABLE=/sbin/iptables

$IPTABLE -P INPUT ACCEPT
$IPTABLE -P FORWARD DROP
$IPTABLE -P OUTPUT ACCEPT

$IPTABLE -F
$IPTABLE -X

$IPTABLE -F -t nat
$IPTABLE -X -t nat

$IPTABLE -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#http
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 80 -j ACCEPT
#https
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 443 -j ACCEPT
# ssh
$IPTABLE -A FORWARD -i ens33 -o ens38 -p tcp --dport 22 -j ACCEPT
# icmp
$IPTABLE -A FORWARD  -p icmp -j ACCEPT

Sobald die Regeln funktionieren, empfehle ich ein iptables-save > /etc/iptables/rules.v4. Mit dem iptables-persistentPaket werden die Regeln beim Booten geladen.
Zusätzlich zu den iptables-Regeln benötigen Sie

  1. IP-Weiterleitung auf Ihrem Gateway aktiviert.
  2. eine Route für das externe Netzwerk auf Ihrem internen Host
  3. eine Route für das interne Netzwerk auf Ihrem externen Host

verwandte Informationen