再起動するたびに、入力に長い時間がかかったiptablesルールが失われます。保存して起動時に復元するしかし、それらを永久に保存する方法はあるのでしょうか? 毎回起動時に復元する必要があるのでしょうか? 本当に?
問題は、私が膨大なリストIP のリストを while ループを使用して読み込みます。これには 10 分以上かかる場合があります。
これは私の自宅の FTP サーバーです。1 GB の RAM と非常に少ない処理能力を持つ小さな VM です。IP がたくさんあるのは、アジア大陸をほぼ諦めたからです。毎日、ブルート フォースで FTP サーバーを攻撃される必要はありません。また、政府の監視、追跡、スパマーもブロックします。
これはリストをロードするために使用する while ループです。
grep INPUT block.list | while read LISTA; do sudo iptables -A $LISTA; done
答え1
apt-get install iptables-persistent
インストール時に、現在の iptables 設定が保存されます。それ以外の場合は、これらのファイルに保存できます (v4 または v6 によって異なります)。iptables-persistent は起動時にそれらを読み込みます :)
iptables-save > /etc/iptables/rules.v4
ip6tables-save > /etc/iptables/rules.v6
答え2
まず、次の内容のファイルを作成しますiptables-save
:
sudo iptables-save > /etc/iptables_rules
ファイルをどこに置くかは重要ではありません。次の行が同じファイルを参照していることを確認するだけです。次に、開いて/etc/rc.local
次の行を追加します。
/sbin/iptables-restore < /etc/iptables_rules
今後は、コンピューターの電源を入れたり再起動したりするたびに、iptables は指定したファイルからルールを読み込みます。
答え3
ルールが多数ある場合は、ipset を iptables と組み合わせて使用することも検討してください。ipset はインデックス付きデータベース テーブルを使用し、アドレスを検索して受け入れるか拒否するかを決定するときに iptables よりもはるかに高速です。