ナビゲーション
FrontPage
FreeBSD
Linux
Citrix XenServer
VMware ESXi
Unixコマンド
MySQL
PostgreSQL
Windows
CMS/CRM
クラウド
用語
PHPスクリプト
Bashシェルスクリプト
Rubyスクリプト
開発日記
検索
ツールボックス
新しいページの作成
バックアップの表示
外部のリンク元
最近更新したページ
全ページ
ヘルプ
凍結
アップロード
ページ名の変更
最新の40件
2016-08-17
Linux/NagiosQL
Linux/CentOSチューニング
2016-02-23
Linux/ソフトウェアRAID復旧手順
2016-02-18
FreeBSD/DHCP
FreeBSD/squid
2016-02-15
Unixコマンド/file
2016-02-05
FreeBSD/DynaBook
FreeBSD/Linux compatibility
2016-01-21
PHPスクリプト/PEAR DBインストールできない
PHPスクリプト/PEAR DB
2016-01-20
PHP/フレームワーク/Zend Framework
PHP/フレームワーク
FreeBSD/Postfix+amavisd+clamav
2016-01-15
FreeBSD/sl
2015-12-04
Unixコマンド/dig
Unixコマンド/nslookup
Unixコマンド/traceroute
Linux/rsync
FreeBSD/rsync
Unixコマンド/vipw
2015-11-25
Linux/Postfix+MySQL+Postfix AdminによるバーチャルSMTPサーバの構築
Linux/Postfix + postgrey
2015-11-24
Linux/Postfix + amavisd + clamav
2015-05-25
Unixコマンド/ifconfig
2015-05-23
Unixコマンド/netstat
Unixコマンド/route
Unixコマンド/lsof
Unixコマンド/disown
Unixコマンド/time
Unixコマンド/crontab
2015-05-22
Unixコマンド/nohup
Unixコマンド/fgとbg
Unixコマンド/nice
Unixコマンド/kill
Unixコマンド/jobs
Unixコマンド/restor
Unixコマンド/dump
Unixコマンド/uncompress
Unixコマンド/compress
Unixコマンド/zcat
total:
6603
today:
1
yesterday:
0
now:
1
本文
ノート
編集
差分
一覧
FreeBSD/vpopmail の編集
*''&size(15){vpopmail + qmail + MySQL + Spamassassin};'' [#n8f031d6] #contents **''環境'' [#ec7723de] FreeBSD 6.0-Release vpopmail-5.4.10_5 qmail-1.03_4 qmailadmin-1.2.7 mysql-4.0.26 qmail-scanner-1.25_2 clamav-0.88.4 **''qmailインストール''&aname(A); [#d0f5327f] qmailには様々なパッチが存在しますが、とりあえずこの4つのパッチを当ててインストールします。 |BGCOLOR(#C0C0C0):CENTER:パッチ|BGCOLOR(#C0C0C0):CENTER:説明| |qmail-date-localtime.patch|Recieved フィールドの日時は、標準では GMT が入る。 これをローカルタイム(JST) にするには、qmail-date-localtime patch 当てる必要がある。| |qmailqueue-patch|環境変数QMAILQUEUEによりqueue登録プログラムを変更する。qmail-scanner導入のため必要。portにてmake時に WITH_QMAILQUEUE_PATCH=yes を指定することにより導入。| |qmail-smtpd-relay-reject|'%'等を含むアカウントへのメール受信を禁止し、relayを抑止する。このパッチを当てることにより、受信後エラーメール返信の手順を行わず、最初の受信時にエラーとするようになる。| |qmail-large-dns.patch|DNS の MX レコードが 512byte 以上の応答(RFC違反らしい)を返してくる AOL などに対応するためのパッチ。portにてデフォルトで導入される。| qmailの本体をportsを使って利用する準備に入る。portsを使うことで、qmailが必要とするシステムユーザの追加やMTAの切り替えが簡単に行える。ひとまずコンパイル前の状態で処理を止め、さきほど入手したパッチを適用する。 # cd /usr/ports/mail/qmail # make patch WITH_QMAILQUEUE_PATCH=yes MAIN_QMAIL_DATE_LOCALTIME=yes # cd work/qmail-1.03/ # fetch http://www.qmail.org/qmail-smtpd-relay-reject # patch -p1 < qmail-smtpd-relay-reject Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- orig/qmail-smtpd.c Mon Jun 15 06:53:16 1998 |+++ qmail-smtpd.c Sat Feb 9 12:07:19 2002 -------------------------- Patching file qmail-smtpd.c using Plan A... Hunk #1 succeeded at 53. Hunk #2 succeeded at 217. Hunk #3 succeeded at 266. Hmm... Ignoring the trailing garbage. done portsに展開されたファイルへのパッチの適用が終わったら、コンパイルとインストールを続けて行う。 # cd ../.. # make # make install ***sendmailの停止 [#bdd0fc19] # vi /etc/rc.conf ------------------------------ sendmail_enable="YES" ↓ sendmail_enable="NONE" ------------------------------ sendmailの代わりにqmailが呼び出されるようにリンクを張ります。 # mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail **''vpopmailインストール''&aname(B); [#e9b556df] MySQLとの連携するので、WITH_MYSQLをつけます~ WITH_CLEAR_PASSWD=yesはAPOPを有効にする。~ SpamassassinとQuotaを付けてインストールします。~ &color(red){※[[SpamAssasin日本語対応>FreeBSD/SpamAssassin]]でSpamAssassinをインストールする場合はWITH_SPAMASSASSIN=yesは必要ありません。}; # cd /usr/ports/mail/vpopmail # make WITH_MYSQL=yes WITH_CLEAR_PASSWD=yes \ WITH_DOMAIN_QUOTAS=yes WITH_SPAMASSASSIN=yes clean install ▼インストールされると、/usr/local/vpopmail/etc/vpopmail.mysql に以下のように書かれているはず。~ これをいじれば設定変更できる。~ ここでは例として、DB:vpopmaildb USER:vpopmailuser PASS:vpoppmailpassとします。~ MySQLはインストールされている事を前提としております。~ インストールは ⇒ [[ここ参照>/FreeBSD/Apache2.0]] # vi /usr/local/vpopmail/etc/vpopmail.mysql ------------------------------------------------- localhost|0|vpopmailuser|vpopmailpass|vpopmaildb localhost|0|vpopmailuser|vpopmailpass|vpopmaildb ------------------------------------------------- ▼データベース関連は自動的には作ってくれないので、作る必要がある。 $ mysql -u root -p > CREATE DATABASE vpopmaildb; > GRANT ALL ON vpopmaildb.* TO vpopmailuser@localhost IDENTIFIED BY 'vpopmailpass'; ▼localsがないとエラーが出力されるので、localsを作成。 # touch /var/qmail/control/locals ***''qmailadminインストール''&aname(C);&br; [#qda6c900] QuotaとHelpを付けてインストール # make WITH_MODIFY_QUOTA=yes WITH_HELP=yes clean install **POP befor SMTPの確認 [#ua713ba8] 簡単にいえば smtpを使用させる前に popで認証させ その認証が通ったIPを記録しておき ある一定の時間の間だけそのIPにsmtpの中継を許可すると言う事です。 WITH_MYSQLのオプションを付けてインストールした場合は/usr/local/vpopmail/etc/open-smtpではなくmysqに保存されます。 下記のコマンドで確認し、POP3で認証したIPアドレスが記載されていれば正常です。 $ mysql -u root -p[パスワード] mysql> select * from vpopmail.relay -''スクリプトを修正(起動シェル)''&aname(D);&br; ▼起動シェル~ シンボリックリンクを付けておく # ln -s /var/qmail/rc /usr/local/etc/rc.d/qmail.sh # vi /usr/local/etc/rc.d/mail.sh #!/bin/sh case "$1" in start) echo -n " STEP 1 : CDB " /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb \ /usr/local/vpopmail/etc/tcp.smtp.tmp < /usr/local/vpopmail/etc/tcp.smtp /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.pop3.cdb \ /usr/local/vpopmail/etc/tcp.pop3.tmp < /usr/local/vpopmail/etc/tcp.pop3 echo -n " STEP 2 : qmail " exec env - PATH="/var/qmail/bin:$PATH" \ /var/qmail/bin/qmail-start ./Maildir/ \ splogger qmail& exec env - PATH="/var/qmail/bin:$PATH" \ /usr/local/bin/tcpserver -v -x /usr/local/vpopmail/etc/tcp.smtp.cdb -R -H \ -u 82 -g 81 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtp 3 & echo " STEP 3 : POP3" /usr/local/bin/tcpserver -v -x /usr/local/vpopmail/etc/tcp.pop3.cdb -R -H 0 pop3 \ /var/qmail/bin/qmail-popup ma21.ath.cx \ /usr/local/vpopmail/bin/vchkpw \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3 3 & exit 0 ;; stop) exec killall qmail-send tcpserver ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac ***tcpserverのオプションで下記の-R -Hを付けないと送信にとても時間が掛かります。 [#t5711904] -R IDENTを行わない。 -H リモートホスト名を調べない。 **''tcp.pop3とtcp.smtpの作成'' [#t5144874] # vi /usr/local/vpopmail/etc/tcp.pop3 ----------------------------------- ALL:allow ----------------------------------- # vi /usr/local/vpopmail/etc/tcp.smtp ----------------------------------- # 127.0.0.1からはすべてパス 127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue" # その他はすべてQmail-Scanner、でチェックする :allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl" ----------------------------------- **''POP befor SMTPのクリア処理''&aname(F);~ [#f1531758] 5分おきにクリア処理を走らせるようにする。一応vpopmailユーザで設定 # crontab -u vpopmail -e --------------------------------------------------------------------- */5 * * * * /usr/local/vpopmail/bin/clearopensmtp 2>&1 >/dev/null --------------------------------------------------------------------- **''SpamAssassinの設定''&aname(E); [#qe7ee695] &color(red){※[[SpamAssasin日本語対応>FreeBSD/SpamAssassin]]でSpamAssassinをインストールする場合は起動シェルは自分で作成します。}; ***rc.confにも追加 [#zf9a9da1] ユーザごとのconfigファイルは使わないようにして起動~ いろいろ試しましたがこの方法がエラーもなく正常にログがはかれました。 # vi /etc/rc.conf ---------------------------------- spamd_enable="YES" spamd_flags=${spamd_flags:-"-s /var/log/spam.log -c -d -x -v -u vpopmail -r ${spamd_pidfile}"} ---------------------------------- ***local.cf [#f16c2fca] # cp /usr/local/etc/mail/spamassassin/local.cf.sample /usr/local/etc/mail/spamassassin/local.cf 下記の3行だけ変更しておく。 rewrite_header Subject [SPAM] # 件名を書き換える。[SPAM]を件名の先頭に付ける report_safe 1 # 0:本文は変更しない 1:本文は添付に変更(デフォルト) trusted_networks 192.168.1. # 信頼済のネットワークを除外する ***spamassassin動作 [#b53c9f91] vpopmailを上記の設定で起動するとユーザにメールが来ると、/usr/local/vpopmail/.spamassassinをvpopmailユーザで参照しようとします。~ 自分の場合は、/etcに設定ファイルを置いてシンボリックリンクを張ってます。 # mkdir /etc/vpopmail/spamassassin # chown vpopmail:vchkpw /etc/vpopmail/spamassassin # ln -s /etc/vpopmail/spamassassin /usr/local/vpopmail/.spamassassin **ClamAVインストール [#r769eb60] # cd /usr/ports/security/clamav # make install ***/etc/rc.confの編集 [#xd64ec6f] clamav_clamd_enable="YES" clamav_freshclam_enable="YES" **qmail-scanner [#e0a9727b] インストール # cd /usr/ports/mail/qmail-scanner # make QMAILSCAN_SCANNERS="clamdscan,verbose_spamassassin" install ***qmail-scannerの動作 [#t3513f8a] /usr/local/bin/qmail-scanner.plが実行ファイルですが、sビットがたっておりsuidperlが入っていれば、qscanユーザで実行することになります。~ &color(red){※FreeBSD5.4以降はセキュリティ上の問題でsuidperlがデフォルトでは入っておりません。};~ /usr/local/qmailscanにworkフォルダやtmpフォルダなどが用意されていますが、パーミッションで実行に失敗する。~ suidperlが入っていなくても、パーミッションを変更すればちゃんと実行されるようです。 qmail-scannerからClamAVを呼び出す時にclamdscanの場合下記のようなエラーが出る事があります。 ~ clamscan: corrupt or unknown ClamAV scanner error or memory/resource/perms problem - exit status /usr/local/bin/qmail-scanner-queue.plの$clamdscan_binaryの変数を直接編集しclamscanに変更すれば、正常にスキャンできます。~ clamscanはデーモンから起動しない為処理が遅いみたいですが、自分の環境では特に問題ありません。 223 my $clamdscan_binary='/usr/local/bin/clamscan'; ***文字化け対策 [#he78bf14] qmail-scanner のインストール時に、--lang ja_JP.EUC で、管理者宛のメッセージは日本語化されるのですが、ウィルス検出した、メールの Subject が日本語だと、その部分が文字化けしてしまいます。 この対策として、/var/qmail/bin/qmail-scanner-queue.pl を2箇所ほど修正します。 まず、1箇所目は、&color(blue){sub email_sender { };という個所を探してその関数の open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); の行を open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); と変更してください。 もう一箇所は、&color(blue){sub email_recips { };という関数の open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); の行を open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); と変更してください。 これで、nkf によって Subject も日本語化されるます。 ***バージョンの更新 [#a1b5647d] qmail-scannerがヘッダに付加するバージョン情報を更新する。~ ファイルは/usr/local/qmailscan/qmail-scanner-queue-version.txt $ cat /usr/local/qmailscan/qmail-scanner-queue-version.txt clamdscan: 0.88.4/1894. spamassassin: 3.1.5. ・更新は以下のコマンドで行う /usr/local/bin/qmail-scanner-queue.pl -z cron等に設定し一日一回くらいで更新を行うと良いと思う。 **.procmail編集 [#rb8168b5] 最後にprocmailでヘッダーに「X-Spam-Status: Yes」があった場合.Spamフォルダに入れるように設定しました。~ &color(red){※DOMAIN,USERは環境に合わせて変更してください。}; PATH=/usr/bin:/bin:/usr/local/bin HOME=/usr/local/vpopmail/domains/DOMAIN/USER MAILDIR=$HOME/Maildir DEFAULT=$HOME/Maildir/ LOGFILE=$MAILDIR/procmail.log LOCKFILE=$MAILDIR/procmail.lock SPAM=$MAILDIR/.Spam/ :0fw: spamassassin.lock | spamc :0 * ^X-Spam-Status: Yes $SPAM **''起動''&aname(G); [#pc065bcd] # /usr/local/etc/rc.d/qmail.sh start # /usr/local/etc/rc.d/sa-spamd.sh start # /usr/local/etc/rc.d/clamav-clamd start # /usr/local/etc/rc.d/clamav-freshclam start **''vpopmail(ドメイン・ユーザの追加削除)''&aname(H); [#r25f1457] ''[ドメイン追加]'' # /usr/local/vpopmail/bin/vadddomain example.co.jp Please enter password for postmaster:****** enter password again:****** # /usr/local/vpopmail/bin/vdominfo example.co.jp domain: example.co.jp uid: 89 gid: 89 dir: /usr/local/vpopmail/domains/example.co.jp users: 1 ''[ドメイン削除]'' # /usr/local/vpopmail/bin/vdeldomain example.co.jp ''[ユーザ追加]'' # /usr/local/vpopmail/bin/vadduser foo@example.co.jp Please enter password for foo@example.co.jp:******* enter password again:******* # /usr/local/vpopmail/bin/vuserinfo foo@example.co.jp name: foo passwd: $3$QfA7KKeX$kiKwlqVIRfP/fTLfi22bl6 clear passwd: uid: 1 gid: 0 flags: 0 gecos: foo limits: No user limits set. dir: /usr/local/vpopmail/domains/example.co.jp/foo quota: NOQUOTA usage: NOQUOTA account created: DDD MMM DD HH:MM:SS YYYY last auth: Never logged in ''[ユーザ削除]'' # /usr/local/vpopmail/bin/vdeluser foo@example.co.jp ''[パスワードの変更]'' # /usr/local/vpopmail/bin/vpasswd foo@example.co.jp [パスワード] **''qmailadmin'' [#t90abbd7] ▼qmailadminのスクリーンショット~ SquirreMailにqmailadmin_loginのプラグインを入れて表示させたところ。 #ref(http://www.flateight.com/uploads/bwiki/vpopmail/qmailadmin.jpg) ~ ~ **不正中継テスト [#o12fd6c8] http://www.abuse.net/relay.html +Address to test:にテストしたいホスト名を入力 +[Test for relay]ボタンをクリック 参考にしたページ~ [[fkimura.com>http://www.fkimura.com/vpopmail0.html]]~ [[bugbearr.jp>http://www.bugbearr.jp/index.php?FreeBSD%2Fvpopmail]]~
タイムスタンプを変更しない
*''&size(15){vpopmail + qmail + MySQL + Spamassassin};'' [#n8f031d6] #contents **''環境'' [#ec7723de] FreeBSD 6.0-Release vpopmail-5.4.10_5 qmail-1.03_4 qmailadmin-1.2.7 mysql-4.0.26 qmail-scanner-1.25_2 clamav-0.88.4 **''qmailインストール''&aname(A); [#d0f5327f] qmailには様々なパッチが存在しますが、とりあえずこの4つのパッチを当ててインストールします。 |BGCOLOR(#C0C0C0):CENTER:パッチ|BGCOLOR(#C0C0C0):CENTER:説明| |qmail-date-localtime.patch|Recieved フィールドの日時は、標準では GMT が入る。 これをローカルタイム(JST) にするには、qmail-date-localtime patch 当てる必要がある。| |qmailqueue-patch|環境変数QMAILQUEUEによりqueue登録プログラムを変更する。qmail-scanner導入のため必要。portにてmake時に WITH_QMAILQUEUE_PATCH=yes を指定することにより導入。| |qmail-smtpd-relay-reject|'%'等を含むアカウントへのメール受信を禁止し、relayを抑止する。このパッチを当てることにより、受信後エラーメール返信の手順を行わず、最初の受信時にエラーとするようになる。| |qmail-large-dns.patch|DNS の MX レコードが 512byte 以上の応答(RFC違反らしい)を返してくる AOL などに対応するためのパッチ。portにてデフォルトで導入される。| qmailの本体をportsを使って利用する準備に入る。portsを使うことで、qmailが必要とするシステムユーザの追加やMTAの切り替えが簡単に行える。ひとまずコンパイル前の状態で処理を止め、さきほど入手したパッチを適用する。 # cd /usr/ports/mail/qmail # make patch WITH_QMAILQUEUE_PATCH=yes MAIN_QMAIL_DATE_LOCALTIME=yes # cd work/qmail-1.03/ # fetch http://www.qmail.org/qmail-smtpd-relay-reject # patch -p1 < qmail-smtpd-relay-reject Hmm... Looks like a unified diff to me... The text leading up to this was: -------------------------- |--- orig/qmail-smtpd.c Mon Jun 15 06:53:16 1998 |+++ qmail-smtpd.c Sat Feb 9 12:07:19 2002 -------------------------- Patching file qmail-smtpd.c using Plan A... Hunk #1 succeeded at 53. Hunk #2 succeeded at 217. Hunk #3 succeeded at 266. Hmm... Ignoring the trailing garbage. done portsに展開されたファイルへのパッチの適用が終わったら、コンパイルとインストールを続けて行う。 # cd ../.. # make # make install ***sendmailの停止 [#bdd0fc19] # vi /etc/rc.conf ------------------------------ sendmail_enable="YES" ↓ sendmail_enable="NONE" ------------------------------ sendmailの代わりにqmailが呼び出されるようにリンクを張ります。 # mv /usr/sbin/sendmail /usr/sbin/sendmail.old # ln -s /var/qmail/bin/sendmail /usr/sbin/sendmail **''vpopmailインストール''&aname(B); [#e9b556df] MySQLとの連携するので、WITH_MYSQLをつけます~ WITH_CLEAR_PASSWD=yesはAPOPを有効にする。~ SpamassassinとQuotaを付けてインストールします。~ &color(red){※[[SpamAssasin日本語対応>FreeBSD/SpamAssassin]]でSpamAssassinをインストールする場合はWITH_SPAMASSASSIN=yesは必要ありません。}; # cd /usr/ports/mail/vpopmail # make WITH_MYSQL=yes WITH_CLEAR_PASSWD=yes \ WITH_DOMAIN_QUOTAS=yes WITH_SPAMASSASSIN=yes clean install ▼インストールされると、/usr/local/vpopmail/etc/vpopmail.mysql に以下のように書かれているはず。~ これをいじれば設定変更できる。~ ここでは例として、DB:vpopmaildb USER:vpopmailuser PASS:vpoppmailpassとします。~ MySQLはインストールされている事を前提としております。~ インストールは ⇒ [[ここ参照>/FreeBSD/Apache2.0]] # vi /usr/local/vpopmail/etc/vpopmail.mysql ------------------------------------------------- localhost|0|vpopmailuser|vpopmailpass|vpopmaildb localhost|0|vpopmailuser|vpopmailpass|vpopmaildb ------------------------------------------------- ▼データベース関連は自動的には作ってくれないので、作る必要がある。 $ mysql -u root -p > CREATE DATABASE vpopmaildb; > GRANT ALL ON vpopmaildb.* TO vpopmailuser@localhost IDENTIFIED BY 'vpopmailpass'; ▼localsがないとエラーが出力されるので、localsを作成。 # touch /var/qmail/control/locals ***''qmailadminインストール''&aname(C);&br; [#qda6c900] QuotaとHelpを付けてインストール # make WITH_MODIFY_QUOTA=yes WITH_HELP=yes clean install **POP befor SMTPの確認 [#ua713ba8] 簡単にいえば smtpを使用させる前に popで認証させ その認証が通ったIPを記録しておき ある一定の時間の間だけそのIPにsmtpの中継を許可すると言う事です。 WITH_MYSQLのオプションを付けてインストールした場合は/usr/local/vpopmail/etc/open-smtpではなくmysqに保存されます。 下記のコマンドで確認し、POP3で認証したIPアドレスが記載されていれば正常です。 $ mysql -u root -p[パスワード] mysql> select * from vpopmail.relay -''スクリプトを修正(起動シェル)''&aname(D);&br; ▼起動シェル~ シンボリックリンクを付けておく # ln -s /var/qmail/rc /usr/local/etc/rc.d/qmail.sh # vi /usr/local/etc/rc.d/mail.sh #!/bin/sh case "$1" in start) echo -n " STEP 1 : CDB " /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.smtp.cdb \ /usr/local/vpopmail/etc/tcp.smtp.tmp < /usr/local/vpopmail/etc/tcp.smtp /usr/local/bin/tcprules /usr/local/vpopmail/etc/tcp.pop3.cdb \ /usr/local/vpopmail/etc/tcp.pop3.tmp < /usr/local/vpopmail/etc/tcp.pop3 echo -n " STEP 2 : qmail " exec env - PATH="/var/qmail/bin:$PATH" \ /var/qmail/bin/qmail-start ./Maildir/ \ splogger qmail& exec env - PATH="/var/qmail/bin:$PATH" \ /usr/local/bin/tcpserver -v -x /usr/local/vpopmail/etc/tcp.smtp.cdb -R -H \ -u 82 -g 81 0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtp 3 & echo " STEP 3 : POP3" /usr/local/bin/tcpserver -v -x /usr/local/vpopmail/etc/tcp.pop3.cdb -R -H 0 pop3 \ /var/qmail/bin/qmail-popup ma21.ath.cx \ /usr/local/vpopmail/bin/vchkpw \ /var/qmail/bin/qmail-pop3d Maildir 2>&1 | /var/qmail/bin/splogger pop3 3 & exit 0 ;; stop) exec killall qmail-send tcpserver ;; *) echo "Usage: `basename $0` {start|stop}" >&2 exit 64 ;; esac ***tcpserverのオプションで下記の-R -Hを付けないと送信にとても時間が掛かります。 [#t5711904] -R IDENTを行わない。 -H リモートホスト名を調べない。 **''tcp.pop3とtcp.smtpの作成'' [#t5144874] # vi /usr/local/vpopmail/etc/tcp.pop3 ----------------------------------- ALL:allow ----------------------------------- # vi /usr/local/vpopmail/etc/tcp.smtp ----------------------------------- # 127.0.0.1からはすべてパス 127.:allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/var/qmail/bin/qmail-queue" # その他はすべてQmail-Scanner、でチェックする :allow,RELAYCLIENT="",RBLSMTPD="",QMAILQUEUE="/usr/local/bin/qmail-scanner-queue.pl" ----------------------------------- **''POP befor SMTPのクリア処理''&aname(F);~ [#f1531758] 5分おきにクリア処理を走らせるようにする。一応vpopmailユーザで設定 # crontab -u vpopmail -e --------------------------------------------------------------------- */5 * * * * /usr/local/vpopmail/bin/clearopensmtp 2>&1 >/dev/null --------------------------------------------------------------------- **''SpamAssassinの設定''&aname(E); [#qe7ee695] &color(red){※[[SpamAssasin日本語対応>FreeBSD/SpamAssassin]]でSpamAssassinをインストールする場合は起動シェルは自分で作成します。}; ***rc.confにも追加 [#zf9a9da1] ユーザごとのconfigファイルは使わないようにして起動~ いろいろ試しましたがこの方法がエラーもなく正常にログがはかれました。 # vi /etc/rc.conf ---------------------------------- spamd_enable="YES" spamd_flags=${spamd_flags:-"-s /var/log/spam.log -c -d -x -v -u vpopmail -r ${spamd_pidfile}"} ---------------------------------- ***local.cf [#f16c2fca] # cp /usr/local/etc/mail/spamassassin/local.cf.sample /usr/local/etc/mail/spamassassin/local.cf 下記の3行だけ変更しておく。 rewrite_header Subject [SPAM] # 件名を書き換える。[SPAM]を件名の先頭に付ける report_safe 1 # 0:本文は変更しない 1:本文は添付に変更(デフォルト) trusted_networks 192.168.1. # 信頼済のネットワークを除外する ***spamassassin動作 [#b53c9f91] vpopmailを上記の設定で起動するとユーザにメールが来ると、/usr/local/vpopmail/.spamassassinをvpopmailユーザで参照しようとします。~ 自分の場合は、/etcに設定ファイルを置いてシンボリックリンクを張ってます。 # mkdir /etc/vpopmail/spamassassin # chown vpopmail:vchkpw /etc/vpopmail/spamassassin # ln -s /etc/vpopmail/spamassassin /usr/local/vpopmail/.spamassassin **ClamAVインストール [#r769eb60] # cd /usr/ports/security/clamav # make install ***/etc/rc.confの編集 [#xd64ec6f] clamav_clamd_enable="YES" clamav_freshclam_enable="YES" **qmail-scanner [#e0a9727b] インストール # cd /usr/ports/mail/qmail-scanner # make QMAILSCAN_SCANNERS="clamdscan,verbose_spamassassin" install ***qmail-scannerの動作 [#t3513f8a] /usr/local/bin/qmail-scanner.plが実行ファイルですが、sビットがたっておりsuidperlが入っていれば、qscanユーザで実行することになります。~ &color(red){※FreeBSD5.4以降はセキュリティ上の問題でsuidperlがデフォルトでは入っておりません。};~ /usr/local/qmailscanにworkフォルダやtmpフォルダなどが用意されていますが、パーミッションで実行に失敗する。~ suidperlが入っていなくても、パーミッションを変更すればちゃんと実行されるようです。 qmail-scannerからClamAVを呼び出す時にclamdscanの場合下記のようなエラーが出る事があります。 ~ clamscan: corrupt or unknown ClamAV scanner error or memory/resource/perms problem - exit status /usr/local/bin/qmail-scanner-queue.plの$clamdscan_binaryの変数を直接編集しclamscanに変更すれば、正常にスキャンできます。~ clamscanはデーモンから起動しない為処理が遅いみたいですが、自分の環境では特に問題ありません。 223 my $clamdscan_binary='/usr/local/bin/clamscan'; ***文字化け対策 [#he78bf14] qmail-scanner のインストール時に、--lang ja_JP.EUC で、管理者宛のメッセージは日本語化されるのですが、ウィルス検出した、メールの Subject が日本語だと、その部分が文字化けしてしまいます。 この対策として、/var/qmail/bin/qmail-scanner-queue.pl を2箇所ほど修正します。 まず、1箇所目は、&color(blue){sub email_sender { };という個所を探してその関数の open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); の行を open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); と変更してください。 もう一箇所は、&color(blue){sub email_recips { };という関数の open(SM,"|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); の行を open(SM,"|/usr/local/bin/nkf -j|$qmailinject -h -f ''")||&tempfail("cannot open $qmailinject for sending quarantine report - $!"); と変更してください。 これで、nkf によって Subject も日本語化されるます。 ***バージョンの更新 [#a1b5647d] qmail-scannerがヘッダに付加するバージョン情報を更新する。~ ファイルは/usr/local/qmailscan/qmail-scanner-queue-version.txt $ cat /usr/local/qmailscan/qmail-scanner-queue-version.txt clamdscan: 0.88.4/1894. spamassassin: 3.1.5. ・更新は以下のコマンドで行う /usr/local/bin/qmail-scanner-queue.pl -z cron等に設定し一日一回くらいで更新を行うと良いと思う。 **.procmail編集 [#rb8168b5] 最後にprocmailでヘッダーに「X-Spam-Status: Yes」があった場合.Spamフォルダに入れるように設定しました。~ &color(red){※DOMAIN,USERは環境に合わせて変更してください。}; PATH=/usr/bin:/bin:/usr/local/bin HOME=/usr/local/vpopmail/domains/DOMAIN/USER MAILDIR=$HOME/Maildir DEFAULT=$HOME/Maildir/ LOGFILE=$MAILDIR/procmail.log LOCKFILE=$MAILDIR/procmail.lock SPAM=$MAILDIR/.Spam/ :0fw: spamassassin.lock | spamc :0 * ^X-Spam-Status: Yes $SPAM **''起動''&aname(G); [#pc065bcd] # /usr/local/etc/rc.d/qmail.sh start # /usr/local/etc/rc.d/sa-spamd.sh start # /usr/local/etc/rc.d/clamav-clamd start # /usr/local/etc/rc.d/clamav-freshclam start **''vpopmail(ドメイン・ユーザの追加削除)''&aname(H); [#r25f1457] ''[ドメイン追加]'' # /usr/local/vpopmail/bin/vadddomain example.co.jp Please enter password for postmaster:****** enter password again:****** # /usr/local/vpopmail/bin/vdominfo example.co.jp domain: example.co.jp uid: 89 gid: 89 dir: /usr/local/vpopmail/domains/example.co.jp users: 1 ''[ドメイン削除]'' # /usr/local/vpopmail/bin/vdeldomain example.co.jp ''[ユーザ追加]'' # /usr/local/vpopmail/bin/vadduser foo@example.co.jp Please enter password for foo@example.co.jp:******* enter password again:******* # /usr/local/vpopmail/bin/vuserinfo foo@example.co.jp name: foo passwd: $3$QfA7KKeX$kiKwlqVIRfP/fTLfi22bl6 clear passwd: uid: 1 gid: 0 flags: 0 gecos: foo limits: No user limits set. dir: /usr/local/vpopmail/domains/example.co.jp/foo quota: NOQUOTA usage: NOQUOTA account created: DDD MMM DD HH:MM:SS YYYY last auth: Never logged in ''[ユーザ削除]'' # /usr/local/vpopmail/bin/vdeluser foo@example.co.jp ''[パスワードの変更]'' # /usr/local/vpopmail/bin/vpasswd foo@example.co.jp [パスワード] **''qmailadmin'' [#t90abbd7] ▼qmailadminのスクリーンショット~ SquirreMailにqmailadmin_loginのプラグインを入れて表示させたところ。 #ref(http://www.flateight.com/uploads/bwiki/vpopmail/qmailadmin.jpg) ~ ~ **不正中継テスト [#o12fd6c8] http://www.abuse.net/relay.html +Address to test:にテストしたいホスト名を入力 +[Test for relay]ボタンをクリック 参考にしたページ~ [[fkimura.com>http://www.fkimura.com/vpopmail0.html]]~ [[bugbearr.jp>http://www.bugbearr.jp/index.php?FreeBSD%2Fvpopmail]]~
テキスト整形のルールを表示する
ログインまたはアカウント作成