これらの iptables ルールによってネットの閲覧が妨げられるのはなぜですか?
iptables -A INPUT -i eth0 -p tcp --dport 30000:60000 -m state --state NEW,ESTABLISHED -j DROP
iptables -A OUTPUT -o eth0 -p tcp --sport 30000:60000 -m state --state ESTABLISHED -j DROP
iptables -F
これらのルールを試してもネットを閲覧できない場合は、iptables ルールをクリアすることができます。
私は Ubuntu 12.04 を使用していますが、Debian サーバーでもこの現象が発生します。
答え1
Web ブラウザは、HTTP リクエストごとにポートを必要とします。これらのポートは (まれに) ブラウザではなくカーネルによって選択されます。カーネルは ipfilter ルールを参照せず、空いているポートの使用のみを試みます。ほとんどの場合、30000 から 60000 の間のポートが使用されます。
カーネルが使用しようとしているポート範囲を確認するには:
cat /proc/sys/net/ipv4/ip_local_port_range
これらの値は次のように変更できます。
echo 1234 5678 >/proc/sys/net/ipv4/ip_local_port_range # for immediate effect
または、/etc/sysctl.conf
再起動後も設定が保持されるようにファイルを編集します。
編集: @TomWijsman が示唆しているように、デフォルト値は次のとおりです。
echo 32768 61000 >/proc/sys/net/ipv4/ip_local_port_range