「PeerGuardian Linux」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(ページの作成:「Category:ファイアウォール en:PeerGuardian Linux [http://sourceforge.net/projects/peerguardian/ PeerGuardian Linux] (''pgl'') はプライバシー本位...」)
 
(文字列「http://sourceforge.net/」を「https://sourceforge.net/」に置換)
 
(他の1人の利用者による、間の1版が非表示)
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]] カーネルモジュールを組み合わせて使う方法もあります。
11行目: 11行目:
 
== 設定 ==
 
== 設定 ==
   
* {{ic|/etc/pgl/blocklists.list}} contains a list of URL for retrieving the various block lists.
+
* {{ic|/etc/pgl/blocklists.list}} にはブロックリストを取得するための URL のリストが記述されています。
* {{ic|/etc/pgl/pglcmd.conf}}, empty by default, overrides the default settings present in {{ic|/usr/lib/pgl/pglcmd.defaults}}.
+
* {{ic|/etc/pgl/pglcmd.conf}} はデフォルトでは空になっており、{{ic|/usr/lib/pgl/pglcmd.defaults}} のデフォルト設定を上書きするためのファイルです。
* {{ic|/etc/pgl/allow.p2p}} lists custom IP ranges that will not be filtered.
+
* {{ic|/etc/pgl/allow.p2p}} ではフィルタリングしない IP の範囲を指定します。
   
The default lists in {{ic|/etc/pgl/blocklists.list}} block many potentially legitimate IP address. Users are encouraged to exercise best judgment and the information available at [http://www.iblocklist.com/ I-Blocklist].
+
{{ic|/etc/pgl/blocklists.list}} のデフォルトのリストでは問題がないと思われる IP アドレスも大量にブロックされます。リストを絞ることが推奨されています。情報は [http://www.iblocklist.com/ I-Blocklist] にあります。
   
  +
また、以下を {{ic|/etc/pgl/pglcmd.conf}} に追加して HTTP 接続のフィルタリングを無効化することが推奨されます:
It is recommended to disable the filtering of HTTP connections by adding the following to {{ic|/etc/pgl/pglcmd.conf}}:
 
   
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_OUT="http https"}}
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_OUT="http https"}}
   
  +
プログラムによってはインターネットに接続できなくなることがあります。例えば、インスタンスメッセージとして MSN を使っている場合、ポート 1863 をホワイトリストに追加する必要があります:
Some program might not be able to reach the outside world. For instance, users of MSN for instant messaging, will need to add port 1863 to the white list:
 
   
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_OUT="http https msnp"}}
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_OUT="http https msnp"}}
   
  +
逆に、全てのポートをホワイトリストに追加して、ブロックしたいプログラムのポートだけを除外することもできます。以下の例ではブロックリストを使ってポート 53 (DNS) と 80 (HTTP) からの通信だけを止めています:
Conversely, one could white list all the ports except the ones used by the program to be blocked. The following example only use the block lists to stop incoming traffic on ports 53 (DNS) and 80 (HTTP):
 
   
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_IN="0:79 81:65535"
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_TCP_IN="0:79 81:65535"
32行目: 32行目:
 
=== サーバー ===
 
=== サーバー ===
   
  +
[[systemd]] はシステムの初期化を行いますが、''pgl'' が起動する前に、サーバーが無防備になる瞬間が存在する可能性があります。完全な防護を行うためには、オリジナルのサーバーと同じ名前のサービスファイル ({{ic|/etc/systemd/system/httpd.service}}) を作成して以下を記述します:
[[systemd]] initialization of the system means that it's quite possible for a server to be briefly unprotected, prior to ''pgl'' launch. To ensure adequate protection, create a service file named after the original server (i.e. {{ic|/etc/systemd/system/httpd.service}} and paste the following:
 
   
 
{{hc|/etc/systemd/system/httpd.service|2=
 
{{hc|/etc/systemd/system/httpd.service|2=
44行目: 44行目:
 
=== LAN ===
 
=== LAN ===
   
By default, ''pgl'' blocks traffic on the local IPv4 addresses. To disable this behavior, edit {{ic|/etc/pgl/pglcmd.conf}} to add an exception using the ''WHITE_IP_*'' setting:
+
デフォルトでは、''pgl'' はローカルの IPv4 アドレスの通信をブロックします。ブロックしないようにするには、{{ic|/etc/pgl/pglcmd.conf}} を編集して ''WHITE_IP_*'' を設定して除外を追加してください:
   
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_IP_OUT="192.168.0.0/24"}}
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_IP_OUT="192.168.0.0/24"}}
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_IP_IN="192.168.0.0/24"}}
 
{{hc|/etc/pgl/pglcmd.conf|2=WHITE_IP_IN="192.168.0.0/24"}}
   
  +
詳しくは、{{ic|/usr/lib/pgl/pglcmd.defaults}} の {{ic|# Whitelist IPs #}} セクションを参照。
For further information, please refer to the {{ic|# Whitelist IPs #}} section of {{ic|/usr/lib/pgl/pglcmd.defaults}}.
 
   
 
== 起動 ==
 
== 起動 ==
   
  +
デーモンとリストの設定が完了したら、{{ic|pgl}} [[デーモン|サービス]]を起動してください。''pgl'' が正しく動作しているか確認するには、次のコマンドを実行:
Once comfortable with the configuration of both the daemon and lists, start the {{ic|pgl}} [[daemon|service]]. To make sure that ''pgl'' works as intended, issue this command:
 
   
 
# pglcmd test
 
# pglcmd test
   
  +
起動時に ''pgl'' が自動的に実行されるようにするには、{{ic|pgl}} サービスを有効化してください。
To start ''pgl'' automatically at boot, enable the {{ic|pgl}} service.
 
  +
  +
== コンテナから pgl を実行 ==
  +
  +
[[Linux Containers]] の中で pgl を実行するにはパッケージに含まれている {{ic|lxc@.service}} を修正して pgl が必要とするモジュールをロードする必要があります:
  +
  +
{{hc|/etc/systemd/system/lxc@.service|<nowiki>
  +
[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
  +
</nowiki>}}

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