? いろんなことをしてみるブログ(予定) 鯖
FC2ブログ

rbldnsdとか

超久しぶりですかね?

またまた変なものに手を出した…

今度はDNSBLをやってみようかと
メール鯖でDNSBLの登録有無でスパムの振り分けをやってるが、時たまスパム判定がされないのがあるんだよね
(それ以外の条件も入れてるんだけど…)

それをどうにかしてスパムとして引っ掛けたくて
「じゃ、自分で立ててみればいいんじゃね?」とwww

と、云う訳で、やってみます。

今回入れたのは「rbldnsd」というやつ
DL元はhttp://www.corpit.ru/mjt/rbldnsd/
現時点での最新版は「0.997a」です。

先ずはDLしてmake、配置です。

wget http://www.corpit.ru/mjt/rbldnsd/rbldnsd-0.997a.tar.gz
tar zxvf rbldnsd-0.997a.tar.gz
cd rbldnsd-0.997a
./configure
make
cp -a rbldnsd /usr/local/sbin/



続いて、rbldns用のユーザーを作成、設定ファイル用のディレクトリを作成
※作成先は /var/lib/rbldns

adduser rbldns
mkdir -p /var/lib/rbldns
chown rbldns:rbldns /var/lib/rbldns



いま作成した、設定フォルダに登録用のファイルを作成する。
※host用はhost、IPアドレス用はipとした
まずはhost用
/var/lib/rbldns/host

:127.0.0.2: Blocked - $
$SOA 3000 rbl.try-blog.com hostmaster.rbl.try-blog.com 0 600 300 86400 300
$NS 3000 rbl.try-blog.com

example.jp
example.com



次にIPアドレス用
/var/lib/rbldns/ip

:127.0.0.2: Blocked - $
$SOA 3000 rbl.try-blog.com hostmaster.rbl.try-blog.com 0 600 300 86400 300
$NS 3000 rbl.try-blog.com

192.168.0.0/24
10.0.0.0/8


最初の3行は設定。rbl.try-blog.comの部分は各々置き換え
example.jpや、192.168.0.0/24から先が、BL部分

最後に起動
起動は、daemontoolsを利用する
/service/rbl/run

#!/bin/sh

exec /usr/local/sbin/rbldnsd \
-u rbldns \
-r /var/lib/rbldns \
-b 127.0.0.1/53 \
-l +- \
-n \
rbl.try-blog.com:ip4set:ip \
rbl.try-blog.com:dnset:host \
2>&1



これで起動できるので、取り敢えずdigでexample.jp.rbl.try-blog.comを問合せて 「127.0.0.2」が帰ってくればOK



なんだけどさ、コレ、内側からは大丈夫だけど、外からは無理なんだよね…
バインドするアドレスを外に向けて見たりしたけど、8割位返答なしになる…

しょうがないからbind用のゾーンファイルを吐いてもらう
/usr/local/sbin/rbldnsd -d -r /var/lib/rbldns/ rbl.rbl.try-blog.com:ip4set:ip rbl.try-blog.com:dnset:host > /etc/pdns/rbl.rbl.try-blog.com.zone

そして、PowerDNSでBINDのゾーンファイル読むようにしてなんとか動作

まぁ、動作してるしいっか?



因みに、うちはスクリプト書いて届いたメールを読み込んでリストの更新とかしてる

スポンサーサイト



2013/09/24 14:35 | COMMENT(0)TRACKBACK(0)  TOP

softether-vpnが公開された模様です

PacketiX VPN 4のオープンソース版がいつの間にか公開されてるんだね…

今までPacketiX VPN 4のRC版使ってたけどそろそろ利用期限来るからこっちに乗り換える

1まず、既にインストール済みのPacketiX VPN 4をアンインストールする。
/usr/local/vpnserver を削除でアンインストール完了

デーモンの自動起動も一応切っとく

sudo chkconfig vpnserver off



