Stunnel でポート範囲を定義する方法はありますか?

Stunnel でポート範囲を定義する方法はありますか?

同じボックスに複数のクライアントがあり、同じドメインに接続します。各クライアントは異なるポートを経由する必要があります。エントリを複数回定義することはできますが、受け入れられる連続したポート範囲をリストするより簡単な方法はありますか?

# stunnel.conf

[client-1]
client = yes
accept = 127.0.0.1:5098
connect = target-domain.com:443

[client-2]
client = yes
accept = 127.0.0.1:5099
connect = target-domain.com:443

[client-3]
client = yes
accept = 127.0.0.1:5100
connect = target-domain.com:443

[client-4]
client = yes
accept = 127.0.0.1:5101
connect = target-domain.com:443

[client-5]
client = yes
accept = 127.0.0.1:5102
connect = target-domain.com:443

答え1

構成に範囲を設定することはできないと思いますstunnel

stunnelドキュメントhttps://www.stunnel.org/static/stunnel.html言う:

オプションのアドレス パラメータは次のいずれかになります。

ポート番号。

コロンで区切られた IP アドレス (IPv4、IPv6、またはドメイン名) とポート番号のペア。

Unix ソケット パス (Unix のみ)。

(注記:1つのポート番号)

そして:

accept = [ホスト:]ポート

指定されたアドレスで接続を受け入れる

私が考えられる代替解決策は次のとおりです (完全なリストではありません):

  • stunnel任意のテンプレート システムを使用して他のソースから構成を自動生成します(これにより、単純なループ コマンドでポート範囲から各ステートメントを生成できるようになります)。
  • 単一のポートを定義し、iptables各クライアントポートを ; で定義されたポートに転送するために使用しますstunnel。または、redirコマンド (出典: linux.die.net
  • HAProxyオプションでbindポート範囲を具体的に許可するなどの他のソフトウェアを使用しますbind [<address>]:<port_range> [, ...] [param*]<port_range> is either a unique TCP port, or a port range for which the proxy will accept connections for the IP address specified above.

関連情報