2009年9月22日火曜日

鍵交換方式で認証


 Ubuntuで作業するときは、Tera Termでつないで作業しているので少しセキュリティ強化のために、認証方式を鍵交換で行います。


1.鍵の作成
 公開鍵と秘密鍵を作成する

 作成方法は自由。
  •  ssh-keygenで作成。
  •  Tera Termで作成。

 秘密鍵:id_rsa(クライアント側に持っておく)
 公開鍵:id_rsa.pub(ubuntu側に持っておく)

2.公開鍵の配置

公開鍵をホームディレクトリ置きます

 2-1.ホームディレクトリに「.ssh」というディレクトリを作成する
 2-2.id_rsa.pubファイルを「authorized_keys」というファイル名で保存する

3.パスワード方式の認証を禁止する

 SSHでパスワードでログインできなくなります。

 /etc/ssh/sshd_configファイルの「PasswordAuthentication」を「no」でする

4.sshdを再起動する。

 >sudo /etc/init.d/ssh restart

ubuntu 9.04にRedmineをインストールして使う

 windows上では動かすことはできるけど、Ubuntu上でも動作させたいので、インストールから動作までを調査しました。
 いろいろなものをインストールしないとならないので結構大変。
1回でインストールできるものを誰か作ってくれないかしら・・・。

■rubyのインストール

1.rubyをインストール
バージョンは、1.8.7が良いらしい。他のバージョンだと動作しないとか。
<sudo aptitude install ruby ruby1.8-dev irb rdoc build-essential libopenssl-ruby1.8

rubyのバージョン確認
<ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]

2.rubygemsをインストール
rubyのライブラリ管理ツールだそうです。これをインストールしないと始まらない。

2-1.gemのインストーラを取得します。
http://rubyforge.org/projects/rubygems/
rubygems-1.3.5.zip
2-2.rubygems-1.3.5.zipを任意のディレクトリに展開します。
zipファイルなので、なんとか展開してください。
自分は、Windows XPで展開してそれを使いました。
2-3.setup.rbを実行します。
rubygems-1.3.5.zipを展開したディレクトリに移動し、setup.rbを実行します。
結構時間がかかるので気長に待つこと。

>ruby setup.rb
2-4.gem1.8のリンクを作ります。
こうすると、「gem」というコマンドで実行できるようになる
<sudo ln -s /usr/bin/gem1.8 /usr/bin/gem

3.rakeをインストールします。

インストール
http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/
<sudo gem install rake

バージョン確認
<rake --version
rake, version 0.8.7

4.Redmineをを取ってくる
任意のディレクトリにチェックアウトしておく。
リビジョンアップとかで、簡単にアップグレードができるので(動かなくなる可能性もありますが)

varディレクトリにチェックアウトします

/var>sudo svn co http://redmine.rubyforge.org/svn/branches/0.8-stable redmine
リビジョン 2898 をチェックアウトしました。

5.Redmineのディレクトリの所有者、グループを変更

apache2で参照できるようにします。

<sudo chown -R www-data:www-data redmine

■MySQLのインストール

Redmineのデータは、MySQLで管理します。
他のデータベースを使用したい場合は、他のサイトで確認してください。

1.MySQLのインストール
Ubuntuインストール時にインストール済みの場合はしなくてもよいです。
MySQLのバージョンを変更したいときは必要です。

<sudo aptitude install mysql-server mysql-client

途中でmysqlのrootのパスワード聞かれるので忘れないように覚えておく
ここでは、「ruby-mysql」とか。

【ヒント】
mysqlのデータベースの位置を変更したいとき参照
http://tobysoft.net/wiki/index.php?Ubuntu/mysql

2.Redmine用のデータベースを作成
Redmineのデータを保管するデータベースをMySQL上に作成します。
MySQLも勉強不足のため1つ1つのコマンドのことはよく知らないです。

2-1.mysqlのコンソールを起動
<mysql -u root -p
2-2.データベースを作成
<create database redmine character set utf8;
2-3.権限を与える
<grant all privileges on redmine.* to redmine@localhost identified by 'redmine';

4.データベースができたか確認

