私はbusyboxオペレーティングシステムとiptablesバージョン1.4.0をサポートするD-LinkルーターDSL-2730Uを持っています。
次のコマンドを使用してホストのインターネット接続を正常にブロックしました。
IPアドレスでブロック
iptables -I FORWARD -d 192.168.1.6 -j DROP
またはMacソース経由
iptables -I FORWARD -m mac --mac-source bc:20:a4:ff:79:80 -j DROP
今私が持っている唯一の問題は、iptablesを使用してMACアドレスを介した転送速度(アップロードとダウンロード)を30 / kbpsに制限することです。
私は次のiptablesルールを取得しようとしています。
iptables -I FORWARD -m mac --mac-source bc:20:a4:ff:79:80 -m state --state RELATED,ESTABLISHED -m limit --limit 100/second --limit-burst 30 -j ACCEPT
しかし成功はありません。
メモ:ルーターはファイルを変更、削除、または追加できません。ルータ内で bash またはスクリプトファイルを実行できません。残念ながら、この iptables バージョンは iptables connlimit モジュールもサポートしていません。
答え1
これにより、iptablesを使用して速度を制限できます。
iptables -I FORWARD -d 192.168.1.6 -j DROP
iptables -I FORWARD -d 192.168.1.6 -m limit --limit 100/sec -m state --state ESTABLISHED -j ACCEPT
しかし、「制限」は、1秒あたりのバイト数ではなくパケットを制限するため、あまり便利ではありません。 1パケット= 1500バイトと仮定すると、100パケット/秒 = 150KB/秒です。しかし、パケットサイズが小さいいくつかのプロトコルは、より遅く実行されます。これにより、突然の切断が発生する可能性があります。
ただし、ルーターでトラフィックを制限する必要がある場合、オプションはあまりありません。通常、iptablesはこれを行うルータの唯一のユーティリティです。
制限および削除ルールは正しい順序でなければなりません。最初のルールはトラフィックを制限して許可し、2番目のルールは制限を超えるトラフィックをブロックします。
答え2
制限を超えるIPアドレスをブロックするDDos-Deflateというプロジェクトがあります。これは状況を解決するのに役立ちます。