GUIツール



2009年 10月 14

より新しい記事 2011-01-12
http://perl.no-tubo.net/2011/01/06/メールサーバ構築のまとめ(複数のバーチャルド/

CentOS5.3

いろいろ構築した結果、メールサーバは Postfix +MySQL +Dovecot +postfixadmin で構成する事に決めた。
postfixadminを使う利点は、

  • 複数のバーチャルドメインでの運用が可能&管理が楽
  • ドメインの追加やメールアドレスの追加がブラウザからGUIで出来る

さらに、procmailとspamassassin、Clam AntiVirusを使って、スパムメール対策とウィルス対策も行う。

バーチャルドメイン環境でprocmailとspamassassinを使うにコツがいる(らしい)

ネットでの情報が少ない(ヒットしない)のでメモ。

メールサーバの構築

メールサーバの構築は メールサーバー構築(Postfix+Dovecot) – CentOSで自宅サーバー構築 を参考に行った。

おやじさんのPostfixによるSMTPサーバの構築(RedHat標準版編)も参考になる。

ウィルス対策

ウィルス対策は アンチウィルスソフト導入(Clam AntiVirus) – CentOSで自宅サーバー構築 を参考に行った。

スパムメール対策

スパムメール対策は メールサーバーでウィルス&スパムチェック(Postfix+Clam AntiVirus+SpamAssassin) – CentOSで自宅サーバー構築 を参考に行った。

postfixのMySQL対応化とpostfixadminの導入

Postfixによるメールサーバ構築 (Postfix+MySQL+Dovecot+postfixadmin) を参考に行った。

MySQL対応は CentOS5.3 PostfixをMySQL対応にするで行った。

リンク先で作成した(cat となっているが vi 等で新規作成する事)

/etc/postfix/mysql_virtual_alias_maps.cf
/etc/postfix/mysql_virtual_domains_maps.cf
/etc/postfix/mysql_virtual_mailbox_maps.cf
/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

のファイルにはMySQLのパスワードが含まれているのでパーミッションの変更を行う事。

chmod 640 /etc/postfix/mysql_*
chown root.postfix /etc/postfix/mysql_*

メールの保存は/mail 以下となる。

だいたいうまくいくのだが、多少の変更が必要。

spamassassinを有効にするにはprocmailでメールボックスに配送しなければならない。

バーチャルドメインの場合procmailが使えないという記事が多かったので心配だったが、

postfixのバーチャルドメイン管理でのspamフィルタについて

を読むとどうやら使えるらしい。

Postfixの設定

main.cfの設定。

http://centos.bungu-do.jp/2008/11/postfix_3_postfix.html のmain.cf 設定を少々変更。

cp /etc/postfix/main.cf /etc/postfix/main.cf.org
vi /etc/postfix/main.cf
-------------------------------------------------------------------------------
myhostname = mail.example.com ←自メールサーバFQDN
mydomain = example.com ←自サーバドメイン
#myorigin = $mydomain
myorigin = $myhostname

#inet_interfaces = localhost
inet_interfaces = all

#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
mydestination =

#relay_domains = $mydestination
relay_domains = $mydestination

home_mailbox = Maildir/

# IF YOU USE THIS TO DELIVER MAIL SYSTEM-WIDE, YOU MUST SET UP AN
# ALIAS THAT FORWARDS MAIL FOR ROOT TO A REAL USER.
#
#mailbox_command = /some/where/procmail
#mailbox_command = /some/where/procmail -a "$EXTENSION"
 mailbox_command = /usr/bin/procmail ←追記

smtpd_banner = $myhostname ESMTP unknown

local_transport = virtual
# virtual_transport = virtual ←コメントアウト
virtual_transport = procmail ←追記
virtual_mailbox_base = /mail
virtual_alias_maps = mysql:/etc/postfix/mysql_virtual_alias_maps.cf
virtual_alias_domains = $virtual_alias_maps
virtual_mailbox_domains = mysql:/etc/postfix/mysql_virtual_domains_maps.cf
virtual_mailbox_maps = mysql:/etc/postfix/mysql_virtual_mailbox_maps.cf
virtual_minimum_uid = 10000
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000

maximal_backoff_time = 800s
minimal_backoff_time = 100s
bounce_queue_lifetime = 60m
maximal_queue_lifetime = 60m

#mailbox_size_limit = 1024000000
message_size_limit = 20480000

