私はdnscrypt-proxyが次のようになります。動的ユーザールートではありません。ただし、dnscrypt-proxy
アップストリームDNSプロバイダに接続できるようにユーザーを指定するnftablesでファイアウォールルールを使用したいと思います。
今問題は、nftables
ネットワークが起動する前に実行したいということです。これは大丈夫で必要なことですが、ユーザーがdnscrypt-proxy
存在しないと文句を言います。
サービスdnscrypt-proxy
はネットワークの起動後にのみ実行されるため、ユーザーはネットワークが起動した後にのみ作成されます。これを処理する標準/最も良い方法は何ですか?
動的ユーザーの代わりに固定ユーザーを指定し、
dnscrypt-proxy
上記の他のセキュリティオプションを設定する必要がありますか?ここ手動で?nftablesのユーザー名以外のものでサービスを検出する必要がありますか?
dnscrypt-proxy
自分のシステムで手動でユーザーを作成し、systemdがすでに存在するので、削除せずにそれを使用できますか?起動するたびにnftables以前に実行されたサービスを作成し、そのユーザーを作成してdnscryptサービスが停止した場合は、systemdからそのユーザーを削除する必要がありますか?
ファイアウォールが既に実行中でdnscryptサービスが停止した場合はどうなりますか?ルールセットに記載されているユーザーIDがもう存在しないため、ファイアウォールがクラッシュしたり、どのような問題が発生したりしますか?
答え1
で答えを見つけたと思いますman 5 systemd.exec
。このDynamicUser=
設定は、システム上の既存の静的ユーザーとシームレスに実行されます。
構成された名前に静的に割り当てられたユーザーまたはグループがすでに存在する場合は、そのユーザーまたはグループが使用され、動的ユーザー/グループは割り当てられません。
DynamicUser
これは、すべての暗黙のセキュリティ設定を一度に設定し、ユーザーに持続させることを可能にするようです。 nftablesでこのユーザーを参照したいので、これが意味があるようです。
だから私がしたことは:
# systemctl stop dnscrypt-proxy.socket
# systemctl stop dnscrypt-proxy.service
# useradd --user-group --system dnscrypt-proxy
# systemctl edit dnscrypt-proxy.service
そして、以下を追加してください:
[Service]
DynamicUser = yes
User = dnscrypt-proxy
Group = dnscrypt-proxy
設定ファイルを保存し、サービスとソケットを再起動します。
# systemctl daemon-reload
# systemctl start dnscrypt-proxy.service