私はOpenVPNクライアントの設定をバージョン管理にコミットしたいのですが、リモートでホストされ、一般にアクセス可能なリポジトリにあります。
これにより、サーバーのホスト名とポート、および.crtファイルと.keyファイルへのファイルパスが明らかになります。
サーバーのホスト名/ポートを明らかにすることについて心配する必要がありますか、それともあいまいさによるセキュリティと見なされますか?
より一般的には、これはどの程度安全/危険ですか?
難読化された設定例は次のようになります。
client
dev tun
proto udp4
remote my.example.net 1194
remote-cert-tls server
tls-auth /home/ivan/path/to/ta.key 1
cipher AES-256-CBC
ca /home/ivan/path/to/ca.crt
cert /home/ivan/path/to/myuser.crt
key /home/ivan/path/to/myuser.key
nobind
user nobody
group nogroup
persist-key
persist-tun
comp-lzo yes
auth-nocache
更新:フィードバックをありがとう。 「あいまいさによるセキュリティ」と、安全なシステムについて必要以上に公開しないことの選択を対比することについてのポイントは、十分に理解されています。
私がこれを実行しているコンテキストは、残りをコミットしながら、バージョン管理から構成の一部を除外する簡単な方法を提供することに気付きました。 GitリポジトリはNixOSシステム構成用です。そのため、vpn構成の機密部分を別のファイル(gitignore)に入れ、その内容をnixが構成する最終構成ファイルに挿入できます。
したがって、私のconfiguration.nixは次のようになります。
services.openvpn = {
servers.fooServer = {
config = ''
# The insensitive stuff inline, committed to Git
client
dev tun
# etc...
# The sensitive stuff slurped from a gitignore'd file
${builtins.readFile ./foo-server.private.conf}
''
}
}
他にどのようなセキュリティ管理策を講じているのかわからないので、安全か安全かを判断できません。一般的に言えば、唯一の防御メカニズムとしてのあいまいさによるセキュリティは悪い習慣であり、常に回避する必要がありますが、他の基本的なセキュリティ制御に加えて、実際には不必要に情報を公開しない方が賢明かもしれません。
基本的なセキュリティプラクティス(つまり、デフォルトのパスワードなし、未使用のオープンサービスなし、最新のミドルウェアなど)を適用したと仮定すると、実際にはセキュリティレベルを弱めるものがないため、構成を公開しても安全だと思います。 。この構成を公開すると、悪意のあるユーザーがサーバーにアクセスしやすくなる可能性があるため、構成を公開することによって生じるリスクは、サーバーが現在どのように安全に構成および維持されているかに依存します。そのリスクを受け入れるかどうかはあなた次第です...
「あいまいさによるセキュリティ」を回避することは、それが決定的な人がとにかく見つけることができるものであるという理由だけでシステムに関する情報を提供することを意味しません。
また、開発マシンのバージョン管理だけでなく、リモートでホストされているバージョン管理を意味していると思いますか?
リモートバージョンコントロールサーバーがパブリックにアクセス可能であるか、この情報を知る必要のある人以上がアクセスできる場合、ファイルをバージョンコントロールに配置しても安全ではなくなります。そのため、そうだと思うなら、それは「あいまいさによるセキュリティ」。
上記のスニペットがすべて公開されている場合(つまり、主要なファイルが含まれていない場合)、保護している唯一の情報は、OpenVPNサービスの場所とそれに接続する方法です。スキャンと観察。この情報だけでは、攻撃者にアクセスを許可しません(何かがひどく誤って設定されているか、脆弱である場合を除きます)。
とはいえ、特定の脅威モデルによっては望ましくない可能性がある、環境に関するいくつかの情報が明らかになります。