ローカルソケットとinetソケットの違いは?


0

opendkimのセットアップ中に、Socketのオプションは次のとおりであることに気付きました。

#SOCKET="local:/var/run/opendkim/opendkim.sock" # default
#SOCKET="inet:54321" # listen on all interfaces on port 54321
#SOCKET="inet:12345@localhost" # listen on loopback on port 12345
#SOCKET="inet:12345@192.0.2.1" # listen on 192.0.2.1 on port 12345

local:[...]。sockソケットとinet:[...] @ localhostソケットの違い(ある場合)は何ですか?ユーザーの許可はどちらか一方に影響しますか?どちらか一方を使用することでセキュリティ上の利点はありますか?機能的な違いはありますか?


local:ソケットはファイルシステムに存在するファイルで、inet @ localhostソケットはネットワークポートです。はい。はい。恐らく。しかし、答えの形でそれに答えることは、はるかに複雑です。誤解しない限り、2つの間に機能的な違いはないはずですが、10年以上前には、実装の一部が共有されていないため、それぞれに一組の癖がありました。対処できる癖のセット。それは10年前のことで、それ以来多くの更新があったため、私はそれらの詳細については今では時代遅れです。
エド・グリム

答えがかなり複雑になることは疑いません。私は自分自身を熟練したGoogle社員と考えており、この件に関しては何も見つかりませんでした!

ほとんどの人が最初にローカルホストを試してみて、それを彼らのために機能させることができるかどうかを確認します。メールサーバーが共有したmilterサーバー。または、場合によっては、独立して負荷分散されたメールサーバーが共有する負荷分散されたmilterサーバーもあります。localhostソケットの癖が強すぎる場合は、Unixソケットファイルを試して、動作が改善されるかどうかを確認してください。
エドグリム

回答:


1

Opendkimは、「local:」を使用してUNIXドメインソケットを参照し、inet:を使用してinetドメイン(ipv4)ソケットを参照し、inet6を使用してinet6ドメイン(ipv6)ソケットを参照します。

Unixドメインソケットは単一のマシンに対してローカルであり、リスニングUNIXドメインソケットはファイルシステム階層に存在します。ファイルのアクセス許可によってアクセスを制御でき、サーバーアプリケーションはどのユーザーが接続したかを確認できます(opendkimがこの機能を使用しているかどうかはわかりません)。利用可能な特別な機能もいくつかありますが、ここでは関連性があるとは思いません。

inetドメインソケットは、個々のipv4アドレスまたはマシンに割り当てられたすべてのipv4アドレスの0.0.0.0ワイルドカードのいずれかにバインドできます。localhost(127.0.0.1)にバインドされている場合、同じマシン上のアプリケーションからのみアクセスできますが、それ以上簡単に制限することはできません。

inet6ドメインソケットは、個々のipv6アドレスにバインドするか、マシンに割り当てられたすべてのipv6アドレスのワイルドカード「::」にバインドすることができます。場合によっては(アプリケーションが使用するsysctl構成とソケットオプションに応じて)、すべてのインターフェイスでリッスンしているinet6ソケットがipv4接続も受け入れることが可能です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.