Ipset

提供: ArchWiki
移動先: 案内検索

ipset は Linux のファイアウォールである iptables の補助アプリケーションです。素早く簡単にルールを設定して IP アドレスをブロックしたりすることができます。

インストール

公式リポジトリから ipsetインストールしてください。

設定

IP アドレスのブロック

まず新しいネットワークアドレスの "set" を作成します。以下のコマンドは "myset" という名前で "net" ネットワークアドレスの "hash" セットを新しく作成します:

# ipset create myset hash:net

そしてブロックしたい IP アドレスをセットに追加します:

# ipset add myset 14.144.0.0/12
# ipset add myset 27.8.0.0/13
# ipset add myset 58.16.0.0/15

最後に、セット内のアドレスをブロックするように iptables を設定します。以下のコマンドは "INPUT" チェインの一番上にルールを追加して、"src" パケットや "DROP" の場合 "-m" で ipset の "myset" という名前のセットとマッチ (--match-set) して、ブロックを行います。

# iptables -I INPUT -m set --match-set myset src -j DROP

ipset を永続的に設定

作成した ipset はメモリに保存されるため再起動すると消失してしまいます。ipset を永続化させるには以下を行って下さい:

まず ipset を /etc/ipset.conf に保存:

# ipset save > /etc/ipset.conf

そして ipset.service有効化します。iptables.service による iptables のルールの設定と同じように動作します。

PeerGuardian や他のブロックリストでブロック

maeyanie.com の作者による pg2ipsetAUR[リンク切れ: パッケージが存在しません] ツールには ipset-update.sh スクリプトが付属しており、cron によって自動的に様々なブロックリストを更新します。現在、デフォルトで、国別のブロックや tor 末端ノードのブロック、Bluetack の pg2 リストのブロックが実装されています。

他のコマンド

セットを確認するには:

# ipset list

"myset" という名前のセットを削除するには:

# ipset destroy myset

全てのセットを削除するには:

# ipset destroy

他の情報は ipset の man ページを見て下さい。