架設安全的CVS服務器

發表于:2007-05-26來源:作者:點擊數: 標簽:
本文就以一家中小型的軟件 開發 公司為例,來介紹如何在Internet上架設一個 安全 的 CVS 服務器 ,以供分布在各地的員工通過Internet來訪問它。 架設安全的CVS服務器 日期:2004-08-01 來源: 天極操作系統專區 作者:Terry Yu CVS是一個著名的 版本控制 工
本文就以一家中小型的軟件開發公司為例,來介紹如何在Internet上架設一個安全CVS服務器,以供分布在各地的員工通過Internet來訪問它。

架設安全的CVS服務器
日期:2004-08-01   來源:天極操作系統專區   作者:Terry Yu

   CVS是一個著名的版本控制工具,無論是對個別程序員還是一個開發團隊來說,CVS都是非常有用的版本控制工具,而且它是免費的。CVS的功能也很強 大,總體上它是一個C/S結構的軟件,使用者首先要架設一個CVS服務器,在CVS服務器上導入項目實例、設置CVS項目訪問控制等。而客戶通過客戶端來 訪問CVS服務器,客戶可以取得項目最新代碼副本、提交自己修改的代碼等,而客戶可以從Internet、LAN、甚至本機來訪問CVS服務器。

   事實上,許多從事軟件開發的個人或且組織都在使用這個免費的軟件來幫助進行軟件開發。但用戶一方面在使用CVS的諸多功能進行版本控制的時候,卻忽視了 安全方面的設定,于是問題也因此而產生了。我們都知道軟件作一種特殊的產品,它是有價值的。對于一個軟件公司來說,軟件的源代碼就是企業最寶貴的資源,如 果泄漏出去,可能會給企業帶到重大的損失,甚至會影響到企業的生存。許多公司為了讓在家或是出差在外的同事也可以進行工作,通常會把CVS服務器放在 Internet上,而放在Internet上的CVS服務器就是一個可以泄漏源代碼的重要途徑,所以也更要認真考慮其安全性的問題。

  本文就以一家中小型的軟件開發公司為例,來介紹如何在Internet上架設一個安全的CVS服務器,以供分布在各地的員工通過Internet來訪問它。

  在這個假設的例子當中,這家軟件公司采用10M的ADSL專線接入Internet,并擁有一組固定IP。為了達到較高級別的安全,公司逐級采用了以下的策略和方法:


  第一層保護:在網關使用防火墻

  在接口網關處安裝了防火墻,并劃分了DMZ、內網、外網三個區域。CVS服務器和公司其它的對外服務器都放置在DMZ區域中,防火墻對DMZ區域實施不同內網、外網的專門安全策略,對于CVS服務器也實施專門安全策略。

  第二層保護:對安裝CVS服務的機器進行操作系統加固

  公司使用的是Red Hat Linux,最初安裝的Linux中缺乏嚴格的安全設定,需要進行操作系統加固才能達到更高的安全。

  第三層保護:利用CVS自身的安全特性

  這一部分,筆者將會在后文詳細講解CVS服務器的安裝配置等

  第四層保護:人員培訓和制度

   對于使用CVS的員工進行CVS的使用培訓,介紹如何安全的從外部連入CVS服務器,以及如何保護個人的CVS賬號等信息。由于開發人員可能從公司內網 中來訪問DMZ中的CVS服務器,也可能通過Internet從公司以外的地方來訪問DMZ中的CVS服務器。所要要針對這兩種情況制定相應的CVS訪問 制度,同時要求員工保護好自己的用戶名和密碼。

  在以上四層保護中,本文重點要介紹的是第三層保護。

  首先是CVS基本的安裝:

  1.下載源碼

   通過摸索引擎可以找到CVS的源代碼包,也可從CVS的官方網站cvshome.org上開始尋找,由于CVS歷史上也出現過一些安全漏洞,所以建議要 定期去其官方網站看看有沒有最新版本推出。目前最新的是2003年12月18日推出的1.12.5版本,大家嘗試從以下鏈接下載:

  http://ccvs.cvshome.org/servlets/ProjectDownloadList?action=download&dlID=351

  2. 編譯安裝

  [root@terry src]# tar -xjpvf cvs-1.12.5.tar.bz2
  [root@terry src]# cd cvs-1.12.5
  [root@terry cvs-1.12.5]# ./configure --prefix=/usr/local/terry_yu/cvs
  --disable-server-flow-control
  [root@terry cvs-1.12.5]# make
  [root@terry cvs-1.12.5]# make install

  以上指令將CVS安裝到/usr/local/terry_yu/cvs這個目錄上。

  注:除了使用源碼包進行安裝之外,還可以使用RPM包來安裝。

  3. 設置啟動CVS服務

  在Linux上CVS服務可以通過inetd、xinetd或tcpwrapper等來啟動,其中inetd由于安全理由在許多場合已經被xinetd所取代了。這里我們使用xinetd來啟動CVS服務。

  在/etc/xinetd.d目錄下為CVS服務創建一個配置文件,比如:/etc/xinetd.d/cvspserver,編輯/etc/xinetd.d/cvspserver,輸入如下內容:

  service cvspserver
  {
  disable = no
  socket_type = stream
  wait = no
  user = root
  env = HOME=
  server = /usr/bin/cvs
  server_args = -f --allow-root=/home/cvsroot pserver
  }

  注:

  1)pserver表示是口令認證的訪問方式,這是最常用的方式,其他還有gserver,kserver,ext,如果想要更高的安全性可以使用ssh來加密口令和數據流,不過這里為了用戶使用的方便,仍然選的是pserver
  2)--allow-root是指定Repository的目錄,可以建立多個Repository

  然后重新啟動xinetd:

  [root@terry bin]# /etc/rc.d/init.d/xinetd restart
  Stopping xinetd:  [  OK  ]
  Starting xinetd:  [  OK  ]

  重新啟動xinetd服務后,CVS服務也開始工作了:

4.在CVS服務器端建立Repository

  首先要創建一個名為cvs的組和一個名為cvsroot的用戶,以后要訪問CVS服務的用戶加入cvs這個組:

  [root@terry root]# groupadd cvs
  [root@terry root]# useradd -g cvs -s /sbin/nologin cvsroot
  [root@terry root]# chown -R cvsroot /home/cvsroot

  接下來進行初始化:

  [root@terry root]# cvs -d /home/cvsroot init

  這樣在/home/cvsroot目錄中就產生了CVSROOT目錄,其中存放了一些配置文件,如config等,然后設置權限:

  [root@terry root]# chown -R cvsroot.cvs /home/cvsroot
  [root@terry root]# chmod -R ug+rwx /home/cvsroot
  [root@terry root]# chmod 644 /home/cvsroot/CVSROOT/config

   為了CVS系統的安全,我們要修改/home/cvsroot/CVSROOT/config文件,將"#SystemAuth =no"的前而的注釋號#去掉,即改為“SystemAuth =no”,然后給開發者們逐一建立賬號,新建的不要分配用戶目錄,因為它將作為一個虛擬用戶帳號來使用,具體命令如:

  [root@terry root]# useradd -g cvs -M bogus
  [root@terry root]# passwd bogus

  上面的命令就創建了一個并沒有Home目錄的用戶bogus,接著將系統的shadow文件復制到CVSROOT, 并重命名為passwd:

  [root@terry root]# cp /etc/shadow /home/cvsroot/CVSROOT/passwd
  [root@terry root]# chmod 0644 /home/cvsroot/CVSROOT/passwd

  然后修改passwd文件,將除剛才設定的可使用CVS的用戶bogus之外的所有行刪除,然后去掉每行第二個冒號以后的所有內容,并添上字符串cvsroot, 改為如下格式:

  bogus:ND5$J8N9BW5DKV.nPdxfdsh:cvsroot

  然后,刪除掉剛剛在系統中添加的那個用戶bogus:

  [root@terry root]# userdel -f bogus

   好了,做到這里,CVS的服務器端就已經安裝設置好了,這樣你的CVS用戶就只能用passwd中規定的用戶來登陸你的CVS服務器了,要注意的是:本 文介紹的添加用戶的方法適用于小數量的用戶,如果是有大規模的開發人員,推薦采用連接LDAP或者數據庫來進行用戶的認證服務。通過這四層保護,相信可以 使用你放心的使用CVS服務了,不過本文只是作了最簡單的介紹,希望可以給大家起參考的作用。另外,想要得到CVS的最新信息,可以訪問CVS的主頁: http://www.cvshome.org/,還有Pascal Molli的CVS網站:http://www.loria.fr/~molli/cvs-index.html

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97