spamassassin

某巨大掲示板の exim スレで、amavisd-new について教えてもらい、
来たメールを clamav と spamd でスキャンしている。
が、価格コムからのメールだけはどれだけ学習しても、いつもSPAM扱いになってしまう。
仕方なく、/etc/spamassassin/local.cf に以下を追加。

whitelist_from bbs_r@kakaku.com

あと、cron で、最新の定義ファイルをダウンロードする

0 3 * * * cd .spamassassin && wget -m http://tlec.linux.or.jp/docs/user_prefs > /dev/null 2>&1

まあ仕方ないか。

exim4

exim4にアップグレード
apt-get install exim4
debconf で、Internet Site を選ぶ。
/usr/share/doc/amavisd-new/README.exim_v4* を良く読み、amavis 関係の設定を /etc/exim4/exim4.conf.template に記述する。
(begin. routersの直後)
amavis:
driver = manualroute
condition = “${if eq {$interface_port}{10025} {0}{1}}”
#domains = +local_domains
transport = amavis
route_list = “* localhost byname”
self = send
# ezweb へのメールはプロバイダ経由
smart_route:
driver = manualroute
transport = remote_smtp
route_list = “*ezweb.ne.jp smtp.myisp.com byname”
(begin transports の直後)
amavis:
driver = smtp
port = 10024
allow_localhost
参考 http://asshole.dip.jp/exim4_smtp.php

amavisd-new

MTA と Virus Check, Spam Filter 間のインターフェースで、ユーザーは意識しなくてもチェックしてくれる環境を構築することが可能。
Debian では例によって apt-get install で入る。
参考にしたのは、
– /usr/share/doc/amavisd-new/README.exim_v3
Debian Stable + Exim3 + Amavisd-new with Spamassassin, Razor, F-Prot filtering for Exchange.
Debian Exim-AMaViS-SpamAssassin Pseudo-HOW-TO

これら3つを見比べながら設定する。Exim3 + Amavisd-new with Spamassassin, Razor, F-Prot filtering for Exchange.には、DNSサーバの設定からわかりやすく説明されていたので、これを機会に bind9 にアップグレードした。
exim -d <debuglevel> -bt <address>で試行錯誤の結果(route_list の設定ではまった)、exim.conf を以下のように変更。

# diff exim.conf exim.conf.050723
43c43
local_domains = localhost:my.domain:other.domain
120c120
trusted_users = mail:www-data
288,296d287
< # This transport is used for amavisd-new
<
< amavis_smtp:
< driver = smtp
< port = 10024
< hosts = localhost
< allow_localhost
< hosts_override
<
312,319d302
< # This is used for amavisd-new
<
< amavis_director:
< condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"
< driver = smartuser
< transport = amavis_smtp
< verify = false
<
396,405d378
< # This router uses amavis
< amavis_router:
< condition = "${if eq {$received_protocol}{scanned-ok} {0}{1}}"
< driver = domainlist
< transport = amavis_smtp
< verify = false
< route_list = * my.isp.smtp.server bydns_a
< #localhost byname
< self = send

これで、メールがウイルススキャンされるようになる。

続きを読む amavisd-new

SquirrelMailをSSL化

mod_ssl の設定が完了していることが前提。
名前ベースのバーチャルホストでは、SSLは一つだけにするのが望ましい(参考)。
ユーザのことを考え、http で SquirrelMail にアクセスしてきたときにリダイレクトするように、Secure Login プラグインを導入する。Compatibility プラグインも必要。それぞれは、plugins ディレクトリに解凍した後、README に従いインストール。各プラグインのファイルは、root以外への読み取り権限も与えておく必要があった。

mod_ssl化

https プロトコルを apache に喋らせるための実装としては、mod_ssl と apache-ssl がある。debian はデフォルトでは apache-ssl のようだが、これだと、apache と apache-ssl という2つのサーバが起動することになり、玄箱にはキツイ。

dpkg –purge apache-ssl
apt-get install libapache-mod-ssl libapache-mod-ssl-doc