2softether vpnのダウンロード
softetherダウンロードセンターから自分の鯖用のをダウンロード

うちはIntel / AMDのx64版

wget http://www.softether-download.com/files/softether/v1.00-9023-rc2-2013.03.08-tree/Linux/SoftEther%20VPN%20Server/64bit%20-%20Intel%20x64%20or%20AMD64/softether-vpnserver-v1.00-9023-rc2-2013.03.08-linux-x64-64bit.tar.gz



3解凍

tar zxvf softether-vpnserver-v1.00-9023-rc2-2013.03.08-linux-x64-64bit.tar.gz


解凍すると vpnserver/が現れるからそいつに移動
して、.install.shの実行

cd vpnserver
./.install.sh



色々聞かれるから答えてく

Do you want to read the License Agreement for this software ?

1. Yes
2. No

Please choose one of above number:



→YES (1を選択)


Did you read and understand the License Agreement ?
(If you couldn't read above text, Please read 'ReadMeFirst_License.txt'
file with any text editor.)

1. Yes
2. No

Please choose one of above number:



→YES (1を選択)

Did you agree the License Agreement ?

1. Agree
2. Do Not Agree

Please choose one of above number:



→YES (1を選択)

ここまで来ると動作チェックが始まる。
無事完了すると
「すべてのチェックに合格しました。このシステム上で SoftEther VPN Server / Bridge が正しく動作する可能性が高いと思われま す。」
って出て終了。

出来上がったvpnserverのフォルダごとはそのまんま/usr/local/に移す

cd ../
sudo cp -r vpnserver /usr/local/



試しに起動してみる

sudo service vpnserver start



SoftEther VPN Server Service Started.

って出ればOK!

※PacketiX VPNで使ってた起動スクリプトをそのまんま流用可能なので今回残しておいた
起動スクリプトがないなら作成しておけばOK!

ここまで済んだらあとはWindowsから操作でもそのまんまLinux側からでもどっちでもOK!

テーマ : サーバー - ジャンル : コンピュータ

2013/03/09 17:40 | COMMENT(0)TRACKBACK(0)  TOP

なぜ立てたのか?freedb

なんとなく立てちゃったんだよね

いつも利用させてもらってるとこがよくエラー出て短気な俺は居ても立ってもいられない状態・・・

じゃあ自分で立てればいいじゃんみたいな感じになって立てちゃった
ってわけで忘れないうちに備忘録・・・

前提条件
apacheはインストール済み

Ⅰ必要なファイルのダウンロード

freedb.orgよりソフトウェア(cddbd-1.5.2.tar.gz)とデータベースファイルをダウンロードしてくる
データベースファイルは毎月更新されてるのでそいつをここからダウンロードしてくる
今月は「freedb-complete-20120801.tar.bz2」だね
今回は↑ですすめる

Ⅱデータベースファイルを解凍
解凍先は/usr/local/cddbにする(freedbインストール時のデフォ)
ってわけで先にフォルダを作成しておく

mkdir /usr/local/cddb



で、解凍

tar jxvf freedb-complete-20120801.tar.bz2 -C /usr/local/cddb/



解凍に結構時間掛かるん首を長くして待つ


Ⅲfreedbインストール
cddbd-1.5.2へ移動し
config.sh起動、基本的にはすべてデフォルトのままにする
完了後makeしてinstall.sh起動
こっちもデフォルトのまま

Ⅳ取得に行ってみる
取り敢えずEACでデータを取得してみる
が、文字化けしちゃう・・・

Ⅴ文字化け対応
どうもプロトコルレベルが5だと化けるみたいです
ってわけで内部で5で来たものを6に変更してそれで処理
処理したもの(UTF-8)をSJISに変換して流すような者を作る
これでおk

みたいな感じですかね・・・


 

2012/08/25 15:44 | COMMENT(0)TRACKBACK(0)  TOP

