デビアンな生活 2007年04月

デビアンな生活

日本語コンソールベースのDebianTIPS集として始めたが、結局LXDEになってしまった。

パーティション

debianでは、1つパーティションにインストールするのが、もっとも手っ取り早いが、バージョンアップなどを考えるときは、ユーザ領域である/homeを分けておいたほうがよい。また、今回WWWサーバを動かすこともあり、/varも独立させることにした。

インストースマニュアルでは、パーティションの操作ソフトとしてpartmanを推奨されているが、debian-installerでしか使用できないので、cfdiskpartedを併用している。cfdiskは見やすく、writeするまで変更は反映されず安全であるが、パーティションの移動をするためには、partedが必要。
また、パーティションの使用目的をわかりやすくするために、ext2/ext3ファイルシステムでは、e2labelでボリュームラベルをつけておくと便利。

たとえば、/dev/hda4を/homeにする場合は、
# cfdisk /dev/hda または parted /dev/hda
いずれも、helpでヘルプメッセージがでるので、hda4を作る
フォーマットをして、ラベルをつける
# mkfs.ext2 /dev/hda4
# e2label /dev/hda4 /home
とりあえず/mntのマウントして、データを移す
# mount /dev/hda4 /mnt
# cp -a /home/* /mnt
# rm -f /home/*
# umount /mnt
fstabを変更して、マウントする。
# vi /etc/fstab
# mount -a

スポンサーサイト

バーチャルホスト

apache2では、バーチャルサーバが設定できる。
以下の設定で複数のDNSを使い分けられるので便利
ただし、ServerNameが一致しないときは、最初のVirtualHostに割り当てられてしまう。どうも、_default_がうまく設定できない。

NameVirtual Host *:80

ServerName test.local.net
DocumetRoot "var/www/test"


ServerName run.local.net
DocumetRoot "var/www/run"

NameVirutal Host *:443

ServerName ssl.local.net
DocumetRoot "var/www/ssl"


WebDAVのSSL接続

セキュリティのため、SSL接続に変更
apache2.2では、apache2-ssl-certificateがないの、自分で設定。設定の方法は、よしだメモの通り
http://d.hatena.ne.jp/rudeboyjet/20070124/
# aptitude
> opensslのインストール
# vi /etc/ssl/openssl.cnf
> [usr_cert]セクションのnsCertType=serverのコメントアウトを外す
> [v3_ca]セクションのnsCertType=sslCA,emailCAのコメントアウトを外す
# cd /usr/lib/ssl/misc/

2回目に作成するときは、rm -rf demoCAで以前のファイルを消去しておく。
# ./CA.sh -newca
CA certificate filename (or enter to create) Enter
Enter PEM pass phrase: 適当にパスフレーズ入力
Verifying - Enter PEM pass phrase: パスフレーズ繰り返し入力
Country Name (2 letter code) [AU]: JP
State or Province Name (full name) [Some-State]: 県名
Locality Name (eg, city) []: 市名
Organization Name (eg, company) [Internet Widgits Pty Ltd]: Enter
Organizational Unit Name (eg, section) []: Enter
Common Name (eg, YOUR name) []: web.test.comなどのドメイン名を入れる
Email Address []: Enter
A challenge password []: Enter
An optional company name []: Enter
Enter pass phrase for ./demoCA/private/./cakey.pem: パスフレーズを繰り返す

# openssl rsa -in ./demoCA/private/cakey.pem -out ./demoCA/private/cakey.pem
Enter pass phrase for cakey.pem: パスフレーズを入れる
# openssl x509 -in ./demoCA/cacert.pem -out ./demoCA/cacert.crt
# openssl x509 -inform pem -in ./demoCA/cacert.pem -outform der -out ./demoCA/cacert.der
cakey.pemは、認証局の秘密鍵。cacert.pemは、認証局の証明書。
cacert.derは、セキュリティ証明書で、ダウンロードできる場所にコピーし、ブラウザにをインストールする。

apache2の設定
# mkdir /etc/apache2/ssl
# cd /usr/lib/ssl/misc/demoCa
# cp cacert.crt /etc/apache2/ssl
# cp private/cakey.pem /etc/apache2/ssl

# cp /usr/share/doc/apache2.2-commmon/examples/apache2/extra/httpd-ssl.conf /etc/apache2/sites-available/ssl.conf
# vi /etc/apache2/sites-available/ssl.conf
> バーチャルホストの設定
NameVirtualHost *:443

