「PeerGuardian Linux」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(文字列「http://sourceforge.net/」を「https://sourceforge.net/」に置換)
 
1行目: 1行目:
 
[[Category:ファイアウォール]]
 
[[Category:ファイアウォール]]
 
[[en:PeerGuardian Linux]]
 
[[en:PeerGuardian Linux]]
[http://sourceforge.net/projects/peerguardian/ PeerGuardian Linux] (''pgl'') はプライバシー指向のファイアウォールアプリケーションです。巨大なブロックリスト (数千数億の IP 範囲) で指定されたホストからの接続をブロックします。''pgl'' は Linux カーネルの [[Wikipedia:Netfilter|netfilter]] フレームワークと [[iptables]] をベースとしています。
+
[https://sourceforge.net/projects/peerguardian/ PeerGuardian Linux] (''pgl'') はプライバシー指向のファイアウォールアプリケーションです。巨大なブロックリスト (数千数億の IP 範囲) で指定されたホストからの接続をブロックします。''pgl'' は Linux カーネルの [[Wikipedia:Netfilter|netfilter]] フレームワークと [[iptables]] をベースとしています。
   
 
同じような効果を実現するネイティブで効率的な方法として pg2ipset ツールと ipset-update スクリプトを [[ipset]] カーネルモジュールを組み合わせて使う方法もあります。
 
同じような効果を実現するネイティブで効率的な方法として pg2ipset ツールと ipset-update スクリプトを [[ipset]] カーネルモジュールを組み合わせて使う方法もあります。

2018年2月6日 (火) 23:10時点における最新版

PeerGuardian Linux (pgl) はプライバシー指向のファイアウォールアプリケーションです。巨大なブロックリスト (数千数億の IP 範囲) で指定されたホストからの接続をブロックします。pgl は Linux カーネルの netfilter フレームワークと iptables をベースとしています。

同じような効果を実現するネイティブで効率的な方法として pg2ipset ツールと ipset-update スクリプトを ipset カーネルモジュールを組み合わせて使う方法もあります。

インストール

2つの AUR パッケージから選択してください: pgl-cliAUR にはデーモンと CLI ツールしか含まれておらず、pglAUR には (Qt で書かれた) GUI が付属しています。

設定

  • /etc/pgl/blocklists.list にはブロックリストを取得するための URL のリストが記述されています。
  • /etc/pgl/pglcmd.conf はデフォルトでは空になっており、/usr/lib/pgl/pglcmd.defaults のデフォルト設定を上書きするためのファイルです。
  • /etc/pgl/allow.p2p ではフィルタリングしない IP の範囲を指定します。

/etc/pgl/blocklists.list のデフォルトのリストでは問題がないと思われる IP アドレスも大量にブロックされます。リストを絞ることが推奨されています。情報は I-Blocklist にあります。

また、以下を /etc/pgl/pglcmd.conf に追加して HTTP 接続のフィルタリングを無効化することが推奨されます:

/etc/pgl/pglcmd.conf
WHITE_TCP_OUT="http https"

プログラムによってはインターネットに接続できなくなることがあります。例えば、インスタンスメッセージとして MSN を使っている場合、ポート 1863 をホワイトリストに追加する必要があります:

/etc/pgl/pglcmd.conf
WHITE_TCP_OUT="http https msnp"

逆に、全てのポートをホワイトリストに追加して、ブロックしたいプログラムのポートだけを除外することもできます。以下の例ではブロックリストを使ってポート 53 (DNS) と 80 (HTTP) からの通信だけを止めています:

/etc/pgl/pglcmd.conf
WHITE_TCP_IN="0:79 81:65535"
WHITE_UDP_IN="0:52 54:65535"

サーバー

systemd はシステムの初期化を行いますが、pgl が起動する前に、サーバーが無防備になる瞬間が存在する可能性があります。完全な防護を行うためには、オリジナルのサーバーと同じ名前のサービスファイル (/etc/systemd/system/httpd.service) を作成して以下を記述します:

/etc/systemd/system/httpd.service
.include /usr/lib/systemd/system/httpd.service

[Unit]
Wants=pgl.service
After=pgl.service

LAN

デフォルトでは、pgl はローカルの IPv4 アドレスの通信をブロックします。ブロックしないようにするには、/etc/pgl/pglcmd.conf を編集して WHITE_IP_* を設定して除外を追加してください:

/etc/pgl/pglcmd.conf
WHITE_IP_OUT="192.168.0.0/24"
/etc/pgl/pglcmd.conf
WHITE_IP_IN="192.168.0.0/24"

詳しくは、/usr/lib/pgl/pglcmd.defaults# Whitelist IPs # セクションを参照。

起動

デーモンとリストの設定が完了したら、pgl サービスを起動してください。pgl が正しく動作しているか確認するには、次のコマンドを実行:

# pglcmd test

起動時に pgl が自動的に実行されるようにするには、pgl サービスを有効化してください。

コンテナから pgl を実行

Linux Containers の中で pgl を実行するにはパッケージに含まれている lxc@.service を修正して pgl が必要とするモジュールをロードする必要があります:

/etc/systemd/system/lxc@.service
[Unit]
Description=%i LXC
After=network.target

[Service]
Type=forking
ExecStartPre=/usr/bin/modprobe -a xt_NFQUEUE xt_mark xt_iprange
ExecStart=/usr/bin/lxc-start -d -n %i
ExecStop=/usr/bin/lxc-stop -n %i
Delegate=true

[Install]
WantedBy=multi-user.target