Debian/etch | a weblog by k1
Home > Debian/etch

2009.02.09

SSL証明書(自己認証)

ApacheとCourire-IMAPでSSLを使う際に必要な証明書を自己認証で作る。
特定の者だけが使う「第四種オレオレ証明書」としての使用を想定。

オレオレ証明書の区分 第三版
http://takagi-hiromitsu.jp/diary/20071117.html#p02

作業用のディレクトリに移る(どこでも良い)。

# cd /etc/apache2/ssl/WORK

秘密鍵を作る。

# openssl genrsa -des3 -rand /var/log/syslog -out httpd.key 1024
68379 semi-random bytes loaded
Generating RSA private key, 1024 bit long modulus
…………………………………..++++++
..++++++
e is 65537 (0×10001)
Enter pass phrase for httpd.key:
Verifying – Enter pass phrase for httpd.key:

パスフレーズは適当に(二回)。
-randで乱数の種を指定する。なんでもいいのでとりあえずsyslogを使ってみる。

秘密鍵からパスフレーズを外す。

# openssl rsa -in httpd.key -out server.key
Enter pass phrase for httpd.key:
writing RSA key

生成時に入れたパスフレーズを入れる。
パスフレーズを外さないとApacheの起動時にパスフレーズを尋ねられ、自動起動できなくなる。

証明書を作る。

# openssl req -new -x509 -days 366 -key server.key -out server.crt
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]:xxxxx
Locality Name (eg, city) []:xxxxx
Organization Name (eg, company) [Internet Widgits Pty Ltd]:xxxxx
Organizational Unit Name (eg, section) []:.
Common Name (eg, YOUR name) []:*.example.com
Email Address []:webmaster@example.com

-daysは有効期間の指定(366: 一年(閏年))。
State or Province Name以下は適切に。
Common Nameでワイルドカード(*)が使用できる。ホスト名を指定するとそのホストでしか使えない。バーチャルホストで複数の名前を使う際にはワイルドカードを活用すべし。

以下のように、-configオプションでconfigファイルを明示する必要があるかもしれない。

# openssl req -new -x509 -days 366 -key server.key -out server.crt -config /etc/ssl/openssl.cnf

証明書のパーミッションを設定する。

# chmod 600 httpd.key server.crt server.key

証明書を適切な場所に移す(Apache用)。

# cp -a server.crt server.key /etc/apache2/ssl

この場所はApacheの設定ファイル(/etc/apache2/sites-available/local_machineとか)で指定している。SSLCertificateFileとSSLCertificateKeyFileがそれ。
FreeBSDの場合、portsでインストールしたのなら、/usr/local/etc/apache2/ssl.confで指定している。

Courier-IMAP用の証明書を作って配置する。

# cat server.crt server.key > courier.pem
# chmod 600 courier.pem
# mv /etc/courier/courier.pem /etc/courier/courier.pem.OLD
# cp -a courier.pem /etc/courier

ApacheとCourier-IMAP(関連)を再起動する。
reloadでもいいのかもしれないが、Courier-IMAP関連はたくさんあるので一通り立上げ直す。以下のスクリプトを利用。

#!/bin/sh
/etc/init.d/courier-pop-ssl stop
/etc/init.d/courier-pop stop
/etc/init.d/courier-imap-ssl stop
/etc/init.d/courier-imap stop
/etc/init.d/courier-authdaemon stop
/etc/init.d/courier-authdaemon start
/etc/init.d/courier-imap start
/etc/init.d/courier-imap-ssl start
/etc/init.d/courier-pop start
/etc/init.d/courier-pop-ssl start
/etc/init.d/apache2 restart

無料で証明書を発行してくれるサイトもあるらしい。
CACert.orgで無料のSSLサーバを動かすメモ
http://freebsd.fkimura.com/cacert-a0.html

無料のSSL証明書
http://psst.jp/syn/archives/000170.html

しかし、タダで誰にでも発行してくれる証明書って信頼していいんだろうか?

2009.02.03

postfix: transport

自ドメインから直接メイルを受けとってくれないサイトへの対応。

/etc/postfix/transport

nikon.co.jp     :[mail.asahi-net.or.jp]
.nikon.co.jp    :[mail.asahi-net.or.jp]

ocn.ne.jp       :[mail.asahi-net.or.jp]
.ocn.ne.jp      :[mail.asahi-net.or.jp]

ezweb.ne.jp     :[mail.asahi-net.or.jp]
.ezweb.ne.jp    :[mail.asahi-net.or.jp]