<mysql redmine -u redmine -p
以下のメッセージが表示されればOK
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 34
Server version: 5.0.75-0ubuntu10.2 (Ubuntu)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

■Redmineの設定

1.データベースの接続先作成

テキストエディタを使用してMySQLへの接続情報を変更します。
ヒント
http://tobysoft.net/wiki/index.php?Ubuntu/Redmine#r547a266

/var/redmine/config>sudo cp database.yml.example database.yml

新しく作成した、サンプルから作成したdatabase.ymlを編集します。
production:セクションのところを変更する
production:
adapter: mysql
database: redmine
host: localhost
username: redmine ← ここ1)
password: redmine ← ここ1)
encoding: utf8
socket: /var/run/mysqld/mysqld.sock ← ここ2)

1)8のデータベース作成時の設定値
2)以下のコマンドで表示された内容を記述する
cat /etc/mysql/my.cnf | grep socket

# Remember to edit /etc/mysql/debian.cnf when changing the socket location.
socket = /var/run/mysqld/mysqld.sock ← これを2)へ追記
socket = /var/run/mysqld/mysqld.sock
socket = /var/run/mysqld/mysqld.sock

■Rails関連の設定
ここでやっと、RubyOnRailsのインストールをします。結構時間がかかります。

1.Railsのインストール
バージョン指定なしでインストールすると最新バージョンがインストールされ、データベース環境を作成するときにエラーがでるので、バージョン指定してインストールします。
>sudo gem install -v=2.1.2 rails

バージョン指定しないでインストールしてしまった場合は、まず、アンインストールします。
※2009/09/22時点では、バージョン指定をしないでインストールすると、2.3.4がインストールされます。
>gem list
*** LOCAL GEMS ***
actionmailer (2.1.2)
actionpack (2.1.2)
activerecord (2.1.2)
activeresource (2.1.2)
activesupport (2.1.2)
rack (1.0.0)
rails (2.1.2)
rake (0.8.7)

複数バージョンがインストールされている場合は、バージョン指定をしてアンインストールします。
>gem uninstall -v=2.3.4 rails

2.データベースにRailsの環境を作成する

 バージョンが違うやらで結構失敗しました。

 /var/redmine>sudo rake db:migrate RAILS_ENV=production
こんなメッセージが出たら、バージョン指定してインストール
(in /var/redmine)
Missing the Rails 2.1.2 gem. Please `gem install -v=2.1.2 rails`, update your RAILS_GEM_VERSION
setting in config/environment.rb for the Rails version you do have installed, or comment out
RAILS_GEM_VERSION to use the latest version installed.

3.Passengerをインストールする
apache上でrailsを実行するためのモジュールをインストールする
 以下の3つのパッケージが必要になります。
・build-essential(rubyインストール時にインストール済み)
・ruby1.8-dev(rubyインストール時にインストール済み)
・passenger(今回インストールする)
>sudo gem install passenger

4.apache2用のpassengerのモジュールをインストール

<sudo passenger-install-apache2-module
確認メッセージがでるので、「1.The Apache2 module will be installed for you」を選択します
 通常(いや、自分の環境)では、足りないモジュールがあるので、足りないものをインストール後、再度、上のコマンドを実行する。
足りないモジュールの一覧が表示される
note found(★印がついている)のモジュールをインストールする
* GNU C++ compiler... found at /usr/bin/g++
* Ruby development headers... found
* OpenSSL support for Ruby... found
* RubyGems... found
* Rake... found at /usr/bin/rake
* Apache 2... found at /usr/sbin/apache2
★* Apache 2 development headers... not found 
★* Apache Portable Runtime (APR) development headers... not found
★* Apache Portable Runtime Utility (APU) development headers... not found
>sudo aptitude install apache2-prefork-dev libapr1-dev libaprutil1-dev
↓これでもOKらしい
>sudo aptitude install apache2-prefork-dev libapr1-dev -y
インストールが完了すると、英語でいろいろなメッセージが表示されます。
(実際の設定をどうしたかは、別途記載します)
Passengerに関するapache2のモジュール指定のファイルに記載する情報が表示されます。

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5
PassengerRuby /usr/bin/ruby1.8
apache2に設定するバーチャルホストの設定に関する情報が表示されます。
<VirtualHost *:80>
ServerName www.yourhost.com
DocumentRoot /somewhere/public # <-- be sure to point to 'public'!
</VirtualHost>

