「Linux Containers で OpenVPN サーバー」の版間の差分
表示
削除された内容 追加された内容
翻訳 |
Kusanaginoturugi (トーク | 投稿記録) リンクを修正 タグ: 転送先変更 |
||
| (同じ利用者による、間の2版が非表示) | |||
| 1行目: | 1行目: | ||
#REDIRECT [[Linux コンテナ/VPN の使用]] |
|||
[[Category:セキュリティ]] |
|||
[[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 |
|||