yahoo.co.jp     :[mail.asahi-net.or.jp]
.yahoo.co.jp    :[mail.asahi-net.or.jp]

データベースの更新を忘れずに。

# postmap /etc/postfix/transport

2009.01.21

aptでperlが文句をたれる

apt-getやapt-fileといったapt関係のコマンドやdpkg関係のコマンドでperlがwarningを出しまくることがある。

# apt-file search /etc/crontab
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
LANGUAGE = (unset),
LC_ALL = “ja_JP.eucJP”,
LC_CTYPE = “ja_JP.eucJP”,
LANG = “ja_JP.UTF-8″
are supported and installed on your system.
perl: warning: Falling back to the standard locale (“C”).

原因はlocaleがきちんと設定されていないため。

対策としては、

# dpkg-reconfigure locales

を行なうか、/etc/locale.genを適切jに編集して

# locale-gen

を走らせる。/etc/locale.genはこんな感じか。

en_US ISO-8859-1
ja_JP.EUC-JP EUC-JP
ja_JP.UTF-8 UTF-8

2008.08.12

snmpwalkがlocalhostからしか動かない

% snmpwalk -v 1 -c public localhost system

はちゃんと動くが、

% snmpwalk -v 1 -c public hostname system

とやるとtimeoutする。当然、他のホストからアクセスできない。

調べてみると、/etc/default/snmpdでアクセス制限がかかっていた。

SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid 127.0.0.1′

の行の127.0.0.1を削除し

SNMPDOPTS=’-Lsd -Lf /dev/null -u snmp -I -smux -p /var/run/snmpd.pid’

としてsnmpdを起動し直せばOK。

2008.06.15

eth0がeth1に変わってしまう

マザーボード等、ハードウェアを一新して以前のシステムを移行した。基本的にはうまくいったが、ネットワークにつながらない。ifconfigで見るとeth0がない。しかし、ブートメッセージではeth0で認識していることがわかる。試しに、/etc/network/interfacesの設定ををeth1にしてみたらうまく認識してくれた。

でも、理由がわからないのは気持ち悪い。

(eth1の設定で)ブートメッセージを追っかけると、最初はeth0で認識しているが、途中でeth1を生かしていることがわかる(MACアドレスは一応伏字)。

% dmesg | grep eth\[0-9\]
sky2 eth0: addr 00:1f:c6:xx:xx:xx
sky2 eth1: enabling interface
ADDRCONF(NETDEV_UP): eth1: link is not ready
sky2 eth1: Link is up at 1000 Mbps, full duplex, flow control both
ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
eth1: no IPv6 routers present

いろいろ調べた結果、etchからはインタフェース名とMACアドレスをヒモ付けるようになったらしい。

/etc/udev/rules.d/z25_persistent-net.rules

このファイルに設定が書き込まれている。

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:20:ed:xx:xx:xx”, NAME=”eth0″

SUBSYSTEM==”net”, DRIVERS==”?*”, ATTRS{address}==”00:1f:c6:xx:xx:xx”, NAME=”eth1″

対処法は、

  • そのまま、eth1で使う。
  • 存在しないインタフェースがeth0で残っているのは気持ち悪いのでeth0を再設定したい。
    • 古いeth0の行を削除し、eth1をeth0と書き換えてリブートする。
    • 両方の行を削除し、リブートする。
    • /etc/udev/rules.d/z25_persistent-net.rules 自体を削除してリブートする。

のいずれか。ブート時に、このファイルに存在しないインタフェースを見つけたり、このファイルそのものがない場合は新規生成したりして、うまいこと整合性をとってくれる。

これによって、インタフェースを増減してもインタフェース名が変わってしまうことはなくなったが知らないと今回のようにはまる。ブートメッセージで最初はeth0として認識しているので余計混乱してしまった。

XenでetchをDomainUにしている人は、リブートのたびにMACアドレスが変わるのでethの番号が増えてしまうらしい。

参照:
Debian/NetworkInterfaceName – TachTrac – Trac
ドメインU のMACアドレス問題

2008.06.03

rebootで固まる

rebootコマンドを実行すると、シャットダウン手続きを一通り終えた後、

machine restart

と言ったきり固まる場合には、ブートオプションに、

reboot=bios

を付けてみるべし(grubのmenu.lst)。

参照:
Restart ‘hang’ with PowerEdge 2400 & RH Linux 7.2 (2.4.17 kernel)
man bootparam

2008.05.21

Debian/etchでSpeedStepを使う

カーネル構築パラメータ
make xconfigでのたどり方。

