「Ipset」の版間の差分
(en:Ipsetへの転送ページ) |
Kusakata.bot (トーク | 投稿記録) (Pkg/AUR テンプレートの更新) |
||
(2人の利用者による、間の2版が非表示) | |||
1行目: | 1行目: | ||
+ | [[Category:ファイアウォール]] |
||
− | #redirect[[en:Ipset]] |
||
+ | [[en:Ipset]] |
||
+ | {{Related articles start}} |
||
+ | {{Related|ファイアウォール}} |
||
+ | {{Related|Iptables}} |
||
+ | {{Related articles end}} |
||
+ | [http://ipset.netfilter.org/ ipset] は Linux の[[ファイアウォール]]である [[iptables]] の補助アプリケーションです。素早く簡単にルールを設定して IP アドレスをブロックしたりすることができます。 |
||
+ | |||
+ | == インストール == |
||
+ | |||
+ | [[公式リポジトリ]]から {{pkg|ipset}} を[[pacman|インストール]]してください。 |
||
+ | |||
+ | == 設定 == |
||
+ | |||
+ | === 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 を {{ic|/etc/ipset.conf}} に保存: |
||
+ | |||
+ | # ipset save > /etc/ipset.conf |
||
+ | |||
+ | そして {{ic|ipset.service}} を[[有効化]]します。{{ic|iptables.service}} による [[Iptables#iptables の設定と実行|iptables のルール]]の設定と同じように動作します。 |
||
+ | |||
+ | === PeerGuardian や他のブロックリストでブロック === |
||
+ | |||
+ | maeyanie.com の作者による {{AUR|pg2ipset}}{{Broken package link|パッケージが存在しません}} ツールには [https://github.com/ilikenwf/pg2ipset/blob/master/ipset-update.sh ipset-update.sh] スクリプトが付属しており、cron によって自動的に様々なブロックリストを更新します。現在、デフォルトで、国別のブロックや tor 末端ノードのブロック、Bluetack の pg2 リストのブロックが実装されています。 |
||
+ | |||
+ | == 他のコマンド == |
||
+ | |||
+ | セットを確認するには: |
||
+ | |||
+ | # ipset list |
||
+ | |||
+ | "myset" という名前のセットを削除するには: |
||
+ | |||
+ | # ipset destroy myset |
||
+ | |||
+ | 全てのセットを削除するには: |
||
+ | |||
+ | # ipset destroy |
||
+ | |||
+ | 他の情報は ipset の man ページを見て下さい。 |
2017年7月13日 (木) 00:09時点における最新版
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 ページを見て下さい。