web-dev-qa-db-ja.com

SASLを使用してsvnserveで匿名SVNアクセスを許可するにはどうすればよいですか?

トラフィックを暗号化するために、SASL認証と暗号化を使用してsvnserveをセットアップしました。匿名アクセスを許可する必要があります。私の設定ファイルconf/svnserve.conf(コメントを削除)は次のようになります。

[general]
anon-access = read
auth-access = write
realm = realm-of-repo

[sasl]
use-sasl = true
min-encryption = 128
max-encryption = 256

関連するsasl構成ファイル:

pwcheck_method: auxprop
auxprop_plugin: sasldb
sasldb_path: /path/to/sasldb
mech_list: DIGEST-MD5

ユーザー名とパスワードを入力すると、すべてが期待どおりに機能します。チェックアウトして変更を加えることができます。ただし、匿名アクセス(ユーザー名またはパスワードなし)は失敗し、次のエラーメッセージが表示されます。

svn: SASL(-1): generic failure: All-whitespace username.

svnserveとSASLを使用して匿名SVN読み取りアクセスを有効にするにはどうすればよいですか?私はApacheで解決策を探していません。

2
Lekensteyn

私は最近この情報を探していました、そして私が見つけたものを共有したいと思いました。認証にSASLを使用する場合、匿名アクセスを許可することは可能ですが、匿名アクセスは暗号化または整合性保護されないことに注意する必要があります。

必要に応じて、anon-access = readにはすでにsvnserve.confがあります。

次に、匿名アクセスメカニズムは暗号化も整合性保護もサポートしていないため、min-encryption = 0を設定する必要があります。この手順をスキップすると、認証メカニズムのネゴシエーション時に匿名アクセスが使用できなくなります。

最後のステップは、svn.conf(Subversion用のSASL構成ファイル)でSASL認証メカニズムを設定することです。行を変更します。

mech_list: DIGEST-MD5

mech_list: DIGEST-MD5 ANONYMOUS

これにより、匿名メカニズムが利用可能になります。 svnserveを再起動すると、認証プロンプトなしでチェックアウトを実行できるはずです。ディレクトリごとのアクセス制御を使用している場合は、ユーザー$anonymousに適切なアクセスが許可されていることを確認することをお勧めします。

考慮すべきことがいくつかあります。前述のように、匿名で行われるすべてのアクセスはクリアテキストで行われます。これは、パブリックネットワークを介して機密コードを処理している場合は望ましくない場合があります。また、すべてのユーザーが匿名アクセスを介して読み取りアクセス(チェックアウトなど)を実行するため、ログが追跡に役立たない場合があります。さらに、匿名の書き込みを許可すると、すべてのコードが匿名でコミットされる可能性が高くなります。つまり、どの変更が誰によってコミットされたかがわかりません。

コメントで述べたように、1つのオプションは、単純なパスワードを使用してanonymousという実際のユーザーを作成し(パスワードがないと失敗します)、ディレクトリごとのアクセス制御を使用して、読み取りアクセスのみが許可されていることを確認することです。選択したディレクトリ。これにより、真の匿名アクセスとほぼ同じくらい便利なアクセスを提供しながら、暗号化/整合性チェックを維持できます。

1
Steve

use-sasl = true認証を強制します(匿名アクセスを禁止するようにSVNに指示します)。

読み取り専用権限を持つユーザーを作成して匿名アクセスに使用するか、httpを読み取り専用アクセスに使用し、saslを読み取り/書き込みに使用することができます。

1