#virtual_mailbox_limit = 51200000
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql_virtual_mailbox_limit_maps.cf
virtual_mailbox_limit_override = yes
virtual_overquota_bounce = yes
virtual_mailbox_limit_inbox = yes

smtpd_sasl_auth_enable = yes
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtpd_sasl_local_domain = $myhostname
smtpd_client_restrictions = reject_rbl_client bl.spamcop.net
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
-------------------------------------------------------------------------------

master.cfの設定。

vi /etc/postfix/master.cf

最終行に追記
procmail unix - n n - - pipe
  flags=R user=vuser argv=/usr/bin/procmail -t -m USER=${user} DOMAIN=${nexthop} /etc/procmailrc

procmailのルール、/etc/procmailrcを新規作成する。

vi /etc/procmailrc

SHELL=/bin/bash
PATH=/usr/bin:/bin
DEFAULT=/mail/$DOMAIN/$USER\@$DOMAIN/
#LOGFILE=/mail/procmail.log
LOGFILE=${DEFAULT}.procmail.log
#LOCKFILE=/mail/procmail.lock
LOCKFILE=/mail/$USER\@$DOMAIN.procmail.lock
VERBOSE=ON

:0fw
|/usr/bin/spamc

LOGFILEはテスト段階では/mail/procmail.logにしておくと楽。

VERBOSE=ON は詳細ログを記録する設定なので本格運用する際にはコメントアウトする。

また、LOCKFILEはユーザー数が増えた時の為に各ユーザーごとにロックファイルを使うようにしてみた。

ログの肥大化を防ぐため、ログローテーション設定ファイル新規作成する。

vi /etc/logrotate.d/procmail

/mail/*/*/.procmail.log {
    missingok
    nocreate
    notifempty
}

注意点として、バーチャルドメインでの運用の場合ローカルユーザーのメールボックスにメールが配信されない。root宛のメールも然り。

root宛のメールが普段使っているメールアドレス宛に配信されるようにしておく。

vi /etc/aliases

# Person who should get root's mail
#root:          marc
root:           myname@domain.com ←最終行に追加

newaliases

myname@domain.comにroot宛のメールが届くようになる。

テスト

メールを配信してみてヘッダ情報を見る。

spamasassinが適用されていれば

X-Spam-Checker-Version: SpamAssassin 3.2.5 (2008-06-10) on xxx.xxxx.jp
X-Spam-Level:
X-Spam-Status: No, score=-0.1 required=13.0 tests=AWL,CONTENT_TYPE_PRESENT, ISO2022JP_BODY,ISO2022JP_CHARSET,X_MAILER_PRESENT autolearn=ham version=3.2.5

Clam AntiVirusが適用されていれば

X-Virus-Scanned: amavisd-new at xxxx.jp

がヘッダ情報に挿入されているはず。

その他のテスト方法は各リンクに掲載されていた通り。

ユーザーメールディレクトリが作成されない

・・・なぜかメールディレクトリが作成されない。

spamチェックのためメール配送をprocmailにするとディレクトリ作成されない事が判明。

メール用ディレクトリは /mail 以下で、ユーザーが vuser 、グループが vuser 、パーミッションは0771。

とりあえずユーザー postfix にセカンダリグループ vuserを追加してみたら既存のドメインには作成される。

新規にドメイン追加>メールアドレス追加の場合は作成されない。

この後したい事

postfixadminでドメイン、メールユーザー等を削除した場合は各ディレクトリが削除されない。

postfixadminのconfig.inc.phpにオプション設定があるが、シェルスクリプトで各動作が行えるようだ。

シェルスクリプト・・・書けねぇ。。。

postfixadminでメールボックスを削除する
PostfixAdminのイケてないところ

この辺に該当の対処が書かれている。

cronを使って削除する方法のようだ。

postfixadmin/ADDITIONS 内にある、

postfixadmin-domain-postdeletion.sh
postfixadmin-mailbox-postcreation.sh
postfixadmin-mailbox-postdeletion.sh

こいつらを使えば出来るかな?

以下は分かりにくいのでまとめてみた

postfixadmin +procmailな環境でメールディレクトリの作成・削除

自動メールボックス作成に挑戦

.. continue reading ..


Filed under: CentOS5.x,postfix,postfixadmin

Trackback Uri






2009年 9月 28

(1)phpmyadminインストール

yum install phpmyadmin

/usr/share/phpmyadmin にインストールされる。
/usr/share/phpmyadmin/config.inc.phpを編集
$cfg[‘blowfish_secret’]を設定。

