カテゴリー
SugiBlog ホームページ制作・システム開発|大阪

qmHandle

qmailを運用していく上で非常に便利なツール「qmHandle」についてご紹介します。
スパムの被害に遭ったり、メールキューが溜まりすぎてサーバーで処理してしまいたい時などに重宝します。

初めは「queue-fast.pl」というツールを使っていました。
ただ、このツールには指定したアドレス宛のメールキューを削除という機能はあるのですが、
送信元のアドレスを指定して削除することはできません。

そのため、このツールでキューの一覧を出力しテキストファイルに保存し、その中から不要なキューのメール番号リストを作成。
リストを利用し、qmHandleで削除していくシェルスクリプトを作成し削除する、という方法をとっていました。

ですが、この方法だと少々時間がかかり、キューの数が多いとかなりかかります。
なんとかできないかとqmHandleのヘルプを見ると、送信元アドレスを指定して削除するオプションがありました!
前述のような面倒なことをしなくてもqmHandle一つで出来たとは…。
ちなみにそれが出来るようになったのはバージョン1.3.0からのようです。

qmHandleのオプションについて全てを紹介しているサイトは少なかったので、ここで紹介させていただきたいと思います。
qmHandleのダウンロードは以下のURLから。
https://sourceforge.net/projects/qmhandle/
続きを読む…»

0
1,884 views

サーバーをプライベートネットワークで運用する場合の注意点

ブロードバンドルーターで静的IPマスカレードを使用し、サーバーをプライベートネットワークで運用する場合の注意点をご紹介。

サーバーをプライベートIPで運用する場合、内部での名前解決をしてあげないといけません。

内部からのドメイン名前解決は/etc/hostsファイルに以下のように記述
※ドメインがexample.jp、ルーターが192.168.100.1、サーバーがホストwwwの192.168.100.2とします。

192.168.100.2   www.example.jp

これを書いておかないとサーバー自身でも自サイトを見ることができません。
更に自サイト内でフルパス参照ができません。
※リンクでページを移動するだけなら可能(クライアントの名前解決によるため)

特に複数のウェブサーバーがあり、別のウェブサーバーからデータを
PHP等のプログラムを使って読み出そうとすると、名前解決できずにエラーになります。

他の事例としては、メールサーバーとウェブサーバーが同ネットワーク内に
別に存在する場合で、ウェブサーバーからフォーム等でメールを同ネットワーク内の
メールサーバーで受けているアドレスに送る場合にも注意が必要です。
続きを読む…»

0
3,113 views

vpopmal 転送設定

vpopmailのaliasを使ってメールを転送する方法

例)
vpopmailのインストール先:/home/vpopmail
転送元アドレス:moto@example.jp
転送先アドレス:saki@example.net

# 転送設定
/home/vpopmail/bin/valias -i saki@example.net moto@example.jp

# 転送設定の確認
/home/vpopmail/bin/valias -s example.jp

# 転送設定の解除
/home/vpopmail/bin/valias -d moto@example.jp
0
1,190 views

Procmail 本文を取得する

procmailを使って、本文を変数に格納します。

procmailフラグ「b」…メールの本文をアクションに渡す

:0b
{
    BODY = `sed -e ' 1,/^$/ d'`
}

以上で変数$BODYに本文が格納されます。

参考URL: http://jo1upk.blogdns.net/linux/?%E3%82%BD%E3%83%95%E3%83%88%2Fprocmail%2Fformail

0
1,462 views

rblsmtpd [ucspi-tcp]

ucspi-tcpパッケージのrblsmtpdのオプション紹介

rblsmtpdはRBL(Realtime Blackhole List)データベースを利用して
スパムメール送信者であるかを判断するプログラムです。

オプション

オプション 説明
-a address addressをアンチRBLデータベースとして利用
-b アドレスがRBLに掲載されている場合、エラーコード533553を返す
-B アドレスがRBLに掲載されている場合、エラーコード451エラーコードを返す(デフォルト)
-c RBLの検索に失敗した場合に接続を拒否
-r address addressをRBLデータベースとして利用
-t n n秒のタイムアウト値を設定

エラーコード533:STMPサーバが送信を拒否
エラーコード553:STMPサーバが送信を拒否
エラーコード451:要求された処理の実行中にエラーが発生したため、処理に失敗。(サーバ側のエラー)
※実際にはデフォルトで553が返されていました。→公式サイトで確認すると553で、私が参考にした書籍が533となっていました。
http://cr.yp.to/ucspi-tcp/rblsmtpd.html [英語]
続きを読む…»

0
2,137 views

tcpserver [ucspi-tcp]

ucspi-tcpパッケージのtcpserverのオプション紹介

基本オプション

オプション 説明
-v すべてのメッセージをstderrに出力
-q メッセージをstderrに出力しない
-Q エラーメッセージのみをstderrに出力(デフォルト)

続きを読む…»

0
1,431 views

qmailの起動スクリプト

#!/bin/sh
# qmail: /var/qmail
. /etc/rc.d/init.d/functions

