Monthly Archives: 3月 2012

FreeBSDのsendmailを黙らせるには

Pocket

自宅サーバのsendmailは正直不要です。と思うことはしばしば。

てっとり早く結論を言えば、以下を/etc/rc.confに追記すればよい。なお、「sendmail_enable = “NONE”」はもう使われていないので注意。詳細は後述。

/etc/rc.confへの追記

しかし、handbook 29.4.2 Disable sendmail に記載の通り、以下の懸念がある(2012/3/1)。

Warning: もしこの方法で sendmail のメール送信機能を無効にしたのなら、 完全に動作する代替メール配送システムと置き換えることが重要です。 さもなければ、periodic(8) などのシステム機能は、 それらの結果を通常想定しているようにメールで配送することができなくなるでしょう。

システムの多くの部分が sendmail 互換のシステムがあることを想定しているかもしれません。 もしそれらを無効にした後に、 アプリケーションがメールを送ろうとするために sendmail のバイナリを使用し続ければ、 メールは使われていない sendmail のキューに入り、そして決して配送されないでしょう。

つまりroot等に送られるreportがsendmailのキューにたまり続ける。

(なお、日本語版handbookはどうしても古くなりがちなので、原版も確認すること!)

FreeBSDのベースシステムが送るメールなら、periodicあたりを修正すればよいだろうが、portsなどからインストールするソフトウェアのことも考えるときりがない。

sendmailを動かしたくない目的にもよるが、現実的なところでは外部からのsmtp接続を無効にするだけでいいだろう。

こうした場合の別の懸念としては、意図せずに自サーバが外部へのsmtp接続を試みること、さらに言えば、おかしなメールをバラ撒こうとすることだ。

が、仮に外部へのsmtp接続を無効にしたくとも、rc.confの設定だけではできないようだ。これについては改めて考える。

外部からのsmtp接続を受け付けない場合には、/etc/rc.confに下記を追加すればよく、かつ少なくとも9.0、8.2ではデフォルト設定だ。

/etc/rc.confでの外部からのsmtp接続を受け付けない設定

以下のみを/etc/rc.confに追記

なお、上記はデフォルト

【参考】以下はもう使われていないので注意。

man rc.sendmailより

さらにkwsk

FreeBSDにおけるsendmail起動の設定は、以下の変数にYES/NOを代入することで行う。

使い方はrc.sendmail(8)に記載されている。

これらは最初の3つと1つに分かれる。

最初の3つはセットになっており、一つ目がYESの場合は残り二つが参照されない。

一つ目がNOで、二つ目がYESの場合は最後の一つが参照されない。

したがって、3パターンの設定ができることになり、各パターンについて調べた結果は以下の通り。

・パターン1: デフォルト

外部からのsmtp接続を受け付けない。

内部からのsmtp接続は受け付け、外部への送信は可能。

・パターン2:

外部、内部ともにsmtp接続を受け付けない。

つまりroot等に送られるreportも届かなくなる。

ただちょっと分からないのは、「”local mail queue management”を提供する」とmanには記載されているのだが、外部、内部ともにsmtp接続を受け付けない状態でのlocal mail queueとはいったいなんだろうか。一応、この状態ではroot権限でsendmailが「Queue runner」として起動する。

パターン3:

この状態ではroot権限のsendmailは一切起動しない。

上記を別の形で表現すれば以下の通り。(rc.sendmail(8)より引用)

なお、sendmail_msp_queue_enableは、smmsp権限で動くQueue runnerの動作スイッチ。

NOを指定すれば起動しない。

No tags for this post.

MovableType

Pocket

おなごもすなるMovableTypeを。

まず注意。

Xの入っていないサーバにインストールするときには、あらかじめImageMagick-nox11-6.7.4.4_1 を入れておく!

インストール

下記からインストール

ただ、ImageMagickに依存しているので、何も考えずにインストールするとX関連のportsをたくさん呼び寄せて大変なことになる。

あらかじめImageMagick-nox11をインストールしておくとよいでしょう。

(/etc/make.confにWITHOUT_X11=yes という手もあるが)

make configでUSE_APACHEをチェックしておくと、apacheの設定ディレクトリに必要なファイルを入れてくれるので便利。

(/usr/local/etc/apache22/Includes)

また、デフォルトだとバックエンドのDBにsqliteを使ってくれるのは、個人用との場合には嬉しいですな。

MovableTypeの設定

apache22再起動

以下にアクセス。あとは画面手順に沿う。

スタティックウェブパス、スタティックファイルパスは、FreeBSDでportsから入れた場合だとそれぞれ/MT、/usr/local/www/data/mt-static。

具体的にはapacheの以下の設定で指定した場所。

最初のウェブサイトを作る。movabletype専用ならサーバ直下でいいけど、そうでないなら適当なディレクトリを指定する。

それに合わせて、サーバ上にディレクトリを作る。忘れずに権限を変えておく。

あとはまあ。movabletypeの指定に従う。

No tags for this post.

popサーバ、dovecot2のインストール

Pocket

popサーバを構築する。

LAN内にゆるーく作るので、とにかく手軽に。

手軽にというのはたとえば、imapとか要らない。pop3でいい。ただネットワーク内をパスワードが平文で流れるのは勘弁。

わざわざMaildirにする必要もなく、mbox形式で結構。

FreeBSD handbook 29.2.4.1章を眺めて、dovecot2を選んだ。

