2005/03/12(土)aptを改める

2005/03/11 24:00 PC(Linux)
aptの使い方が今までいい加減(sources.listをいちいち書き換えていた)だったので、改めることにする。基本的に参考サイトのやり方でやっているので、いい加減に書く。

[1]便利なパッケージの追加
# apt-get install netselect
# apt-get install apt-show-versions
netselectはアクセス速度判定。apt-show-versionsはインストールしたパッケージのバージョンを確認出来る。

[2]netselectでアクセス速度判定
ocnも早かったが、ring.asahi-netも遜色なし。ring.asahi-netを提示されたのと今まで一部ここを使っていたので、asahi-netで決定。

[2]sources.listを書き直す
http://debian.fam.cx/index.php?AptGetに従って書き直す。
翻訳パッケージとセキュリティおよび、deb|deb-src+stable|testing|unstable+debian|debian-non-USの12種と、stable|testing|unstable+debian-jpの3種でOK。proposed-updatesは使わないことにする。
## use jp translation package
deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian-ddtp ja/woody main
deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian-ddtp ja/sarge main
deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian-ddtp ja/sid main

## stable(woody)
deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian woody main non-free
 contrib
deb-src    http://ring.asahi-net.or.jp/archives/linux/debian/debian woody main non-
free contrib

deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian-non-US woody/non-US
 main contrib non-free
deb-src    http://ring.asahi-net.or.jp/archives/linux/debian/debian-non-US woody/no
n-US main contrib non-free

deb    http://ring.asahi-net.or.jp/archives/linux/debian/debian-jp woody-jp main co
ntrib non-free

# stable security and mirror
deb    http://security.debian.org/ woody/updates main contrib non-free
deb    http://ftp.debian.or.jp/debian-security woody/updates main contrib non-free


## testing(sarge)
deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian sarge main contrib non-f
ree
deb-src    http://ring.asahi-net.or.jp/pub/linux/debian/debian sarge main contrib n
on-free

deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian-non-US sarge/non-US main
 contrib non-free
deb-src    http://ring.asahi-net.or.jp/pub/linux/debian/debian-non-US sarge/non-US
main contrib non-free

deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian-jp sarge-jp main contrib
 non-free


## unstable(sid)
deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian sid main contrib non-fre
e
deb-src    http://ring.asahi-net.or.jp/pub/linux/debian/debian sid main contrib non
-free

deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian-non-US sid/non-US main c
ontrib non-free
deb-src    http://ring.asahi-net.or.jp/pub/linux/debian/debian-non-US sid/non-US ma
in contrib non-free

deb    http://ring.asahi-net.or.jp/pub/linux/debian/debian-jp sid-jp main contrib n
on-free
[3]パッケージリストの更新
# apt-get update
当初、
Failed to fetch    http://ring.asahi-net.or.jp/archives/linux/debian/debian/dists/wo
ody/non-US/main/binary-i386/Packages  404 Not Found [IP: 202.224.39.15 80]
といくつか出て怒られたが、non-USの付け忘れなど単なる記述ミス。発生した場合、実際にそのアドレスにアクセスして、どこまでURLを削れば見られるか確認するのが早い。

まだIgnがいくつか出るが、問題あるように見えないので無視する。

[4]デフォルトインストールポリシーの決定
ここで混乱したが、やっと結論。
/etc/apt/preferencesに
Package: *
Pin: release a=testing
Pin-Priority: 110

Package: *
Pin: release a=unstable
Pin-Priority: 90
と書く。この場合、apt-get updateでstable(現在)->stable(最新),testing(現在)->testing(最新),unstable(現在)->testing(最新)と更新されるはず。

Pin-Priorityは
100未満:明示しない限りインストールされない。
101-999:優先度の高いディストリビューションの最新パッケージがインストールされる(downgradeしない)
1001-:優先度の高いディストリビューションの最新パッケージがインストールされる(downgradeする)

という解釈で良さそうだ。preferences中に記述しなければ500か989が使われると思う(多分989)。downgrade規定は必ず守られる。従って、testing,unstableで入れたものはstable(最新)よりも(現在)のバージョンが高いのでstable=989を使わずにtesting=110を使う。unstableはtesting(最新)のバージョン番号がunstable(現在)を上回るとインストールされ以降testingで更新される。preferencesを書けば、/etc/apt/apt.conf.d/99targetは不要。99targetだけだと、sources.listからunstableを削るか、stable(現在)->stable(最新),testing(現在)->unstable(最新)という構成にしかならなさそう。

