追加読書

追加読書

そのため、Debian 9 ベースのサーバーの openvpn 構成を見ていたところ、openvpn デーモンの systemd ユニットファイルで説明できない内容が見つかりました。デーモン自体が起動してうまくいきますが、理由がわかりません...説明します:)

そのため、openvpnをインストールして正しく設定しました。/etc/openvpn/server.conf文書。これまでは問題ありません。

しかし、openvpnには2つのシステムデバイスが実行されているようです。VPNサービスを開くそして[Eメール保護]。後者は着信VPN接続を実際に許可しているようですが、前者はまったく多くのことをしていないようです。明らかに後者を始めるのが正しいと思います...

調査する/etc/systemd/system/multi-user.target.wants/openvpn関連ファイルのディレクトリには、openvpn.serviceファイルのみが表示されます。そのファイルのソースは、/lib/systemd/systemにある同様の名前のファイルへのシンボリックリンクです。ファイルの内容は次のとおりです。

# This service is actually a systemd target,
# but we are using a service since targets cannot be reloaded.

[Unit]
Description=OpenVPN service
After=network.target

[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/true
ExecReload=/bin/true
WorkingDirectory=/etc/openvpn

[Install]
WantedBy=multi-user.target

はい、悪くありません。したがって、これは/ bin / trueのみ実行されます。だから正確に何が始まりましたかopenvpn@サーバー悪魔?私はこれに関する単位ファイルを知っています/lib/システム/[Eメール保護]しかし、私のシステムでは、このユニットファイルが正確に何を実行しているかについてのどんな手がかりも見つかりません。 (下からシンボリックリンクを探したいです。/etc/systemd/システムどこかにありますが、そうではありません。 )このファイルの内容は次のとおりです。

[Unit]
Description=OpenVPN connection to %i
PartOf=openvpn.service
ReloadPropagatedFrom=openvpn.service
Before=systemd-user-sessions.service
Documentation=man:openvpn(8)
Documentation=https://community.openvpn.net/openvpn/wiki/Openvpn23ManPage
Documentation=https://community.openvpn.net/openvpn/wiki/HOWTO

[Service]
PrivateTmp=true
KillMode=mixed
Type=forking
ExecStart=/usr/sbin/openvpn --daemon ovpn-%i --status /run/openvpn/%i.status 10 --cd /etc/openvpn --config /etc/openvpn/%i.conf --writepid /run/openvpn/%i.pid
PIDFile=/run/openvpn/%i.pid
ExecReload=/bin/kill -HUP $MAINPID
WorkingDirectory=/etc/openvpn
ProtectSystem=yes
CapabilityBoundingSet=CAP_IPC_LOCK CAP_NET_ADMIN CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_SETGID CAP_SETUID CAP_SYS_CHROOT CAP_DAC_READ_SEARCH CAP_AUDIT_WRITE
LimitNPROC=10
DeviceAllow=/dev/null rw
DeviceAllow=/dev/net/tun rw

[Install]
WantedBy=multi-user.target

したがって、このユニットファイルにはopenvpn.serviceファイルよりも多くの内容が含まれています。しかし、何が始まりましたか?私は気づいた部分=openvpn.service上記のファイルの一部ですが、マニュアルページでその意味を探してもまったく賢明ではありません。

なぜこのようなことが起こったのか知りたいので、ずっと検索します!

この特定の単位ファイルがどのように実行または起動されるかについての手がかりがある場合は、教えてください。 :)

ベストアンサー1

次の2つを知る必要があります。

  • いくつかあります文書化されていないsystemd がユニットファイルを保存するディレクトリです。
  • DebianとUbuntuで利用可能発電機/lib/systemd/system-generators/openvpn-generator「必要な」シンボリックリンクを文書化されていないディレクトリの1つにファイルごとに*.conf1つずつ配置します/etc/openvpn

シンボリックリンクは、openvpn.serviceサービスユニットの冒頭のコメントで説明されているようにターゲットのように機能し、さまざまなテンプレートインスタンス化を「円」にします。

DebianとUbuntuはOpenVPNでお互いに意見が一致しません。彼ら自身Arch、CentOS、Fedoraなどで使用されるsystemdプロビジョニングDebianとUbuntuは、OpenVPN自体が提供するすべての機能と独自のシステム機能を完全に置き換えます。したがって、docoを読むときは、少なくともdocoがユーザーが持っていると仮定するオペレーティングシステムについて知っておく必要があります。

OpenVPNの人々習慣テンプレート単位を提供します[email protected]が、ジェネレータやターゲットopenvpn.serviceをサービスとして提供するわけではありません。これを行うには、一般的なシステムメカニズムを使用して明示的に有効または無効にする必要があります。これは「必要な」ものです。openvpn@nameまっすぐmulti-user.target仲介Target-as-a-Serviceを介さずに経由して移動します。

OpenVPNの人々別の[email protected]テンプレートを提供しても、ジェネレータやターゲット[email protected]をサービスとして引き続き提供することはなく、openvpn.serviceそのためには通常のシステムメカニズムを使用して明示的に有効または無効にする必要があります。ファイルも内外に移動されました。openvpn-service@nameopenvpn-client@name*.conf/etc/openvpn/etc/openvpn/client/etc/openvpn/server

追加読書

おすすめ記事