「PeerGuardian Linux」の版間の差分
(ページの作成:「Category:ファイアウォール en:PeerGuardian Linux [http://sourceforge.net/projects/peerguardian/ PeerGuardian Linux] (''pgl'') はプライバシー本位...」) |
|||
1行目: | 1行目: | ||
[[Category:ファイアウォール]] |
[[Category:ファイアウォール]] |
||
[[en:PeerGuardian Linux]] |
[[en:PeerGuardian Linux]] |
||
− | [http://sourceforge.net/projects/peerguardian/ PeerGuardian Linux] (''pgl'') はプライバシー |
+ | [http://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}} |
+ | * {{ic|/etc/pgl/blocklists.list}} にはブロックリストを取得するための URL のリストが記述されています。 |
− | * {{ic|/etc/pgl/pglcmd.conf}} |
+ | * {{ic|/etc/pgl/pglcmd.conf}} はデフォルトでは空になっており、{{ic|/usr/lib/pgl/pglcmd.defaults}} のデフォルト設定を上書きするためのファイルです。 |
− | * {{ic|/etc/pgl/allow.p2p}} |
+ | * {{ic|/etc/pgl/allow.p2p}} ではフィルタリングしない IP の範囲を指定します。 |
− | + | {{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 === |
||
− | + | デフォルトでは、''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>}} |
2015年8月9日 (日) 13:29時点における版
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