> ドキュメントルートの変更
DocumentRoot "/var/www/"
> SSLキーの設定
SSLCertificateFile /etc/apache2/ssl/cacert.crt
SSLCertificateKeyFile /etc/apache2/ssl/cakey.pem
>
の前に挿入
Include /etc/apache2/sites-available/dav.conf
> ログの拡張子が_logになっているので、logrotateのため、.logに変更
# vi /etc/apache2/sites-available/default
> バーチャルホストの設定
NameVirtualHost *:80

> ドキュメントルートの変更
DocumentRoot /var/www/pub
> RedirectMatch ^/$ /apache2-default/のコメントアウト
# mv /var/www/apache2-default /var/www/pub
# a2dissite dav.conf
# a2enmod ssl
# a2ensite ssl.conf
# /etc/init.d/apache2 reload

Windowsから、SSL接続のDAVを確認

参考リンク: SSLによる安全なWebサイト作り

パケットフィルタリング

/etc/init.d/iptablesの起動スクリプトは完全に省かれたので、iptablesのスクリプトを/etc/network/if-up.dにおいた。
run-partsで実行しているので、スクリプト名は英数字とハイフンとアンダーバーのみである。つまり、ドットは使えない。

/etc/netwrok/optionsはetchからなくなっている。
ルータ化のためには、forwardのためには、
# vi /etc/sysctl.conf
# net.ipv4.conf.default.forwarding=1をコメントアウト
# reboot
sysctl -pでは、defaultしか変更できないので、デバイスごとに設定するより、rebootが簡単

iptablesの設定では、とりあえず、下記があればルータとして働く
あとは、INPUTとOUTPUTのターゲットでフィルタリングを追加する。

iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -A POSTROUTING -o $ETH_WAN -j MASQUERADE

iptables -P FORWARD DROP
iptables -A FORWARD -i $ETH_LAN -j ACCEPT
iptables -A FORWARD -i $ETH_WAN -m state --state ESTABLISHED -j ACCEPT

WebDAV

データ共有のためWebDAVサーバを設定
まずapache2をインストール。etchで2.0から2.2にバージョンアップ
apache2-default/index.htmlも超シンプルに変わっている。
# aptitude
apache2 libapache2-mod-encodingをインストール
# cat > /etc/apache2/mods-available/encoding.conf
<IfModule mod_encoding.c>
EncodingEngine on
NormalizeUsername on
SetServerEncoding UTF-8
DefaultClientEncoding JA-AUTO-SJIS-MS SJIS
AddClientEncoding "cadaver/" EUC-JP
</IfModule>
# cp /usr/share/doc/apache2.2-commmon/examples/apache2/extra/httpd-dav.conf /etc/apache2/sites-available/dav.conf
# vi /etc/apache2/sites-available/dav.conf
> DavLockDB "/var/lock/apache2/DavLock"に変更
> <Directory "/var/www/dav">に変更
> Basic認証のために追加
AuthType Basic
AuthName "WebDAV"
AuthUserFile "/etc/apache2/passwd"
Require valid-user
> LimitExcept節をコメントアウト
# htpasswd2 -c "/etc/apache2/passwd ユーザ名
> パスワードを2回入力
# a2enmod dav
# a2enmod dav_fs
# a2enmod encoding
# s2ensite dav.conf
# /etc/init.d/apache2 reload

Windows Xp IE6のファイル-開くよりWebフォルダを選択し、http://***でWebDAVを開く。最初に出る認証画面は、統合Windows認証と思われるので、キャンセルする。その後にでるWebDAVの認証画面で、ユーザ名とパスワードを入力する。最初の認証画面は、SSL接続に変えると出なくなる。

フレームバッファ

今回、フレームバッファ周りを設定。まずは、カーネルの再構成 for 2.6.18。ソースは/usr/src/linuxに展開済。
# cd /usr/src/linux
# make menuconfig
> Device Drivers
>> Graphics suport
>>> Support for frame buffer devices yes
>>> ATI Rage128 display support yes
! なぜかVESAはまともに動かないので、専用ドライバを選択
> General Setup
>> Local version
! 設定しておくと、カーネル名がわかりやすい
# vi /etc/kernel-img.conf
> warn reboot = no
> silent modules = yes
! 設定しておくとアラームがなくて便利
# make-kpkg clean
# make-kpkg kernel-image
# cd ..
# dpkg -i linux*.deb
# reboot

