iptables は一方向の http と ssh をブロックします

iptables は一方向の http と ssh をブロックします

2 つの Linux を接続するルーターとして Linux があるトポロジがあり、iptables を使用して一方向の ssh と HTTP をフィルターしたいと考えています。以下のコードを使用しましたが、機能しませんでした。ご協力いただければ幸いです。

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

トポロジー

答え1

あなたのスクリプトは http で動作するはずですが、あまり良くありません。私は次のようなスクリプトを使用します:

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

ルールが機能したら、 を実行することをお勧めしますiptables-save > /etc/iptables/rules.v4iptables-persistentパケットを使用すると、起動時にルールがロードされます。iptables
ルールに加えて、

  1. ゲートウェイで IP 転送が有効になっています。
  2. 内部ホスト上の外部ネットワークへのルート
  3. 外部ホスト上の内部ネットワークへのルート

関連情報