
私のインターネットプロバイダはパケットレート制限(毎秒最大10)を設定します。制限を超えると接続が失われるため、AceStreamプレーヤーを使用しようとすると問題になります。
このプログラムへのインターネットアクセスをどのように制限しますか?
提案されたコマンドを試しました。
iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
しかし、致命的なエラーメッセージが表示されます。
FATAL: Error inserting ip_tables (/lib/modules/3.2.0-67-generic/kernel/net/ipv4/netfilter/ip_tables.ko): Operation not permitted
iptables v1.4.12: can't initialize iptables table `filter': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
管理者権限がある場合:
sudo iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
これ以上エラーメッセージはありません。しかし、それでも機能せず、接続が切断されます。
コマンドラインにエラーがありますか?または、iptablesの他のパラメータを使用する必要がありますか?
以下は、プロバイダの制限を超えたときに受信した実際のメッセージです。
これまで私はいろいろな方法を試しましたが、そのうちの何も動作しませんでした。
sudo iptables -A INPUT -p tcp --syn --dport 8621 -m connlimit --connlimit-above 10 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
sudo iptables -A INPUT -m state --state RELATED,ESTABLISHED -m limit --limit 9/second --limit-burst 10 -j ACCEPT
sudo iptables -A INPUT -p tcp --destination-port 8621 --syn -m state --state NEW -m limit --limit 9/s --limit-burst 10 -j ACCEPT
このアプローチは、アプリを引き続き使用するのに役立たないようです。だから別の質問を投稿しました。iptablesによる接続制限の設定。
答え1
見つかった解決策は正しいです。
iptables -A OUTPUT -m limit --limit 10/s -j ACCEPT
ただし、デフォルトポリシーはDROPまたはREJECTと仮定されますが、これはOUTPUTでは一般的ではありません。以下を追加する必要があります。
iptables -A OUTPUT -j REJECT
ACCEPTルールの後にこのルールを追加する必要があります。この順序で実行するか、-I
代わりにACCEPTを使用してください-A
。
また、アプリケーションによっては接続が終了する場合があります。この場合REJECTの代わりにDROPを試してください。別のポートを試してみてください--reject-with
(デフォルトはicmp-port-unreachable)。
私はTelnetを使ってDVRサーバーをテストしましたが、接続が切断されませんでした。もちろん、新しい接続は発信パケットであるため、REJECTを使用すると、制限に達した直後に再接続しようとするとすぐに失敗します。
ISP が INPUT パケットを制限したいとの意見を収集しました。あなたはそうすることはできません。あなたがそれらをブロックできるときは、あなたのNICにすでに到達しています。つまり、あなたのISPがすでにそれらを占めていることを意味します。 OUTPUTを制限すると、ほとんどのACKが完了しないため、多くの再送が発生するため、INPUTパケットの数も大幅に増加します。
1秒あたり10個のパケットはクレイジーです。
答え2
同期洪水防止:
# iptables -A FORWARD -p tcp --syn -m limit --limit 1/s -j ACCEPT
シークレットポートスキャナー:
# iptables -A FORWARD -p tcp --tcp-flags SYN,ACK,FIN,RST RST -m limit --limit 1/s -j ACCEPT
死の平和:
# iptables -A FORWARD -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT