Apache2/SSL+Subversion+PAM證明伺服器配置

來源:互聯網
上載者:User

概要:伺服器使用 apache2+ssl+svn+auth_pam 構建,具有如下特點:

    * 建立在 debian/apache2 的基礎上
    * subversion 1.1
    * mod_dav_svn 使得 subversion 可以通過web訪問
    * 使用 openssl 保障系統的安全性
    * 使用 mod_pam 和 mod_sys_group,使用系統的使用者名稱密碼來驗證使用者

目錄
====

1 安裝軟體
2 配置 apache2/SSL
3 配置 apache2/SVN
4 配置 PAM
5 總結

安裝軟體
========

如果你和我一樣用 Debian 的話,只要安裝這幾個包就可以了:

 apache2
 apache2-common
 apache2-mpm-prefork
 apache2-utils
 libapache2-svn
 libapache2-mod-auth-pam
 libapache2-mod-auth-sys-group
 subversion
 subversion-tools

openssl 會根據依賴性自動被安裝,如果你有要移植到 subversion 的 CVS 項目,
可以安裝

 cvs2svn

可以輕鬆轉換,不過這個不在本文討論範圍內,略了。安裝這幾個之後就可以開始
了。

配置 apache2/SSL
================

如果你不用 ssl 保障安全的話,跳過這部分就可以了,基本上不妨礙完整性(實際
上還是差一點的)。首先產生一個 SSL 簽名,使用命令

 # apache2-ssl-certificate

這裡會有一系列關於你的個人隱私的問題,回答完了,自然的簽名也就產生了,然
後我們就要在 apache2 裡面開啟 SSL 了,現在要做的是開啟 ssl 模組

 # a2enmod ssl

然後,使用 apache2 的虛擬機器主機功能來添加 SSL 的支援,將

 /etc/apache2/sites-available/default

複製一份,叫

 /etc/apache2/sites-available/ssl

好啦

修改 default 檔案的開頭為

 NameVirtualHost *:80
 <VirtualHost *:80>

修改 ssl 檔案的開頭為

 NameVirtualHost *:443
 <VirtualHost *:443>

這裡 443 是 SSL 的標準連接埠。

並在 ssl 檔案中加入如下內容

 SSLEngine On
 SSLCertificateFile /etc/apache2/ssl/apache.pem

儲存檔案後,運行命令

   # a2ensite ssl

來啟用這個虛擬機器主機

現在,修改檔案

 /etc/apache2/ports.conf

加上一行

 Listen 443

好了,到此為止,SSL 伺服器配置完成,重新啟動 apache 吧。執行

 # apache2ctrl -k restart

就可以了

配置 apache2/SVN
================

首先,我假設你有一個 subversion 的軟體倉庫了,如果沒有的話,建一個吧,或
者用 cvs2svn 轉換一個過來。

 # svnadmin create /var/lib/svn/repos

 # cvs2svn -s /var/lib/svn/repos /var/lib/cvs/oldrepos

讓這個目錄屬於 src 組,並把 www-data 加入 src 組,讓 svn 倉庫可以被 apac
he 訪問

 # chgrp -R src /var/lib/svn
 # chmod -R g+w /var/lib/svn
 # adduser www-data src

然後,在 apache2 那裡開啟 svn 的支援

 # a2enmod dav_svn

 /etc/apache2/sites-available/ssl

裡(如果沒使用 ssl 就改 defaults 檔案就可以了,下同)加上

          <Location /repos>
            DAV svn
            SVNPath /var/lib/svn/repos

            #AuthType Basic
            #AuthName "Subversion Realm"
            #require group src
          </Location>

這樣,重啟 apache2 之後,就可以通過 https 訪問你的代碼倉庫了,至於其中的
鑒權部分,我們在下一個部分再介紹。

配置 PAM
========

啟用鑒權用的兩個模組

 # a2enmod auth_pam
 # a2enmod auth_sys_group

這樣就可以用本機使用者和組對 web 訪問的使用者進行鑒權了,對於使用了 shadow 密
碼的使用者,需要讓 apache2 可以訪問 shadow 檔案

 # adduser www-data shadow

然後在 apache2 的設定檔裡面把剛才注釋掉的行開啟

            AuthType Basic
            AuthName "Subversion Realm"
            require group src

就可以對使用者進行鑒權了,AuthName 是可以任意指定的。這裡,凡是 src 組的成
員都可以訪問 subversion 倉庫,當然也可以對使用者鑒權

            require user gnawux

重新啟動 apache2, 訪問一下看看吧

 https://yourhostname.yourdomain/repos/

 https://yourhostname.yourdomain/repos/

總結
====

取一下代碼看看吧

 $ svn co --username yourname https://yourhostname.yourdomain/repos/trun
k localdir

好了,到現在為止,你的 subversion 伺服器已經配置完成了,看完這個長篇不容
易,希望能對你有所協助。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.