「Linux Containers で OpenVPN サーバー」の版間の差分

提供: ArchWiki
ナビゲーションに移動 検索に移動
(リダイレクトに変更)
タグ: 新規リダイレクト
1行目: 1行目:
  +
#REDIRECT [[Linux Containers/VPN の使用]]
[[Category:Virtual Private Network]]
 
[[Category:仮想化]]
 
[[en:OpenVPN (server) in Linux containers]]
 
{{Related articles start}}
 
{{Related|Easy-RSA}}
 
{{Related|Linux Containers}}
 
{{Related|OpenVPN}}
 
{{Related|Linux Containers で OpenVPN クライアント}}
 
{{Related|ufw}}
 
{{Related articles end}}
 
この記事ではセキュアかつプライベートにインターネットを利用するために [[Linux Containers]] で [[OpenVPN]] をサーバーモードで実行する方法を説明します。[[VirtualBox]] や [[QEMU]] のような完全仮想化と比べてオーバーヘッドが最小限に抑えられて低性能のデバイスでも使えるというメリットがあります。
 
 
== ホストの設定 ==
 
# ホスト OS にはコンテナから使えるブリッジイーサネットを設定する必要があります。[[Linux Containers#ホストネットワークの設定]]を参照してください。
 
# パケット転送を有効にする必要があります。[[インターネット共有#パケット転送の有効化]]を見てください。
 
# 必須ではありませんが[[ファイアウォール]]を設定することが強く推奨されます。
 
 
== コンテナの設定 ==
 
[[Linux Containers]] の基本的な知識が必要です。この記事では既にベースとなる LXC の設定は終わっていることを前提とします。初めて LXC を使用する場合は [[Linux Containers]] の記事を読んでください。
 
 
=== LXC の設定 ===
 
コンテナの設定を編集して OpenVPN を実行するのに必要なセクションを複数記述してください。
 
 
例えば、lxc の名前が "playtime" ならば設定は以下のようになります:
 
{{hc|/var/lib/lxc/playtime/config|<nowiki>
 
# Template used to create this container: /usr/share/lxc/templates/lxc-archlinux
 
# Parameters passed to the template:
 
# For additional config options, please look at lxc.container.conf(5)
 
 
lxc.rootfs = /var/lib/lxc/playtime/rootfs
 
lxc.utsname = playtime
 
lxc.arch = x86_64
 
lxc.include = /usr/share/lxc/config/archlinux.common.conf
 
 
## network
 
lxc.network.type = veth
 
lxc.network.link = br0
 
lxc.network.flags = up
 
lxc.network.name = eth0
 
 
## systemd within the lxc
 
lxc.autodev = 1
 
lxc.hook.autodev = /var/lib/lxc/playtime/autodev
 
lxc.pts = 1024
 
lxc.kmsg = 0
 
 
## mounts
 
lxc.mount.entry = /var/cache/pacman/pkg var/cache/pacman/pkg none bind 0 0
 
 
## for openvpn
 
lxc.cgroup.devices.allow = c 10:200 rwm
 
</nowiki>}}
 
 
{{Note|上記の例では '''autodev''' フックを使って {{ic|/var/lib/lxc/playtime/autodev}} スクリプトを呼び出していますが、スクリプトはユーザーが作成して実行可能権限を与える必要があります。スクリプトは以下に記載しています。[[Linux Containers]] も参照してください。}}
 
 
{{hc|/var/lib/lxc/playtime/autodev|<nowiki>
 
#!/bin/bash
 
cd ${LXC_ROOTFS_MOUNT}/dev
 
mkdir net
 
mknod net/tun c 10 200
 
chmod 0666 net/tun
 
</nowiki>}}
 
 
=== コンテナにインストールする必要があるパッケージ ===
 
 
ベース環境に加えて、[[公式リポジトリ]]の {{Pkg|openvpn}} パッケージが必要です。また、コンテナの中で[[ファイアウォール]]を設定することを強く推奨します。このガイドでは設定しやすい {{pkg|ufw}} を使いますが別のファイアウォールでもかまいません。
 
 
=== パッケージの設定 ===
 
==== OpenVPN ====
 
[[OpenVPN]] の記事を参照してホームサーバーをセットアップしてください。{{ic|openvpn@myprofile.service}} を[[起動]]してコンテナから openvpn が使えることが確認できたら[[有効化]]してください。
 
 
==== ufw ====
 
[[OpenVPN#ファイアウォールの設定]]を参照してコンテナの中でファイアウォールをセットアップしてください。設定が間違っていると openvpn がコンテナの中で正しく動作しないことがあります。
 
 
{{ic|ufw.service}} を[[起動]]・[[有効化]]してください:
 
# ufw enable
 

2024年4月11日 (木) 19:31時点における版