Power management option
|–CPU Frequency scaling
| |–Default CPUFreq governor = ondemand
| | (CPU_FREQ_DEFALT_GOV_ONDEMAND)
|
|–ACPI Processor P-States driver (X86_ACPI_CPUFREQ) = m

モジュールのロード
/etc/modules に以下を記述。

acpi_cpufreq

ツール

# apt-get install cpufrequtils

cpufrequtilsの設定と使い方
/etc/default/cpufrequtils の設定

ENABLE=”true”
GOVERNOR=”ondemand”
MAX_SPEED=2527000
MIN_SPEED=1596000

MAX_SPEEDとMIN_SPEEDは

cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_available_frequencies

の結果の最大値と最小値。両方とも0でも良さそう?
/etc/default/cpufrequtils のコメント参照。

CPU情報の確認

% cpufreq-info

これまでの設定で自動的にクロックが変化するが、
強制的に設定するならcpufreq-setを使う。詳細はヘルプ参照。

# cpufreq-set –help

おまけ: CPUクロックのモニタリング

% watch grep MHz /proc/cpuinfo

2008.05.09

SATAはnoflushdできないのか、、、

ハードウェアを更新した。今じゃ、HDDはSATAが主流のようで、売っているドライブもほとんどSATAだし、M/BもSATAを使うのが当然のようになっている。まぁ、Intelのchip setがIDEをサポートしていないんだからしょうがないか。

それはそれとして、これまでは、HDDのアクセスがなくなったらドライブの電源が切れるようにnoflushdを使っていたが、こいつはSATAには対応していない模様。

いろいろ調べたところ、なーんだ、hdparmでできるじゃないか。-Sオプションの存在をこれまでしらなんだ。

Debian etch的には、/etc/default/hdparmに

harddisks=”/dev/sda /dev/sdb”

hdparm_opts=”-S 240″

と書いとけば20分でスピンドルオフしてくれる。

2008.03.31

/etc/mailcapが勝手に書き変わる

またしてもmuttからOOoが呼べない。/etc/mailcapららOOoのエントリがなくなっている。どうやら、Webブラウザをupdateすると/etc/mailcapが書き変わるらしい。iceweaselなんかのpostinstがupdate-mimeを呼んでいる。

man update-mimeを見ると、mailcapの値を強制的に指定するには/etc/mailcap.orderにしかるべき設定を行なうとのこと。mailcapとは形式が違うようだし面倒だなぁ。

と思ってたら、/etc/mailcapをよく見ると以下のコメントが。

####################################################
#  User section follows:  Any entries included in this section will take
#  precedence over those created by “update-mime”.  DO NOT CHANGE the
#  “User Section Begins” and “User Section Ends” lines, or anything outside
#  of this section!
#

# —– User Section Begins —– #
# —– User Section Ends  —– #

####################################################

User Section Begins / Endsの間に書いたものはupdate-mimeに優先するらしい。

ということで、古い/etc/mailcapからOOoの設定を取り出してきて、当該セクションに書いてお終い。update-mimeを手動で実行して、このセクションが消されないことを確認。

——————————————————————
2008/05/24追記
apt-get upgradeでUser Sectionの中に書いてあったものが消えた。なんで?
結局、このmailcapが書き換わる件は解決していないってことか。

2008.03.30

nVidiaドライバを使う

やり方は、nVidiaのLinux display driverのダウンロードサイトに書いてある通り。こう書くと身も蓋もないか。

  1. nVidiaのサイトからドライバを持ってくる。
    http://www.nvidia.co.jp/object/linux_display_ia32_169.09_jp.htm
  2. Xを落す。普段、gdmとかのディスプレイマネージャは使っていないので簡単。使っている人はどうするんだろ?run levelを変えてリブート?
  3. 持ってきたドライバを走らせる。

    # sh NVIDIA-Linux-x86-169.09.pkg1.run

    /etc/X11/xorg.confの書き換えまでやってくれる。まぁ、Driver  “nvidia”にするだけみたいだけど。

  4. startxでXを再起動。

手順は簡単だけど、カーネルのバージョンを上げるたびに再度同じ手順が必要。

 /lib/modules/<kernel version>/kernel/drivers/video/nvidia.ko

にモジュールを入れる仕掛けになっているから。

元ネタはこちら。

nVIDIA製ディスプレイドライバのインストール

こちらには、kernel-headersをインストールしておく必要があるとか記述されているが、自前でカーネルをコンパイルしている環境では不要のよう。

Next »