mod_ssl がインストールされると、/etc/apache/ssl.{crl,crt,csr,key,prm} というディレクトリが生成されるが、crt(証明書) csr(証明書発行要求) key(秘密鍵) 以外は良く分からない。imap の時と同じように、秘密鍵、CSRの順に作り、CAcertで証明書を発行してもらう。
今回はWebmailをSSL化するために使うため、それぞれのCNは webmail.hayate.mine.nuにする必要がある。
それぞれを webmail.{key,csr,crt}として保存する(webmail.key はRSAに非セキュア化しパスフレーズを削除しておく)。
mod_ssl をインストールした場合には、設定ファイルを自動生成してくれるわけではないため、手動で設定していく。
ほぼ、http://lists.debian.or.jp/debian-users/200112/msg00163.htmlの通りでOK。あと、http://www.todo.ne.jp/memo/も参考になる。
httpd.conf に、 Include /etc/apache/conf.d の一行を追加し、SSL とVirtualHost の設定ファイルを置くことにする。

ln -s /etc/squirrelmail/apache.conf /etc/apache/conf.d/squirrelmail.conf
cp /usr/share/doc/libapache-mod-ssl-doc/examples/mod-ssl.conf /etc/apache/conf.d/

バーチャルホストの設定については、http://www.araki.net/wiki/araki-wiliki.cgi?araki%3Atips%3Aapache2をヒントにした。

# diff /usr/share/doc/libapache-mod-ssl/example/sample-vhost.conf.gz vhost-ssl.conf
0a1,2
> NameVirtualHost *:443
>
6c8,9
#<VirtualHost _default_:443&gt
> <VirtualHost *:443&gt
8c11,13
DocumentRoot /usr/share/squirrelmail
> ServerName your.virtualhost.name
> #ServerAlias your.virtualhost.name
27c32,34
#SSLCertificateFile /etc/apache/ssl.crt/snakeoil-rsa.crt
> SSLCertificateFile /etc/apache/ssl.crt/your.server.crt
>
35c42,43
#SSLCertificateKeyFile /etc/apache/ssl.key/snakeoil-rsa.key
> SSLCertificateKeyFile /etc/apache/ssl.key/your.server.key

SSLについて

サービスをSSL化するために、色々調べたことをまとめる。
証明書:サーバの公開鍵 + 認証局(VeriSignなどが有名)の署名
SSLのしくみ
1. クライアントがSSL化されたサービスへアクセスする
2. サーバは証明書を送信
3. クライアントは証明書を審査した後、共通鍵を生成し、公開鍵で暗号化し送信
4. サーバは共通鍵を秘密鍵で復号化
5. 以後、共通鍵にてすべての通信は暗号化される
公開鍵暗号方式は共通鍵暗号方式に比べて処理速度が遅いので、SSLのプロトコル内では、共通鍵暗号で使う共有鍵だけを公開鍵暗号でやり取りして(4まで)、実際のデータのやり取りは共通鍵暗号方式で行うなどのさまざまな工夫をしている。
参考
SSL入門
SSL Certificates HOWTO

imapd-ssl

SSL化の手始めはメールから。

apt-get install courier-ssl
cd /etc/courier
cp imapd.cnf imapd.cnf.orig
vi imapd.cnf
cp imapd.pem imapd.pem.orig
/usr/sbin/mkimapdcert

imapd は localhost からの接続のみとする

diff imapd imapd.orig
22c22
< # ADDRESS=127.0.0.1

imapd-ssl の設定

diff imapd-ssl imapd-ssl.orig
82c82
IMAP_TLS_REQUIRED=0

> ADDRESS=127.0.0.1
24c24

#ADDRESS=0

続きを読む imapd-ssl

cups で印刷

昔は/etc/printcap だったが、今はWebインターフェース。
ほぼ、
http://www.cozy.cx/d/20040525.html
http://www.phys.ocha.ac.jp/kawanolab/kaji/memo/cups_memo.html
の通りで大丈夫。Windows PCからppdファイルを奪ってきて、文字コードをEUC、改行コードをLFにする

Samba3での文字化け解消

Debian 3.1ではSamba3が標準のようだ。
UTF-8で扱うらしく、日本語ファイル名が文字化けしてしまう。
cp /etc/samba/smb.conf /etc/smb.conf.0702
apt-get install swat
安直にswatで設定

まだ解消しなかったので、ファイル名の文字コードを変換する convmv を使う
apt-get install convmv
convmv -f sjis -t utf8 *
convmv –notest -f sjis -t utf8 *
参考にしたのは以下のページ
http://homepage.mac.com/chartscape/LANDISK/KFileServer.html#Samba3
http://cubic9.com/Linux/Samba3.0/
http://yamk.net/20040625.html