http://en.wikipedia.org/wiki/Dovecot_%28software%29

インストールと設定

インストールはportsで、mail/dovecot2から。設定はそのままで。

後述するが、make cleanしないこと!

設定ファイルは下記だが。

READMEがポツリ。

ということでまるごとコピー。

設定ファイルの書き換え。

受け付けるプロトコルの設定。dovecot.confにて。

pop3だけにした。

メールボックスの場所

http://wiki2.dovecot.org/MailLocation のTypical settingsに沿う。

mboxで結構。

SSL設定

LAN内なので、オレオレ証明書で十分。

http://wiki2.dovecot.org/SSL/DovecotConfiguration

http://wiki2.dovecot.org/SSL/CertificateCreation

上記を読むと、dovecot2にはオレオレ証明書を作ってくれるスクリプト、mkcert.shがついてくるそうな。

これは便利。

しかしこのスクリプトはインストールされない。make cleanしてはいけないというのはそのため。もちろん、あとからでも取り出せるけど。

ただ、デフォルトでは/etc/sslの下に証明書を書き込むようだ。

FreeBSDを使っているんだし、/usr/local/etc/sslの下にしたい。

では設定と作成。

pem作成。

再び、http://wiki2.dovecot.org/SSL/CertificateCreation

Self-signed certificate creation

Dovecot includes a script to build self-signed SSL certificates using OpenSSL. In the source distribution this exists in doc/mkcert.sh. Binary installations usually create the certificate automatically when installing Dovecot and don’t include the script.

繰り返しになるが、doc/mkcert.shはインストールされない。

portsでdovecot2を作ったところに戻る。

make cleanしてしまった場合、portmaster等でインストールした場合には、慌てず/usr/ports/mail/dovecot2/で「make extract」すればOK。そして、

ここでスクリプトを実行してもよいし、どこかにコピーしてもよい。

俺様は、なんだか別のことにも使えそうなので、ホームディレクトリにコピーしておいた。スクリプトはdovecot-openssl.cnfを参照するのでこれもコピー。

準備をして実行。以下はsh、あるいはbashでの例。

# mkdir /usr/local/etc/ssl
# mkdir /usr/local/etc/ssl/private
# mkdir /usr/local/etc/ssl/certs
# SSLDIR=/usr/local/etc/ssl sh ./mkcert.sh
Generating a 1024 bit RSA private key
..++++++
..............++++++
writing new private key to '/usr/local/etc/ssl/private/dovecot.pem'

No tags for this post.

clamav: clamscanとclamdscanの違いってなんなんだよ

Pocket

clamavはフリーのアンチウイルスソフトウェア

最近はOS Xとかでも有名ですな。

公式サイト

http://www.clamav.net/lang/en/

インストールはportsから。

概要

一部モジュールのみ以下にまとめます。

  • clamscan
  • clamdscan
  • clamd
  • freshclam

・clamscan

 単品で動くウイルススキャナ。

 一回だけのスキャンに使用する。

 遅い。

・clamd

 ウイルススキャナデーモン

 後述のclamdscanとセットで使う。

 あるいはメールのスキャンなどに。

・clamdscan

 clamdとセットで動くウイルススキャナ。

 指定されたファイルのパスをclamdに教えると、clamdがスキャンしてくれる。

 clamdは定義ファイルをメモリ展開しているのでclamscan(clam*d*scanじゃなく)よりもスキャンが断然速い。

・freshclam

 定義ファイルのダウンローダ。

 オンデマンドで実行もできるし、常駐化させておいて定期的にダウンロードさせることもできる。

使い方: ウイルスデータベース更新

インストールすれば、すぐに使える。

まずは念のためウイルスデータベースを更新。freshclamを実行するだけ。

使い方: スキャン: clamscan

あとはclamscanにファイル名を引数で渡せばよい。

  • rを与えれば、ディレクトリを再帰的にスキャンすることもできる。

そのほか、よく使用するオプションとしては、

clamscanとclamdscan

先述の通り、clamscanとclamdscanではスピードが違う。

実験をしてみるとその差は歴然。

というより、clamscanが遅すぎる。

定期的にスキャンするなら、絶対にclamdscanがよい。

注意点はあるが、それは後述。

使い方:clamdscan

仕組みは以下の通りと理解している。

スキャンするときには、ファイルの場所をclamdscanに伝える。

clamdscanはdaemonとして常駐しているので、いちいちウイルスデータベースを読み込まなくてよい。

だから速い。

しかしNFSマウントしたファイルのスキャンなど、ファイルへのアクセス権限が特殊な場合に問題となるケースがあった。

clamdscan起動の準備をする。/etc/rc.confに以下を追加。

ついでにfreshclamもdaemonモードで起動するように。

portsから入れたなら、clamd.conf、freshclam.confは特にデフォルトでよい。

起動させる。

以上。

以下は参考。

/usr/local/etc/freshclam.conf

影響しそうなところのみピックアップ

・ウイルスデータベース格納場所

・freshclamのログファイル場所

・定義ファイル更新を試みる頻度

・プロキシ設定。これはありがたい。

・データベース更新時にclamdに再読み込みさせる。

・データベース更新が失敗したときに実行するコマンド

 興味あるが今は保留

・データベースが古い場合に実行するコマンド

 興味あるが今は保留

/usr/local/etc/clamd.conf

基本デフォルト。MaxScanSize、MaxFileSizeくらいか。

No tags for this post.