# aptitude
> fbsetのインストール
# fbset 800x600x70
! 標準は80x30のコンソールが、100x37になる。
! モードは、/etc/fb.modesから選択。
! 1024x768では少し、字が小さすぎる。
# export LANG=ja_JP.UTF-8; jfbterm
# uim-fep -u anthy
!広い画面での日本語がうれしい。

日本語ファイル名のコード変換

以前のEUCの日本語ファイル名を、UTF-8に変換
# aptitude
> convmvのインストール
# convmv -f euc-jp -t utf8 -r *
> ファイル名の変換を確認
# convmv -f euc-jp -t utf8 -r --notest *
> 実際の変換

日本語の環境設定

日本語の設定
# dpkg-reconfigure locales
> ja_JP.UTF-8を作成
> defaultは、en_USを選択

defaultの設定は、下記でもOK
# update-locale LANG=en_US

日本語の表示の確認
# aptitude
> manpages-ja manpages-ja-devをインストール
> lvnkfもインストール

# update-alternatives --config pager
> 標準のページャをlvに設定

jfbtermを起動後
# export LANG=ja.JP_UTF-8
# man man
日本語が出るとやはり感激

vimの設定
# aptitude
> vimをインストール。vim.tinyをアンインストール
# vi /etc/vim/vimrc
> 日本語コード変換の設定を追加
> encoding=utf-8
> fileencodings= euc-jp, sjis, utf-8
> fileencodingは、コードの出力設定なので設定しない
viを起動後、:setで、パラメータを確認する

ネットワークの設定

ネットワークのデバイス名の変更に悩んだ。
以前はデバイスの認識順でeth0、eth1と決まっていたが、etchではMACアドレスで固定されていた。
# vi /etc/udev/rules.d/z25_persistent-net.rules
>直接eth0とeth1を変更

ネットワーク環境に応じて、interfacesを変更
# vi /etc/network/interfaces

日本語コンソール

とりあえず日本語コンソールの設定
今回はAnthy+uim-fepで設定
# aptitude
>jfbtermuim-anthyuim-fepをインストール

標準のままでは、オン/オフ、入力モード、文節の変更ができない。
このままでは使えないので、とりあえずオン/オフ・キーを、CTRL+\に変更する。
# vi /usr/share/uim/generic-key-custom-scm
>generic-on-keyとgeneric-off-keyを、"<Shift> "から"<Control>\\"に変更

フレームバッファをロードして、日本語コンソールを起動
場合によってはカーネルの再構築が必要。カーネルオプションで、FBをモジュールにするとFB_VESAは設定できない。
# modprobe fbcon
>モジュールにしてなければ、不要
# modprobe vga16fb
>モジュールにしてなければ、不要
# jfbterm
# uim-fep -u anthy
Ctrl+\で日本語入力モード切り替えを確認
やっぱり、DOSみたいで嬉しい

日本語表示が問題ないなら、modulesを登録
# vi /etc/modules
> fbconとvga16fbを追加

ついにetchリリース

2006年12月予定の、etchがやっとリリース。
Debianは、メジャーアップデートがゆっくりなので、待ち遠しかった。
日本語的には、viがnviからvim.tinyになり、標準コードが、UTF-8になっている。DHCPクライアントもDHClient3にバージョンアップ。
早速、CDイメージをダウンロードして、インストール。
英語キーボードを使用しているので、English、Japan、American keyboard、standard systemでインストール

個人的には、これを機に、やっとdselectをやめて、aptitudeに移行することにした。ブートローダもliloからgrubに変更
まずは、カーネルの再構築

# aptitude
>linux-source-2.6.18、kernel-package、libncurses5-devをインストール
Etchから、kernelパッケージがlinuxに名称変更。つまり、kernel-sourceではなく、カーネルの再構築のためには、linux-sourceをインストールする必要がある。

# cd /usr/src
# tar xvfj linux-source-2.6.18.tar.bz2
# cd linux-source-2.6.18
# make defconfig
>.configをdefaultに設定
# make menuconfig
>オプションを設定
# vi /etc/kernel-img.conf
>オプションを設定
# vi /etc/kernel-pkg.conf
>オプションを設定
# make-kpkg clean
# make-kpkg kernel-image
# cd ..
# dpkg -i linux-image-2.6.18_2.8.18-10.00.Custom_i386.deb

参考リンク: Debian 4.0はDebianによるDebianの再定義

FC2Ad