[ -f /var/qmail/rc ] || exit 0

case "$1" in
	start)

		# Start daemons.

		echo "Starting qmail."
		csh -cf '/var/qmail/rc &'

		# Starting tcpserver with pop3d
		/usr/local/bin/tcpserver -R 0 110 /var/qmail/bin/qmail-popup \
		mail.example.jp \
		/home/vpopmail/bin/vchkpw /var/qmail/bin/qmail-pop3d Maildir 2&>1 \
		| /var/qmail/bin/splogger pop3d &

		if [ $? = 0 ] ; then
			echo "pop3d starting:" `echo_success`
		else
			echo "pop3d starting:" `echo_failure`
		fi

		# Starting tcpserver with smtpd
		/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb \
		-c 100 -u qmaild -g nofiles \
		0 smtp /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &

		/usr/local/bin/tcpserver -v -x /home/vpopmail/etc/tcp.smtp.cdb \
		-c 100 -u qmaild -g nofiles \
		0 587 /var/qmail/bin/qmail-smtpd 2>&1 | /var/qmail/bin/splogger smtpd &

		if [ $? = 0 ] ; then
			echo "smtpd starting:" `echo_success`
		else
			echo "smtpd starting:" `echo_failure`
		fi

		touch /var/lock/subsys/qmaild
		;;

	stop)

		# Stop daemons.
		echo "Shutting down qmail."

		killall -g qmail-send
		if [ $? = 0 ] ; then
			echo "stopping smtpd:" `echo_success`
		else
			echo "stopping smtpd:" `echo_failure`
		fi

		killall -g tcpserver

		if [ $? = 0 ] ; then
			echo "stopping pop3d:" `echo_success`
		else
			echo "stopping pop3d:" `echo_failure`
		fi

		rm -f /var/lock/subsys/qmaild
		;;

	restart)

		$0 stop
		$0 start
		;;

	*)

		echo "Usage: `basename $0` {start|stop|restart}" >&2
		exit 64
		;;
esac

exit 0
0
1,737 views

エンベロープ【envelope】

エンベロープ(封筒)とは、電子メールメッセージの配送の際にメール本体に付加されるデータで、送信者と宛先の2つあります。
これはメールヘッダーに付加される情報とは異なり、実際の配送に使われる情報です。

送信者はMAIL FROM:、宛先はRCPT TO:となります。
ここに設定される情報は通常、メーラーでは見れないが、
メールヘッダーのReturn-Path:にMAIL FROM:の内容が、Received:にRCPT TO:の内容が記録されていることがあります。
エンベロープの送信者・宛先はメッセージの配送に使われる実際の送信者・宛先であり、ヘッダーに書かれているものとは異なる場合がある。つまりいくらでも詐称することが可能ということである。

0
1,405 views

procmailエラー

maillogにprocmailのエラーが出ていたのでメモ

エラー

procmail: Extraneous filter-flag ignored

原因

:0fwH
/dev/null

続きを読む…»

0
2,892 views

ブラックリストの作り方

環境:qmail+vpopmail+procmail

procmailを利用してブラックリストを作成します。
まず、適当なディレクトリに空のファイルを作成します。
(ここでは/usr/tmp/.blacklistとしています)

メールアドレスをブラックリストに追加するには、
件名に追加したいメールアドレス、本文に1行でパスワード(pw=00000000の形式)を
入力し、bl@example.jp宛に送信するようにしています。
送信元アドレスも指定されたドメインからのみに指定しています。

#/home/vpopmail/domains/example/bl/.procmailrc

SHELL=/bin/sh #ファイルに書き込むため必須
PATH=/bin:/usr/bin:/usr/local/bin
HOME=/home/vpopmail/domains/example/bl
MAILDIR=$HOME/Maildir
DEFAULT=$HOME/Maildir/
#LOGFILE=$MAILDIR/procmail.log
LOCKFILE=$MAILDIR/procmail.lock

# ブラックリストファイルのパス
BLACKLIST=/usr/tmp/.blacklist

# 送信元アドレスを判断
:0H
* ! ^From: .*@example.jp
/dev/null

# 本文中のパスワードをチェック
:0B
* ! ^(pw|Pw|pW|PW)=00000000
/dev/null

# 件名の有無をチェック([]内は^・半角スペース・タブ)
:0
*$ ! ^Subject: *\/[^ ].*
{
	ADDBL = `formail -x Subject:`
}

# 件名を変数に格納
:0E
{
	ADDBL = $MATCH
}

# 送信されたアドレスが既にブラックリストにあるかチェック
:0
* ? test -s $BLACKLIST
* ? echo "$ADDBL" | fgrep -iqwf $BLACKLIST
/dev/null

# ブラックリストに未登録なら追加
:0E
| echo $ADDBL >> $BLACKLIST && echo >> $BLACKLIST
# 色んなところで紹介されているのは、1行ずつ開けて登録するようになっているが
# 行が開いていなくても改行されていればいけるようなので以下でも可
| echo $ADDBL >> $BLACKLIST

続きを読む…»

0
2,946 views