dovecot-sieveでメール振り分け

メールの振り分けにdovecot-sieveを利用してみる

Ⅰ インストール
  dovecot-pigeonholeをインストールする

yum install dovecot-pigeonhole



Ⅱ dovecot各種設定(変更箇所のみ記載)
  20-managesieve.conf(/etc/dovecot/conf.d/20-managesieve.conf)

protocols = $protocols sieve



  90-sieve.conf(/etc/dovecot/conf.d/90-sieve.conf)

plugin {
sieve = /var/mail/virtual/%d/%n/.dovecot.sieve
sieve_dir = /var/mail/virtual/%d/%n/sieve
sieve_global_dir =
sieve_global_path = /etc/dovecot/sieve/default.sieve
}


  sieveのディレクトリはdovecot/postfixの設定に合わせて
  その後以下コマンド打ち込み

mkdir /etc/dovecot/sieve
echo "" > /etc/dovecot/sieve/default.sieve
chown -R vmail.vmail /etc/dovecot/sieve


  15-lda.conf(/etc/dovecot/conf.d/15-lda.conf)

protocol lda {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins quota sieve
}


  20-lmtp.conf(/etc/dovecot/conf.d/20-lmtp.conf)

protocol lmtp {
# Space separated list of plugins to load (default is global mail_plugins).
mail_plugins = $mail_plugins quota sieve
}



  auth-userdb(/var/run/dovecot/auth-userdb)のパーミッションを変更

chmod 666 /var/run/dovecot/auth-userdb


  以下エラー対応

Jul 16 18:16:29 ***: lda: Error: userdb lookup: connect(/var/run/dovecot/auth-userdb) failed: Permission denied (euid=10000(vmail) egid=10000(vmail) missing +r perm: /var/run/dovecot/auth-userdb, euid is not dir owner)


  所有者をvmailにするんでもいいかもしれない

  ここまで済んだらdovecotの再起動

service dovecot restart



Ⅲ postfixの設定
  main.cf(/etc/postfix/main.cf)
  ローカル配送をdovecotに変更

mailbox_command = /usr/libexec/dovecot/deliver
dovecot_destination_recipient_limit = 1
local_transport = dovecot
virtual_transport = dovecot



  master.cf(/etc/postfix/master.cf)
  dovecot-sieveを利用するように最終行へ追記

dovecot unix - n n - - pipe
flags=DRhu user=vmail:vmail argv=/usr/libexec/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -m INBOX/${extension}



  で、postfix再起動

service postfix restart



Ⅳ 振り分けてみよう
  こんな感じの振り分けをしてみる
  ・test@example.comからのメールを「test」フォルダへ振り分ける
事前準備として振り分け先のフォルダはMaildir以下に作成しておく

mkdir .INBOX.test
chmod 700 .INBOX.test
chown vmail:vmail .INBOX.test


として、さらにクライアントから見れるようにMaildir/subscriptionsに作成したフォルダを追記しておく

INBOX.test


このファイルに記入するときに頭の.(ドット)を入れるとクライアントからは見れないので注意
  (thunderbirdだけかもしれないけど・・・)

  作成先は各ユーザーのディレクトリへ.dovecot.sieveを作成
  (例)/var/mail/virtual/example.com/test/.dovecot.sieve

require "fileinto";
if address :is "from" "test@example.com" {
fileinto "INBOX.test";
} else {
keep;
}


  こちらも同様、フォルダ名の頭にあるドットは入れない。振り分けされないでエラーログがたんまり溜まるから

  こんなかんじで設定するとメールが来た時に振り分けてくれます。。。

  念のため.dovecot.sieveの所有者をvmailに変更しておく

  因みに件名にtestが含まれる場合は・・・

require "fileinto";
if header :matches "Subject" "test*" {
fileinto "INBOX.test";
} else {
keep;
}



  みたいな感じでやってあげるとOK(最後の*はワイルドカード)

  幾つもの条件を組み合わせるときは
  elseifじゃなくて elsifになります。。。
  振り分けのルールは日本語もおk

