web-dev-qa-db-ja.com

Jenkinsを外の世界からアクセスできないようにするにはどうすればよいですか?

開発サーバーに、自動テスト用のツールJenkinsをインストールしました。これはポート8080で実行されます。www.mysite.com:8080に移動すると、このためのコマンドパネルが表示されます。 Apacheを使用してパスワードで保護することにより、これを外部からアクセスできないようにします。 (私のサーバーはUbuntu 12.04 LTSを実行しています)。私は以下を読み通しました ページ 一般的なアドバイス、特にセキュリティのトピックについて 提案 以下の設定:

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/opt/Apache/httpd/htdocs"
    ServerName jenkins.yourdomain.com
    ErrorLog "logs/jenkins-error_log"

    ProxyPass /jenkins/ ajp://127.0.0.1:8102/jenkins/
    ProxyPassReverse /jenkins/ ajp://127.0.0.1:8102/jenkins/
    <Location />
        Order allow,deny
        Allow from all
    </Location>
    <Location /jenkins/>
         AuthType basic
         AuthName "jenkins"
         AuthUserFile "/opt/Apache/httpd/conf/.htpasswd"
    </Location>
</VirtualHost> 

私のApacheファイルには現在次の設定があります。

<VirtualHost *:80>
        # Admin email, Server Name (domain name), and any aliases
        ServerAdmin [email protected]
        ServerName www.mysite.com
        ServerAlias mysite.com

        # Index file and Document Root (where the public files are located)
        DirectoryIndex index.html index.php
        DocumentRoot /var/www

        # Log file locations
        LogLevel warn
        ErrorLog /var/log/Apache/error.log
        CustomLog /var/log/Apache/access.log combined

</VirtualHost>

提案されたアプローチをエラーなしで機能させることができなかったので(コンソールまたはログにメッセージはありませんが)、次の行を追加しました。

<VirtualHost *:8080>
    ServerName www.mysite.com
    ProxyPass / http://www.dev.mysite.com:8080/
    ProxyPassReverse / www.dev.mysite.com:8080/
    ProxyPreserveHost on
    <Proxy *>
        AuthType Basic
        AuthName "Dev Server"
        AuthUserFile "/home/.htpasswd"
        Require valid-user
    </Proxy>
</VirtualHost>

そして、私の.htpasswdファイルに次の行を入れました。

john:n5MfE
dave:9fluR

その後、Apacheを再起動しましたが、パスワードがなくてもポート8080にアクセスできます。私は正しい手順に従っていますか?

2
celenius

プレーンテキストのパスワードはLinuxではサポートされていないため、htpasswdプログラムを使用して、ユーザーを作成し、.htpasswdファイルに追加する必要があります。

htpasswd -c /home/.htpasswd john
New password:
Re-type new password:
Adding password for user john

ファイルを作成し、指定したパスワードを使用してユーザーjohnを追加します。次に、このような他のユーザーを追加できます

htpasswd /home/.htpasswd dave
New password:
Re-type new password:
Adding password for user dave
2
user9517

よく分かりません <Proxy>ディレクティブはHTTP基本認証を処理します(ドキュメントはIP /ドメインによる制限のみを示唆しています)。次のような一般的な方法を使用する必要があると思います。

<Location />
    AuthType Basic
    AuthName "Dev Server"
    AuthUserFile "/home/.htpasswd"
    Require valid-user
</Location>
2
dsznajder