■Apache2の設定

Apache2でPassengerを使用できる用に設定します。
1.passengerの設定ファイル作成
/etc/apache2/mods-available/ディレクトリに移動しておきます。
passenger.loadファイルを作成し、以下の内容を記述します。
LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5/ext/apache2/mod_passenger.so
passenger.confファイルを作成し、以下の内容を記述します。
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.5
PassengerRuby /usr/bin/ruby1.8

2.passengerを有効の有効化
apache2を再起動を再起動し、passengerを有効にします。

>sudo a2enmod passenger
Run '/etc/init.d/apache2 restart' to activate new configuration!
>sudo /etc/init.d/apache2 restart
3.redmine用サイト作成
redmine用の仮想サイトの作成をします。
あらかじめ、/etc/apache2/sites-available/ディレクトリに移動しておきます。
redmineというサイトファイルを作成し、以下の内容を記載する
<VirtualHost *:80>
ServerName サーバー名 ← 1)サーバー名
DocumentRoot /var/redmine/puclic ← redmineのインストール先
<Directory /var/redmine/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ErrorLog /var/redmine/redmine-err.log
</VirtualHost>

1)は、redmineのサイト名を記載します。
例)redmine.servername等
2)は、redmineのインストール先のpublicディレクトリ名を記載します。
4.新しく作成したredmineサイトを有効化
4.1 redmine用のVirtualHostの有効化
>sudo a2ensite redmine
4.2 しなくてもいいかも
>sudo a2enmod rewrite
4.3 apache2の再起動
>sudo /etc/init.d/apache2 restart
apache2の再起動が[OK]になれば完了

■その他
 新しく作成したサイトのIPアドレスは、hostsに書いておく。

Ubuntu 9.04にSubversionをインストールする

 aptitudeでsubversionをインストールすると古いバージョンのものがインストールされるので最新のバージョンをインストールする方法をメモっておきます。

 今回はバージョン1.6.5。
バージョンが変わっても手順は変わりません。

1.既にSubversionがインストールされている場合は、purgeしておく。

 こんな感じ

>sudo aptitude purge subversion-tools
>sudo aptitude purge subversion

とか、

>sudo dpkg -P libapache2-svn
>sudo dpkg -P subversion-tools
>sudo dpkg -P subversion
>sudo dpkg -P libsvn1
>sudo dpkg -P libserf-0-0
>sudo dpkg -P libneon27

2.インストールに必要なパッケージを集める。

 文献に記載したURLからダウンロードする。
 CPUにあったものだけダウンロード

a.libneon27-gnutls_0.28.2-6.1ubuntu0.1_i386.deb
b.libserf-0-0_0.3.0-0.3ubuntu1~ppa1~jaunty1_i386.deb
c.libsvn1_1.6.5dfsg-1ubuntu1~ppa4~jaunty1_i386.deb
d.subversion_1.6.5dfsg-1ubuntu1~ppa4~jaunty1_i386.deb
e.subversion-tools_1.6.5dfsg-1ubuntu1~ppa4~jaunty1_all.deb
f.libapache2-svn_1.6.5dfsg-1ubuntu1~ppa4~jaunty1_i386.deb

3.ダウンロードしたパッケージを順番にインストールする

 >dpkg -i パッケージファイル名

4.インストール確認
インストールしたバージョンが表示されればインストール成功

>svnadmin --version

svnadmin, バージョン 1.6.5 (r38866 w/ double-tc patch)
コンパイル日時: Sep 16 2009, 19:19:17

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

以下のリポジトリバックエンド (FS) モジュールが利用できます:

* fs_base : Berkeley DB リポジトリを扱うためのモジュール。
* fs_fs : プレインファイル (FSFS) リポジトリを扱うためのモジュール。


文献
1.本体がリリースされている
>パッケージb.~f.
2.各種ライブラリがリリースされている
>パッケージa.