2012/07/16 18:03 | COMMENT(0)TRACKBACK(0)  TOP

メール鯖を構築してみる[postfix dovecot]

久しぶりの更新ネタ

今回はさくらのVPSでメールサーバを立ててみたので備忘録がてらに・・・

鯖OSは「CentOS 6.2 x86_64」
デフォルトでpostfixがインストールされているものとして進める
すべてバーチャルメールボックスとする
インストールするdovecotはバージョン2
取り敢えずドメイン名は「example.com」ですすめる


Ⅰ dovecotとcyrus-sasl-md5をインストール
  (SMTP AUTHでCRAM-MD5を利用するため)

yum -y install dovecot cyrus-sasl-md5



Ⅱ バーチャルメールボックス管理用ユーザーを作成
  以下のコマンドをすべて打つ

groupadd -g 10000 vmail
useradd -u 10000 -g 10000 -d /var/mail/virtual -r -s /sbin/nologin vmail
mkdir /var/mail/virtual
chown vmail:vmail /var/mail/virtual
chmod 700 /var/mail/virtual



  ログインする必要は無いので/sbin/nologinとする
  ユーザー名(vmail)、UID/GID(10000/10000)は別になんだっていいけどあとの設定の際各自自分に当てはめる

Ⅲ バーチャルメールボックスようアカウント作成
  パスワードのハッシュ値を利用するので先に生成しておく

doveadm pw



  Enter new password:とRetype new password:で2階パスワードを入力する
  すると

{CRAM-MD5}dd59f669267e9bb13d42a1ba57c972c5b13a4b2ae457c9ada8035dc7d8bae41b


  みたいな文字列が出来上がるので控える

  /etc/dovecot/passwdを作成する
  そこにさっき作ったパスワードとユーザー名を入力

test@example.com:{CRAM-MD5}dd59f669267e9bb13d42a1ba57c972c5b13a4b2ae457c9ada8035dc7d8bae41b



  ↑2行になってしまってるけど実際は1行で
  ユーザー名とハッシュパスの間は:(コロン)で区切る
  testのとこはなんでもOK


  /etc/postfix/vmailboxにメアドと保存ディレクトリの対応を記述する
  メアドとディレクトリの間はタブで空ける

test@example.com     example.com/test/Maildir/



  最後必ず改行する(エラーが出る)
  設定が終わったらpostmapコマンドを打つ

postmap /etc/postfix/vmailbox



  ユーザーの追加/削除したときは必ずコレをして、postfixの再起動をして下さい

  エイリアス設定は転送をしたい時に設定するがここでは省きます
  /etc/postfix/virtualで設定できるので必要なときは各自で

  設定していないけどこちらもpostmapコマンドを打つ(コレをしないとエラー出る)

postmap /etc/postfix/virtual



Ⅳ SSL証明書、鍵の作成

cd /etc/pki/tls/certs
openssl req -new -x509 -nodes -days 365 -out mail.crt -keyout mail.key
~中略~
Country Name (2 letter code) [XX]:
State or Province Name (full name) []:
Locality Name (eg, city) [Default City]:
Organization Name (eg, company) [Default Company Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) []:*.example.com
Email Address []:



  Common NameはMXレコードを登録するドメインでワイルドカードを利用

  セキュリティ証明書(.der)作成

openssl x509 -in mail.crt -outform der -out mail.der



Ⅴ postfixの設定
  まず、main.cf(/etc/postfix/main.cf)から

  変更するとこだけ記載(キリがない)

inet_interfaces = all   ←コメントアウト解除する
#inet_interfaces = $myhostname
#inet_interfaces = $myhostname, localhost
#inet_interfaces = localhost  ←コメントアウトする



