ipfw設定

我が家のサーバー、SMTPのPORTを外部に開けているのだが、ずっと不正なアクセスがあり困っていた。
一応、SMTPでリレーは規制かけているのだが、ログに不正アクセスが記録され、気持ちの良いものではない。
ずっと、仕事で疲れていたので、対策をしなければと思いながら手を抜いていた。

で、退職が近づき、時間に余裕が出てきたので、とりあえず、サーバにipfwを機能させることにした。
本来なら、ルータで出来れば良いのだが、安いルータで、その手の機能が充実していないので、サーバー側で行うことに・・・

今回実施したのは、まずはrc.confでipfwを有効に。

firewall_enable="YES"
firewall_type=open
firewall_type="/etc/ipfw.conf"

で、/etc/ipfw.confに以下の記述を

add 200         deny all        from any to 127.0.0.0/8
add 300         deny ip         from 127.0.0.0/8 to any
add 400         deny tcp        from any to any frag

add 500         deny ip         from 59.60.0.0/15 to any
add 500         deny ip         from 114.112.0.0/14 to any
add 500         deny ip         from 173.219.109.0/24 to any
add 500         deny ip         from 195.22.126.0/23 to any

で、以下のコマンドで有効化

# /etc/rc.conf/ipfw start

/var/log/maillogを監視していて、アクセスされていないようで、これでしばらく様子を見、別なIPアドレスからアクセスあれば/etc/ipfw.confに追加して行くことにします。

プロパイダ経由のメール送信

我が家のSMTPはpkgでインストールしたPostfixを使っているが、このままではプロパイダ経由(OP25B)でメールリレーが出来ないようです。
postfixのmain.cfを色々と設定を調整してみたが外に出ていかないようです。
そこで、pkgにあるpostfix-saslに入れ直してみました。
cyrus-saslが依存関係で一緒に入りました。

http://www.postfix-jp.infoを参考に、/usr/local/lib/sasl2/smtpd.confを以下の様に作成。

pwcheck_method: saslauthd
mech_list: plain login

更に/usr/local/etc/postfix/smtpauthを作成。

[mail.so-net.ne.jp]:587 hogehoge@xxx.so-net.ne.jp:password

で、postmap /usr/local/etc/postfix/smtpauth を実行してハッシュ化。
更に/usr/local/etc/postfix/main.cfに以下を追加。

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
relayhost = [mail.so-net.ne.jp]:587
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/usr/local/etc/postfix/smtpauth
smtp_sasl_security_options = noanonymous
smtp_sasl_mechanism_filter = plain, login, cram-md5

postfixを再起動して無事、プロパイダ経由でメールを外部に送信できるようになりました。 🙂

外からwebmail確認で・・・

昨日設定したWebmil(roundcube)、外部から試してみました。

受信メールは正常に確認できました。
で、送信してみると、ローカルへの送信とプロバイダへの送信はOKですが、会社宛へ送信してみるとNGのようです。 (^^;

ネットで調べてみると、我が家のSMTPはPostfixを使っているのですが、「SMTP AUTH」を設定してません。
後、「OP25B」の設定も必要なんですね。

自宅のSMTPはローカル配信でしか使ってなかったので、すっかり忘れてました。

クライアントPCの設定は、受信はローカルのIMAPからで、送信はプロパイダのSMTPにしてたので何も問題なく使えてました。

Webmailで全て可能にするには、Postfixの設定見直しが必要なんですね。 🙂

webmail

我が家のメールサーバ(jailで稼働)にwebmailのroundcubeをpkgから入れてみました。

SMTPはpostfix、MUAにはcourier-imapで、プロパイダはso-netを使っているのですが、so-netからはfetchmailで取り込み、postfixに渡してMaildir方式で配信しています。
クライアントPCからは我が家のメールサーバにアクセスすることで、複数のクライアントからアクセスしても、同じ様にメールを見る事が出来てます。

今回は、外出先からも我が家のメールサーバにアクセスしてメールを見れるようにしたいと思い、webmailを導入しました。
幾つか候補があったのですが、FreeBSDのpkgでお手軽にインストールできることを条件に探し、roundcubeを入れてみました。

pkgからapache+mysql+phpをインストール、apacheとの連携で、mod_phpもインストール。

mysqlで少々つまづいたけれど、どうにか動くようになりました。
外出先からアクセスと言う事で、apacheはsslと組み合わせました。

ルータのポートも解放したので、近々、外からアクセスを試みてみます。

ブラウザでアクセスするとこんなログイン画面です。

メールクライアント画面はこんな感じです。

プロパイダのメールサーバの設定

私が利用しているプロパイダのメールサーバへのアクセス方法が変わる通知が来てました。
今は「APOP」でアクセスしているが、「POPS」でのアクセスに変えて行くとのことです。

私は自宅サーバを立てていて、プロバイダからは「fetchmail」で取得して自前のSMTPへ渡し、クライアントPCからは「IMAP」で見るようにしています。

で、プロパイダへのアクセス方法が変わると、「fetchmail」の設定も変更しなければなりません。
しばらく変更していなかったので、ネットで調べ、ようやく変更できました。

以下の設定でセキュアなPOP通信でアクセスでき、自宅のSMTPサーバ経由でクライアントPCで読み込みできました。とさ・・ 😉

set postmaster hogehoge
set no bouncemail

defaults
protocol pop3
port 995
flush
ssl
no mimedecode
smtphost mynetwork.net

poll pop.so-net.ne.jp
  user hogehoge@xxx.so-net.ne.jp password xxxxxx is hogehoge here