Ubuntuサーバーファイアウォールでiptablesとipsetを使用しています。 ipsリストを含むファイルをipsetにインポートするコマンドがあるかどうか疑問に思います。 ipsetを埋めるために、以下を使用して各IPを追加します。
ipset add manual-blacklist x.x.x.x
単一のコマンド(ファイルのインポートなど)を使用して複数のIPを追加できる場合は、非常に役立ちます。
命令を受けて
for ip in `cat /home/paul/ips.txt`; do ipset add manual-blacklist $ip;done
こんな反応が出ますね
resolving to IPv4 address failed to parse 46.225.38.155
ips.txtの各IPについて
どのように適用するのかわかりません。
答え1
ipset 保存/復元コマンドを使用できます。
ipset save manual-blacklist
上記のコマンドを実行し、保存ファイルがどのように生成されるかを確認できます。
出力例:
create manual-blacklist hash:net family inet hashsize 1024 maxelem 65536
add manual-blacklist 10.0.0.1
add manual-blacklist 10.0.0.2
復元するには、次のコマンドを使用します。
ipset restore -! < ips.txt
ここでは、主に重複によるエラーを無視するために-!を使用します。
答え2
次のコマンドを試してください。
for ip in $(cat </file.txt>); do ipset -A <set-name> $ip;done
エラーが続く場合は、高度なテキストエディタ(Notepad ++、SublimeText)で、テキストファイルに空白と読めない\奇妙な文字があることを確認してください。空白と読めない\奇妙な文字を削除してもう一度やり直してください。
答え3
リストが200,000行以上に大きくなり、サーバーにそれをサポートするのに十分なメモリがある場合は、Niceを使用して完全なオネライナーサイクルを実行することをお勧めします。
nice -n 5 bash -c "for IP in \$(cat textfile.txt); do ipset add <setname> \$IP -exist timeout <seconds>; done"
その後、他のサービスをbashからアップグレードでき、bashがすべてのリソースを使用するため、ネットワークやmysql、apache、または他のサービス遅延は発生しません。
答え4
私はこれが数年前のことであることを知っていますが、すべてのIPアドレスを使用して単純なシェルスクリプトを作成し、そのシェルスクリプトを実行するのはどうですか?このようにして、何百ものIPアドレスを追加しました。
例:(Centos 8でvi
エディタを使用して行われます)
vi manual-blacklist.sh
次に、manual-blacklist.sh
次のようにファイルにすべてのIPアドレスを追加します。i(行を挿入するには、キーを押します。)
ipset add manual-blacklist 123.45.67.111
ipset add manual-blacklist 123.45.67.112
ipset add manual-blacklist 123.45.67.113
すべてのIPアドレスが追加されるまで続きます。作業を高速化するために、Excelを使用してIPアドレスのリストを作成し、それをテキストファイルにエクスポートしてからコピーしてシェルスクリプトファイルに貼り付けました。
文書を保存します。ESCキーを押してから:wq!
Enterを押してファイルを保存します。
次に、次のように実行します。
./manual-blacklist.sh
すべてのIPアドレスが手動ブラックリストのipsetファイルに追加されます。重複したアイテムが見つかった場合は、以前に追加されたアイテムであるため無視されます。
次に、このファイルを保存します。 (私はそれをホームディレクトリと他のディレクトリに保存します。)
ipset save > /etc/ipset.conf
ipset save > /home/username/ipset.conf
復元:
ipset restore -f /etc/ipset.conf
このスイッチは、リストまたは保存コマンドの代わり-f
に印刷または復元コマンドから読み取るファイル名を指定します。stdout
stdin
お役に立てば幸いです。