#mydestination = $myhostname, localhost.$mydomain, localhost   ←コメントアウト
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain
#mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain,
# mail.$mydomain, www.$mydomain, ftp.$mydomain
mydestination =


mydestinationは空白で設定する。以下エラー対策

warning: do not list domain *** in BOTH mydestination and virtual_mailbox_domains



smtpd_banner = $myhostname ESMTP unknown



  一番下に以下追記

smtpd_client_restrictions =
reject_rbl_client all.rbl.jp,
reject_rbl_client bl.spamcop.net

# SASL
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/dovecot-auth
smtpd_sasl_security_options = noanonymous

# TLS
smtpd_tls_security_level = may
smtpd_tls_key_file = /etc/pki/tls/certs/mail.key
smtpd_tls_cert_file = /etc/pki/tls/certs/mail.crt

# Virtual
virtual_mailbox_domains = example.com
virtual_mailbox_base = /var/mail/virtual
virtual_mailbox_maps = hash:/etc/postfix/vmailbox
virtual_uid_maps = static:10000
virtual_gid_maps = static:10000
virtual_alias_maps = hash:/etc/postfix/virtual



  example.comは各自置き換えで

  迷惑メール受信拒否しない場合は

smtpd_client_restrictions =
reject_rbl_client all.rbl.jp,
reject_rbl_client bl.spamcop.net



  を消すかコメントアウトしておく

  次にmaster.cf(/etc/postfix/master.cf)でサブミッション関係の設定

submission inet n - n - - smtpd
-o smtpd_tls_security_level=encrypt
-o smtpd_sasl_auth_enable=yes
-o smtpd_client_restrictions=permit_sasl_authenticated,reject
-o smtpd_recipient_restrictions=permit_sasl_authenticated,reject_unauth_destination



  上4つはコメントアウト解除して最後の行は追記

ここまで済んだらpostfixを再起動する

service postfix restart



Ⅵ dovecotの設定
  dovecot.conf(/etc/dovecot/dovecot.conf)の最後にSMTP AUTH関係の設定をする

# Postfix SMTP Auth
service auth {
unix_listener /var/spool/postfix/private/dovecot-auth {
group = postfix
mode = 0660
user = postfix
}
}



  10-mail.conf(/etc/dovecot/conf.d/10-mail.conf)でメール保存場所の設定をする


mail_location = maildir:~/Maildir



  10-ssl.conf(/etc/dovecot/conf.d/10-ssl.conf)でSSL証明書、鍵の設定する
  もともと記述されている部分を変更する

ssl_cert = </etc/pki/tls/certs/mail.crt
ssl_key = </etc/pki/tls/certs/mail.key



  10-auth.conf(/etc/dovecot/conf.d/10-auth.conf)
  以下について変更

auth_mechanisms = cram-md5 plain login



  一番下のやつ、コメントアウト解除

!include auth-passwdfile.conf.ext
!include auth-static.conf.ext



auth-passwdfile.conf.ext(/etc/dovecot/conf.d/auth-passwdfile.conf.ext)
  もともとあるものすべてコメントアウトして以下追記

passdb {
driver = passwd-file
args = scheme=CRAM-MD5 username_format=%u /etc/dovecot/passwd
}



  auth-static.conf.ext(/etc/dovecot/conf.d/auth-static.conf.ext)
  以下を追記

userdb {
driver = static
args = uid=vmail gid=vmail home=/var/mail/virtual/%d/%n
}



これで完了、dovecotを起動

service dovecot start



Ⅶ iptables設定
  メール送受信に必要なポートを開けてあげる

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 143 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 587 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 993 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 995 -j ACCEPT



  iptables再起動

service iptables restart



Ⅷ DNSの設定
DNSは利用するドメインのAレコードとMXレコードを適切に設定する

こんな感じで出来ればOK

2012/07/16 13:02 | COMMENT(0)TRACKBACK(0)  TOP

 | BLOG TOP |  NEXT»»