2007年4月 Archives

« 2007年3月 2007年5月 »

Subversion

サーバーの基本的な機能がそろってきたので、そろそろSubversionを導入しようと思う。その前に確認すべき事がある。なんでもSubversionを提供する環境は複数あるらしい。その中から、最適な環境を選択してセットアップしていくのだが、まずは調べて出てきた環境の一覧を書き出してみる。

-----------------------------------------------------------------
1.svnserver 単独実行
Subversionをデーモンとして常駐させる。基本的な方法。
メリット:設定が簡単(らしい)
デメリット:最初のパスワードのみ暗号化、それ以降は暗号化されない。
プロトコル:svn://


2.svn+ssh 
sshdをスーパーデーモンとして動作。セキュアな方法
メリット:暗号化される。余分なメモリを食わない
デメリット:1より設定が複雑。クライアント側でもsshに対応が必要
プロトコル:svn+svn://


3.Apacheモジュールとして動作 
Apacheをスーパーデーモンとして動作。モジュールの追加
メリット:SSLなら暗号化される。余分なメモリを食わない
デメリット:webDAVと絡んでより設定が複雑。Apacheに負荷が掛からないか疑念が残る
プロトコル:http:// https://
-----------------------------------------------------------------

ざっとこんな所だと思う。そのほかに方法があれば教えてください。
そして、今回はsvn+ssh環境で構築することに決定。
まず、大切なのがセキュリティー。一般的に考えてsshなら文句はない、と思いたい。そもそもsshdが動いている環境なので、メモリの肥大化も防げる。一石二鳥と言った感じ。svnserver単独実行はイントラ内だけなら理想的かもしれないが、今回はwebをターゲットにしているので、落選。一方、Apacheモジュールは捨てがたかったが、webDAVへの信頼性やApacheへの負荷を考えて今回は保留。いずれ構築してみたい。

SVN+WebDAV

当初、SVN+SSHの導入を考えていたが、SVNクライアントのSVN+SSH対応がイマイチなので、WebDAVとの連携で構築してみる。
SSL暗号化とbasic認証でセキュリティを高めることにした。


[install]
# cd /usr/ports/devel/subversion
# make WITHOUT_BDB="YES" WITH_MOD_DAV_SVN="YES" install clean


リポジトリ生成
# mkdir /home/svn/
# mkdir /home/svn/test
# svnadmin create /home/svn/test

オーナーとパーミションの変更
# chown -R www:www /home/svn
# chmod -R 0755 /home/svn

Basic認証生成
#cd /usr/local/etc/apache22/Includes
# htpasswd -c basic-htpasswd test
New password: ←testsvn
Re-type new password: ←testsvn
Adding password for user test

webdav_svn.conf生成
#nano /usr/local/etc/apache22/Includes/webdav_svn.conf
----------------------------------------------------------------

DAV svn
SVNAutoversioning on
SVNPath /home/svn/test
# SSLRequireSSL
# AuthsSVNAccessFile /usr/local/etc/apache22/authzsvn.conf
AuthType Basic
AuthUserFile /usr/local/etc/apache22/Includes/basic-htpasswd
AuthName "WebDAV Subversion Authentication"
Require valid-user

----------------------------------------------------------------

確認
http://localhost/svn/test/

SSLの有効化(リソース http://platz.jp/howto/apache_ssl6.html )
秘密鍵生成
#cd /usr/local/etc/apache22
# openssl req -new -x509 -nodes -out server.crt -keyout server.key -days 365

色々質問される--------------------------------------------------
Generating a 1024 bit RSA private key
.............++++++
.......++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:Shinjyuku-ku
Organization Name (eg, company) [Internet Widgits Pty Ltd]:LOCALHOST inc
Organizational Unit Name (eg, section) []:
Common Name (eg, YOUR name) []:localhost←ここを省略するとsvnクライアントでエラーEmail Address []:
----------------------------------------------------------------
同じフォルダにSSLの秘密鍵 server.key とプライベート証明書 server.crt が出来る。
[root@dell /usr/local/etc/apache22]# ls
Includes extra httpd.conf.save mime.types server.key
envvars.d httpd.conf magic server.crt

httpd.conf書き換え 
# nano /usr/local/etc/apache22/httpd.conf

# Secure (SSL/TLS) connections
Include etc/apache22/extra/httpd-ssl.conf  ←#を取る

webdav_svn.conf書き換え
# nano /usr/local/etc/apache22/Includes/webdav_svn.conf

SVNPath /home/svn/test
SSLRequireSSL
# AuthsSVNAccessFile /usr/local/etc/apache22/authzsvn.conf ←#を取る

# /usr/local/etc/rc.d/apache22 restart

確認
http://localhost/svn/test/ ←不可
https://localhost/svn/test/ ←可

more.. "SVN+WebDAV" »

IPアドレスの登録・削除

1台のサーバーに複数のIPアドレスを割り当てる

コマンドラインによる設定
# ifconfig fxp0 inet IPアドレス netmask 255.255.255.255 alias

設定ファイルへの記述(以下の1行を追加設定)
 # nano /etc/rc.conf
ifconfig_fxp0_alias1 inet IPアドレス netmask 255.255.255.255

※コマンドラインによる設定方法のみの場合、サーバのリブートを行うと追加設定を行たIPアドレス設定は消去されてしまう。その為、必ずrc.confへも記述。

(参考)
http://ash.jp/freebsd/ipalias.htm


IPアドレスを削除するには

ifconfig deviceName inet IP.ad.re.ss netmask NE.TM.AS.KK -alias
#ifconfig em0 inet 192.168.1.1 netmask 255.255.255.255 -alias

Munin

GIGAZINEを参照にして管理ツールMUNINをinstall
MRTGという管理ツールもあるけど、こっちの方が、設定が遙かに簡単。


[インストール]
cd /usr/ports/sysutils/munin-node
make install
質問事項は全てyes

cd /usr/ports/sysutils/munin-main
make install
質問事項は全てyes

[設定ファイル]
nano /usr/local/etc/munin/munin.conf
-------------------
dbdir /usr/local/var/munin
htmldir /home/munin/www/public
logdir /home/munin/log/munin-main
rundir /var/run/munin
-------------------

[ディレクトリ生成]
mkdir -pv /home/munin/www/public
mkdir -pv /home/munin/log/munin-main
mkdir /home/munin/templates
chown -R munin:munin /home/munin

[Apache設定]
*SSLでブラウザから閲覧可能に
nano /usr/local/etc/apache22/extra/httpd-ssl.conf
-------------------

...
#Munin
Alias /_munin/ "/home/munin/www/public/"

AuthType Basic
AuthUserFile /usr/local/etc/apache22/basic-htpasswd
AuthName "Munin Authentication"
Require valid-user
    Options Indexes FollowSymLinks
AllowOverride All
Order Allow,Deny
Allow from all

-------------------
*念のため認証ファイルの生成メモ
cd /usr/local/etc/apache22/
htpasswd -c basic-htpasswd admin

[デーモンとして有効化]
nano /etc/rc.conf
-------------------
munin_node_enable="YES"
-------------------

[起動]
/usr/local/etc/rc.d/munin-node.sh start
/usr/local/etc/rc.d/apache22 restart

https://exsample.co.jp/_munin/

RSS + Contuct

  • rss
  • email

Credit

Copyright (C) 2007 kappa-lab.com.
All Rights Reserved.