vi /usr/share/phpmyadmin/config.inc.php

/*
* This is needed for cookie based authentication to encrypt password in
* cookie
*/
$cfg[‘blowfish_secret’] = ‘*************‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

(2)「mcrypt 拡張をロードできません。PHP の設定を確認してください」というエラーへの対処。
以下は yum でインストール出来る(2010-05-31修正)

# yum --enablerepo=centosplus install php-mcrypt

* centosplusレポジトリのインストールが必要

yum -y install php-mbstring

※phpでマルチバイト処理をするには「php-mbstring」が必要
phpのバージョンを調べる

# php -v

PHP 4.3.9 (cgi) (built: Jun 1 2009 14:58:08)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies

php-mcrypt を http://rpm.pbone.net/ で探す。
キーワード「php-mcrypt」RedHat EL 4 にチェックを入れサーチ。

RedHat EL 4 ftp.sourceforge.net/pub/sourceforge/p/project/ph/phprpms/RHEL4 PHP RPMs/4.3.9-3.2/php-mcrypt-4.3.9-3.2.1.i386.rpm
http://rpm.pbone.net/index.php3/stat/4/idpl/12753489/com/php-mcrypt-4.3.9-3.2.1.i386.rpm.html

ダウンロード&インストール

# wget ftp://ftp.pbone.net/mirror/ftp.sourceforge.net/pub/sourceforge/p/project/ph/phprpms/RHEL4%20PHP%20RPMs/4.3.9-3.2/php-mcrypt-4.3.9-3.2.1.i386.rpm

rpm -ivh php-mcrypt-4.3.9-3.2.1.i386.rpm

(3)Apacheの設定。
※デフォルトではローカルからしか接続出来ない。
/etc/httpd/conf.d/phpmyadmin.conf が作成されるので適時修正。

vi /etc/httpd/conf.d/phpmyadmin.conf

#
# Web application to manage MySQL
#

Order Deny,Allow
Deny from all
Allow from 127.0.0.1
Allow from all ←追加

Alias /phpmyadmin /usr/share/phpmyadmin
Alias /phpMyAdmin /usr/share/phpmyadmin
Alias /mysqladmin /usr/share/phpmyadmin

Apache再起動。

http://xxxx.xx.xx/phpmyadmin/で確認。

※上記設定だと誰でもアクセス可能なので後で直す事。


Filed under: CentOS4.x,phpmyadmin

Trackback Uri






2009年 9月 19

phpmyadmin3.2xxでphp5.2以上が必要なのでインストール。
CentOS5.3のデフォルトだとphp5.16がインストールされる。

こちらの手順にて
http://centoshome.seesaa.net/article/117329591.html

確認

# php -v
PHP 5.3.0 (cli) (built: Jul 19 2009 17:55:08) 
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies


Filed under: CentOS5.x,phpmyadmin,サーバ管理

Trackback Uri






2009年 9月 12

1)下準備

・PerlのNet::SSLeayモジュールインストール

yum -y install perl-Net-SSLeay

・PerlのAuthen::PAMモジュールインストール
 ※ rpmforgeの導入が必要

yum -y install perl-Authen-PAM

2)Webminのインストール

最新版 http://www.webmin.com/

wget http://jaist.dl.sourceforge.net/project/webadmin/webmin/1.480/webmin-1.480-1.noarch.rpm

新規インストールの場合

rpm -ivh webmin-1.480-1.noarch.rpm

アップグレードの場合

rpm -Uvh webmin-1.480-1.noarch.rpm


Filed under: webmin

Trackback Uri






2009年 7月 1

Java Preferences パネル

今まで普通に使用出来ていたWebminのFile Manager が突然エラーで表示出来なくなった。
で、ググっていたらApple公式にヒントがあったのでメモ。

エラー内容はこんな感じ

Failed to get Language List
javax.net.ssl.SSHHandshakeException
java.security.cert.CertificateException
Java couldn’t trust Server


http://support.apple.com/kb/TA24031?viewlocale=ja_JP

Finder → 移動 → ユーティリティ → Java Preferences

(アプリケーション/ユーティリティ/Java Preferences)

で、Javaアプレットウィンドウ中の「J2SE 1.4.2」をドラッグして一番上に。

Safari再起動で使用可能。


参考:webmin File ManagerがJavaエラーで表示できないhttp://jp.webmin.com/node/519

にも、書き込んでおいた。


Filed under: Mac,webmin

Trackback Uri