私はWebブラウザを使用して、私が所有しているイカプロキシサーバーを介してインターネットに接続します。プロキシポートは3128です。プロキシサーバーを実行しているシステムの他のポートをロックしたいのですが、私のルールはiptables
プロキシを完全にシャットダウンします。次のルールが機能します。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# other rules here for web access, dns, etc
iptables -A INPUT -p tcp -s "$my_pc_ip" -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -d "$my_pc_ip" -m state --state ESTABLISHED -j ACCEPT
しかし、明らかに、ここではポートが指定されていないため、目的には適合しません。ただし、プロキシポートに指定すると、Webブラウザのプロキシを介してインターネットにアクセスできなくなります。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# other rules here for web access, dns, etc
iptables -A INPUT -p tcp -s "$my_pc_ip" --sport 3128 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp -d "$my_pc_ip" --dport 3128 -m state --state ESTABLISHED -j ACCEPT
2番目のルールセットが機能しないのはなぜですか?
答え1
ファイアウォールルールでdportの代わりにsportを使用しているか、その逆の場合のようです。それが必要です:
iptables -A enter -p tcp -s "$my_pc_ip" --dport 3128 -m state --state 新規、設定済み -j accept
iptables -A 出力 -p tcp -d "$my_pc_ip" --sport 3128 -m 状態 --ステータス設定 -j を受け入れる
ルールはプロキシサーバーにあるため、INPUTチェーンでは、パケットはプロキシが実行されているポートであるdportと一致する必要があり、同様にOUTPUTチェーンではパケットが開始されたスポーツと一致する必要があります。