書いていてなんだが、今ひとつ確証がない。

[5]apt-get upgrade
86packageくらいtestingが更新された。これ以降sources.listは追加してくだけでいい。標準ではstableが入るし意識しなくて良し。やれやれ。

[参考サイト]
http://debian.fam.cx/index.php?AptGet <-わかりやすい
http://debian.g-com.ne.jp/debian/dfund.html
http://qref.sourceforge.net/Debian/quick-reference/ch-package.ja.html
http://akiba.biz/Linux/Debian3.php

2005/03/09(水)qmail localtimeパッチ

2005/03/09 22:00 PC(Linux)
[localtimeパッチを当てたときの正常完了時の手順]
すでにソースファイルはaptで取得してあるので、そのディレクトリに移動。
# cd /usr/src/qmail-src
パッチダウンロード
# wget  <a HREF="http://www.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch" TARGET=_top>http://www.nlc.net.au/pub/unix/mail/qmail/qmail-date-localtime.patch</a>
(注!:多くのドキュメントではftp://ftp.nlc.net.au/pub/unix/mail/qmail/だが、配布先が変わっている)

解凍
# tar -xvzf qmail_1.03.orig.tar.gz
パッチ当て
# cd qmail-1.03
# patch -p1 < ../qmail-data-localtime.patch
# zcat ../qmail_1.03-36.diff.gz | patch -p1
実行権限付与
# chmod 755 debian/rules
コンパイル
# dpkg-buildpackage -us -uc
make: [binary-arch] エラー 1 (無視されました)とか出るが気にしないことにする。.debはきちんとできている。

インストール
# dpkg -i ../qmail_1.03-36_i386.deb
念のため再起動…… と思ったら、ストップしてたかな。
# /etc/init.d/qmail restart
動いてることを確認
# ps -ALL | grep qmail
メールヘッダチェック
(パッチ前のメール)
Received: (qmail 9926 invoked from network); 27 Feb 2005 07:07:24 -0000
Received: from unknown (HELO mail.big.or.jp) (210.197.72.31)
  by i60-34-122-144.s04.a013.ap.plala.or.jp with SMTP; 27 Feb 2005 07:07:24 -0000
(パッチ後のメール)
Received: (qmail 4664 invoked from network); 9 Mar 2005 22:19:51 +0900
Received: from unknown (HELO r-dd.iij4u.or.jp) (210.130.0.70)
  by i222-151-38-236.s04.a013.ap.plala.or.jp with SMTP; 9 Mar 2005 22:19:51 +0900
直ったようだ。

2005/03/09(水)qmailのソースがビルドし直せない

2005/03/09 22:00 PC(Linux)
qmailにパッチを当ててコンパイルし直そうとすると、
#dpkg-buildpackage
/usr/bin/dpkg-buildpackage: debian/rules: /usr/bin/make: bad interpreter: 許可がありません
といわれて怒られる問題。

bad interpreterは改行の文字コード問題などで頻出するので、今回もdebian/rulesの文字コードがおかしい? などと思って延々悩んでしまった。これも恒例だが、/usr/bin/make:などエラーメッセージ直前のいくつかは読み飛ばさないと解釈を間違う。今回は単に、debian/rulesに実行権限が無くコンパイルできていなかった。chmod 755 debian/rules することで解決。気づいたときはいい加減寝た方が良いと思った……

パッチ当ての正常完了手順については次の記事を参照。

debianのパッケージ管理に関しては参考サイトを参照。ビルドコマンドは3種あるが、debuild,dpkg-bulidpackage,debian/rules binary-archの順に参照されていくようだ。debuildはうちの環境には入っていなかったし、必要とも思えない。

構築はrootで作業してしまっているので、dpkg-buildpackageオプションの-rfakeroot,-rsudoは必要ないだろう。-us,-ucオプションは、それぞれサインせずに、changelogを書かずにの意。

[参考サイト]
http://www.linux.or.jp/JF/JFdocs/debiantips.html#s5
http://www.ep.sci.hokudai.ac.jp/~epnetfan/zagaku/2000/1006/deb-make.html
http://debian.g-com.ne.jp/debian/dfund.html#makedeb
http://www.gfd-dennou.org/arch/cc-env/mksigen/TEBIKI.mksigen_slink2potato.txt
http://www.tomita.cc/pukiwiki/pukiwiki.php?・ム・テ・ア。シ・ク、ホゴョシ・・/textarea>

2005/03/03(木)スパム対策

2005/03/03 16:00 PC(Linux)
スパム対策というと、以前さらったときに引っかけた記事で
http://www.gabacho-net.jp/anti-spam/anti-spam-system.html
というのがある。

読んだときは感心したのだが、個人ユースは良いにしても鯖管がこれやっていいのだろうか。
重要なメールが1通来ないことは、スパムが100通来ることよりもまずいというのが大方の意見であるはず。ネットワークの仕組み含め熟考が必要か。

まあちょっと公共で使うには無理な気がするなあ。

2005/02/28(月)qmail設定、cron関係微調整

2005/02/27 24:00 PC(Linux)
ちゃんとメールが動いているようなのではあるが、今度はcronが飛ばしてくるメールがうざったい。

元々暫定設定だったのでちょっと整理。

[1]aliasの設定
重要メルアドの転送設定。
/var/qmail/control/alias/.qmail-root
/var/qmail/control/alias/.qmail-postmaster
/var/qmail/control/alias/.qmail-mailer-daemon

&urara@dd.iij4u.or.jp

&urara@dt8.jp
に変更。
[2]/home/urara/.qmailの変更
urara@dd.iij4u.or.jp
の行を消した。

以上。
当面cronのメールを見ることにするので、cronは弄らない。
もし飛ばしてくるメールを一切見ないようにするには、/etc/crontabに
MAILTO=
の1行を記述する。cronはMAILTOの宛先か、それがなければcrontabの所有者にメールを投げるので、空白にしてしまえばメールが飛んでこないというわけだ。

その他cronメモ。

rootのcrontabはエディタで編集してしまっているのだが、各ユーザがcronの仕事を登録することも出来る。
その場合、
crontab -eで編集
crontab -lでリスト表示
crontab -rでcrontab削除

crontabは/var/spool/cron/crontabs/にユーザ名で置かれる。
cronも勉強し直した方が良いな。

[参考URL]
http://www.mediaweb.biz/modules/database/print.php?articleid=55
http://www.linux.or.jp/JM/html/cron/man1/crontab.1.html

2005/02/27(日)qmailインストール

2005/02/27 21:00 PC(Linux)
qmailインストールまでの作業ログ。
紆余曲折があったので、最終到達地点を明確にしてからログを書こう。

・最終到達地点(目標ではなく結果論)
  • qmail鯖立て
-外部からIMAP可能
-外部からPOP・自ドメイン宛以外のSMTP禁止
-内部(EZ!go上)からPOP可能
  • EZ!go上でmewを使ってメール送受信可能
-urara@dt8.jp宛のメールは、外からIMAPでも取れるしiij4uへも転送する(いずれ片方だけにする)

IMAPは使ったことがなかったので、今回動かしてみたいというのがある。
やったこと
[1]qmailインストール
[2]qmail設定
[3]courier-imapのインストール
[4]iptablesの設定
[5]everydnsの設定
[6]メール送受信確認
[7]mew + emacs調整
    • 詳細--
[1]qmailインストール
#apt-get install qmail-src
(3つ前の記事参照。確かucspi-tcp-srcも一緒に入ったと思う)
#dpkg --remove exim
#build-ucspi-tcp
#build-qmail

途中での設定ファイルの変更無し。問い合わせには全てEnter。
[2]qmail設定
基本的に参考サイトに従った。NS関係は実はちゃんと分かっていない。

(1)/var/qmail/control/defaultdomain
#touch defaultdomain
#emacs defaultdomain
--------
dt8.jp
--------
省略時に補完されるドメイン

(2)/var/qmail/control/locals
#touch locals
#emacs locals
--------
127.0.0.1
dt8.jp
--------
ローカルとして処理するドメイン

(3)/var/qmail/control/me
#touch me
#emacs me
--------
127.0.0.1
dt8.jp
--------
受信ホスト名

(4)/var/qmail/control/rcpthosts
#emacs rcpthosts
--------
127.0.0.1
dt8.jp
--------
サーバで処理する宛先ドメイン。

(5)aliasの設定
重要メルアドの転送設定。
/var/qmail/control/alias/.qmail-root
/var/qmail/control/alias/.qmail-postmaster
/var/qmail/control/alias/.qmail-mailer-daemon

--------
&urara@dd.iij4u.or.jp
--------
と書いた。そのうちMAILER-DAEMONとかは消すと思う。

(6)MailDirを作る
#su urara
$/usr/bin/maildirmake ~/Maildir
$emacs ~/.qmail
--------
./Maildir/
urara@dd.iij4u.or.jp
--------

(7)/etc/init.d/qmail書き換え
Maildirへの切り替えと、pop3dを動かす設定(自分向け)。qmailはデフォルトではpop3dを起動しないため設定ファイルを書き換える必要がある。

14,15c14,15
< alias_empty="|/usr/sbin/qmail-procmail" # procmail delivery to /var/spool/mail
< #alias_empty="./Maildir/" # This uses qmail prefered ~/Maildir/ directory
> #alias_empty="|/usr/sbin/qmail-procmail" # procmail delivery to /var/spool/mail
> alias_empty="./Maildir/" # This uses qmail prefered ~/Maildir/ directory

58,61c58,61
< #sh -c "start-stop-daemon --start --quiet --user root< # --exec /usr/bin/tcpserver -- -R -H< # 0 pop-3 /usr/sbin/qmail-popup `hostname`.`dnsdomainname`< # /usr/bin/checkpassword /usr/sbin/qmail-pop3d Maildir &"
> sh -c "start-stop-daemon --start --quiet --user root> --exec /usr/bin/tcpserver -- -R -H> 0 pop-3 /usr/sbin/qmail-popup `hostname`.`dnsdomainname`> /usr/bin/checkpassword /usr/sbin/qmail-pop3d Maildir &"

71c71
< #start-stop-daemon --user root --stop --quiet --oknodo --exec /usr/bin/tcpserver
> start-stop-daemon --user root --stop --quiet --oknodo --exec /usr/bin/tcpserver

(8)qmailの起動
#/etc/init.d/qmail start
もしくはもう動いているなら
#/etc/init.d/qmail restart
[3]courier-imapのインストール
qmailはデフォルトではIMAPを備えていないので、別途パッケージが必要。
#apt-get install courier-imap
#/etc/init.d/qmail restart
[4]iptablesの設定
(1)imapとsmtpを開けるために、/etc/init.d/iptables_setに以下を追加(saveは良くわかんないので使ってない)
--------
## smtp allow ##
iptables -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -A INPUT -p tcp --sport 25 -j ACCEPT

## imap allow ##
iptables -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -A INPUT -p tcp --sport 143 -j ACCEPT
--------

(2)iptables再起動
#/etc/init.d/iptables_set

(3)ポートスキャン
変なポートが開いてないかどうかWindowsマシンからSPPでポートスキャンをしておく。
でも結果の見方がよく分かってないので怪しげ。

[5]everydnsの設定
everydnsのサイトに行き、よく分からないままMXレコードに
Host type Value MX
dt8.jp MX dt8.jp 10

を追加した。
[6]メール送受信確認
・Windowsマシンからローカル/internet経由でIMAP受信を確認
・IMAP受信時にMaildir内のnew/のファイルがcur/に移動することを確認
・Windowsマシンからローカル/internet経由でurara@dt8.jp宛のメールが配信されることを確認

これだけのテストでは足りないと思う(そもそも自在に切れるネットワーク2系統無いとちゃんとしたテストは出来ないはず)。
[7]mew + emacs調整
ここが一番混乱した。間違い手順も記録しておく。
(1)IMインストール(間違い)
mewは入っているようだが、IMが入っていないようなのでインストールした。
#apt-get install im
#su urara
$imsetup

(2)IMアンインストール
imsetupの設定が反映されないと思ったら、mewは2.0以降IMを必要としなくなったらしい。昔はMHなんてのもなかったかい?
#dpkg -l |grep mew
ii mew 2.2-3 Messaging in the Emacs World

バージョンを確認。2.2-3だ。IMAPが使えない半端バージョン(のはず)。

#apt-get remove im

依存関係は出さないようなのでこのまま消去。

(3)mewの設定
~/.mew.elに設定を書く。

--------
(setq mew-name "urara")
(setq mew-user "urara")
(setq mew-mail-domain "dt8.jp")

(setq mew-smtp-server "localhost")

(setq mew-pop-user "urara")
(setq mew-pop-server "localhost")
(setq mew-pop-delete nil)

(setq mew-pop-auth 'pass)
--------
最低限で良いなら上三行も要らないかもしれない。

(setq mew-pop-delete nil)は受信したメールをサーバに残す。
(setq mew-pop-auth 'pass)はmewのデフォルトがAPOPなのでPOPで受け取れるようにする。


(4)emacs調整
emacs起動中はいちいちPOP3パスワードを入力しなくても良いようにする。emacsに以下の2行を追加
--------
;;パスワード維持
(setq mew-use-cached-passwd t)
--------

(5)mew上からメール送受信を確認

以上
[参考サイト]
http://sasapanda.com/toshi/linux/qmail.html
http://debikuro.ddo.jp/KuroBox/B010.html
http://www.f-bell.net/FreeBSD/qmail-control.html

[やり残し]
・APOP/POP before SMTP
 とりあえず外部からは使わないということで先送り。tcpserver起動コマンド列の解説がないと、どちらもきつい。debianパッケージと現バージョンと旧バージョンで、他に追加で必要になるパッケージが違うかもしれないのだよな。雑誌記事とかを足がかりに進んでこう。telnet server 110で確認したけど少なくとも現時点ではAPOPは動いていないはず。

・pop.dt8.jp, smtp.dt8.jpで分けて、もちろんメルアドは@dt8.jpにする。

・Maildir/mailboxの仕組み、およびIMAP/POP時の動作

・DNS(BIND立ち上げ)
 ホントDNSは苦手……

・POPとIMAPの共存
 POPでとってくるとIMAP消える……

・sslラップ

#それにしてもさっさとログの書き方の統一して、華式の内部インデックス性の低さと見にくさを何とかしないと!

2005/02/25(金)qmailインストール問題

2005/02/25 4:00 PC(Linux)
qmailのインストール作業途中において以下のようなエラーが発生し、qmailがインストール完了できなかった問題。
Unknown 'strict' tag(s) 'barewords' at /var/lib/dpkg/tmp.ci/preinst line 5
BEGIN failed--compilation aborted at /var/lib/dpkg/tmp.ci/preinst line 5.
dpkg: qmail_1.03-24_i386.deb の読み込みエラーです(--install):
サブプロセス pre-installation script はエラー終了ステータス 255 を返しました。 。
Starting MTA: exim.
以下のパッケージの処理中にエラーが発生しました:
qmail_1.03-24_i386.deb
発生までの手順。
(1)apt-get installでqmail-srcをもってくる。
(2)dpkg --remove exim
(3)build-ucspi-tcp
(4)build-qmail

(4)の途中で発生。(3),(4)は延々Enterを押していればコンパイルだけでなくインストールまでやってくれるのだが、qmailパッケージをコンパイル後インストールの段階でこの問題が起きた。

海外まで含めて検索をかけたが全く情報が出てこない。仕方ないので、unstableまでを含めてapt-get installした。結果、qmail-srcが1.03-24から1.03-36_allに挿し変わった。

この状態で
#dpkg -i qmail_1.03-36_i386.deb
にてインストールを行ったところ、問題は解決した。

その他、qmailのコンパイル中に以下のようなエラーが出ているが前後をコピペし忘れた、もうしらん。
make: [binary-arch] エラー 1 (無視されました)
なお、(2)はeximがqmailと競合するため、あらかじめ削除マークを付けておく作業。apt-get removeでやると依存関係を全部引きずって消してしまうので気をつけて欲しい。

2005/02/15(火)エラーメモ

2005/02/15 18:00 PC(Linux)
apt-get upgradeしたら、エラーがいくつか出たのでメモだけ。

今は解決してる時間がないし、あまりクリティカルなものとも思えない。

[error1]
xemacs21-mule (21.4.6-8woody2) を設定しています ...
.
.
.
Loading 50skk...
Error while loading 50skk
このあとインストールは完了。

[error2]
xemacs21-nomule (21.4.6-8woody2) を設定しています ...
dpkg: xemacs21-nomule の読み込みエラーです(--configure):
サブプロセス post-installation script がシグナル (割り込み) によって強制終了し ました。。
以下のパッケージの処理中にエラーが発生しました:
xemacs21-nomule
xemacs21-nomuleのインストールは失敗した。
[追記05/02/25 AM3:22]
apt-get update & upgradeしたところ、[error2]のインストール問題は解決。50skkで怒られる[error1]は継続中。
OK キャンセル 確認 その他