iptablesを設定しようとしていますが、転送ルールは正しく機能しますが、出力ルールに問題があります。
ファイアウォールの背後にあるホストからインターネットにアクセスできず、ファイアウォールサーバーでwww.google.comをpingすることもできません。ホストはwww.google.comに対してpingを実行できず、ipに対してもpingは機能しません。
入力、出力、および転送の基本的な操作は削除です。
ポート80,443,53(tcpとudp)とOutlookを開きました。
私の出力ルールは次のとおりです。
iptables -P OUTPUT DROP
# Output
iptables -A FORWARD -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -p udp --dport 53 -j ACCEPT
# DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
答え1
ここでFORWARDチェーンでは、いくつかの発信トラフィックを許可します。返すことはできませんが、LANシステムのFORWARDチェーンとルーターのINPUTチェーンでこの動作を許可するには、conntrackシステムを使用する必要があります。
また、ICMPを許可していないため、pingが失敗しました。
もう一つ:FORWARDチェーンにインターフェースを割り当てましょう。そうしないと、ポートが公開されるか、外部コンピュータでそのコンピュータをゲートウェイとして使用できます。
それでは、ルールを書き直してみましょう(eth1をLANインターフェイスに置き換えます)。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
# Forward - WAN to LAN
iptables -A FORWARD -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Forward - LAN to WAN
iptables -A FORWARD -i eth1 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -i eth1 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -i eth1 -p icmp -j ACCEPT
# Input
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# Output
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -A OUTPUT -p icmp -j ACCEPT
編集する:コメントで提案されているようにeth1を指定してください。