dnsmasq DNSキャッシュ設定のメモ

ローカル内のサーバーにドメイン名でアクセスできなくなり不便になった。
原因はルータの故障。
COREGA CG-BARPROG-Xで今まで使用できていたNatループバック(ヘアピンNat)機能を使用できる適当なルータが入手できなかったからなのだが非常に不便。

アクセスポイントとして使用していたBuffaloの無線ルータを急遽ルータとして代用したのだがNatループバックは機能せず。
家庭内のローカルネットワーク内ではメールチェックもできないし、このままではWebサーバーのブログも更新できない。
hostsファイルで対応するのもiPhoneでは無理。そのためだけにBINSやDNSサーバーを稼動させるのも面倒。
COREGA CG-BARGX、I/O DATA ETG2-Rを購入するもNatループバックも動作せず。

誰がつけた名前かNatループバック(ヘアピンNat)機能が、ルータのパッケージに書いてないのはどういうことなのか?
家庭で使用する程度のルータであればこそつけておいてほしい機能です。

で、いろいろ調べているうちにdnsmasqというパッケージを見つけた。
DNS forwarder and DHCP serverのようです。DHCPはルータ機能で十分なので使用しません。

■ dnsmasqのインストール
aptitude install dnsmasq
でインストール
/etc/hosts ファイルを編集して [jve555.jpを192.168.xxx.xxxで参照する]
 192.168.xxx.xxx jive555.jp
と使用するFQDNを記述しておく。(名前ベースのバーチャルドメインもすべて記述しておく)
ドメインを追加していく場合はhostsファイルに記述していく

/etc/resolv.conf ファイルはルータのアドレス
nameserver 192.168.xxx.xxx

dnsmasqのリスタート
# /etc/init.d/dnsmasq restart

■ ルータの設定
dnsサーバーの設定をdnamasqを稼動させたサーバーのアドレスに設定する
プライマリDNS(優先DNS) 192.168.xxx.xxx

■ メモ
OS:Debian6 [Squeeze]

以上で設定は終わり。

ルータにDNS設定がない機種もあるようで、その場合は上記対応ではできない実現できないと思います・・・
とりあえず、iPhoneからもメールチェックできてよかったけど、無駄に購入したルータが2台も。
結局1万円くらい投資してしまった。家族のメールサーバーも動いていないと困ってしまうし仕方ないか。

最近の機種でNatループバック(ヘアピンNat)機能付きのルータがほしい!!誰か教えて。

★追記
起動       # /etc/init.d/dnsmasq start
停止       # /etc/init.d/dnsmasq stop
自動起動     # update-rc.d dnsmasq defaults
自動起動停止   # update-rc.d dnsmasq remove

fml8 インストールメモ

■メーリングリストプログラム fml8をインストール

http://www.fml.org/software/fml8/  www.fml.orgを参照する
fml8 チュートリアル (バージョン 7.98.16-20111225)
fml8はrootでインストールする
(Debianのパッケージにはないようなので手動でインストールする)

■インストール条件
OS:Debian6 [Squeeze]
MTA:Postfix 2-7-1 です。既に設定され正常動作しているものとします。
FML:fml-7.98.15-20100306 [fml8]をインストールします。
default domainはhogehoge.jpとします。
hostnameはbluesとします。
ML menberはhoge@hogehoge.jpとします。

■fmlのグループ/ユーザを事前に作成

user@blues:/$ su
password:xxxxxxxx
root@blues:/# addgroup --system fml
root@blues:/# adduser fml

■ダウンロードしたファイルは /usr/local/src において解凍

root@blues:/# cd /usr/local/src
root@blues:/usr/local/src# cd ./usr/local/src/
root@blues:/usr/local/src# tar zxvf fml-7.98.15-20100306.tar.gz

■Configureの実行
引数をつけて実行
–with-fmlconfdir=/etc/fml 基本設定ファイルを置く場所・・・main.cfは/etc/fml を使う [デフォルトは/usr/local/etc/fml]
–with-mlspooldir=/home/fmlspool デフォルトドメインのML群のトップディレクトリ [デフォルトは/var/spool/ml]
–with-default-domainn=hogehoge.jp デフォルトドメインの指定

root@blues:/usr/local/src# cd ../fml-7.98.15-20100306
root@blues:/usr/local/src/fml-7.98.15-20100306# ./configure --with-fmlconfdir=/etc/fml --with-default-domainn=hogehoge.jp --with-mlspooldir=/home/fmlspool

 checking for perl... perl
 checking for perl... /usr/local/bin/perl
 "checking whether optional useful commands are available or not"
 checking for cc... /usr/bin/cc
 checking for install... /usr/bin/install
 checking for cksum... /usr/bin/cksum
 checking for sum... /usr/bin/sum
 checking for md5... no
 checking for digest... no
 checking for ls... /bin/ls
 checking for tar... /bin/tar
 checking for gzip... /bin/gzip
 checking for zcat... /bin/zcat
 checking for gzcat... no
 checking for gunzip... /bin/gunzip
 checking for lha... no
 checking for ish... no
 checking for bzip2... /bin/bzip2
 checking for bunzip2... /bin/bunzip2
 checking for uuencode... no
 checking for compress... no
 checking for sendmail... /usr/sbin/sendmail
 checking for makemap... no
 checking for newaliases... /usr/bin/newaliases
 checking for postfix... /usr/sbin/postfix
 checking for postalias... /usr/sbin/postalias
 checking for postconf... /usr/sbin/postconf
 checking for postmap... /usr/sbin/postmap
 checking for nkf... /usr/bin/nkf
 checking for kakasi... no
 checking for namazu... no
 checking for pgp... no
 checking for pgp5... no
 checking for pgpe... no
 checking for pgpk... no
 checking for pgps... no
 checking for pgpv... no
 checking for gpg... /usr/bin/gpg
 checking for gpgv... /usr/bin/gpgv
 checking for gpgsplit... /usr/bin/gpgsplit
 checking for less... /usr/bin/less
 checking for more... /bin/more
 checking for w3m... /usr/bin/w3m
 checking for spamassassin... /usr/bin/spamassassin
 checking for spamd... /usr/sbin/spamd
 checking for spamc... /usr/bin/spamc
 checking for bogofilter... /usr/bin/bogofilter
 checking for clamscan... /usr/bin/clamscan
 checking for vi... /usr/bin/vi
 checking for ng... no
 checking for mule... no
 checking for emacs... no
 checking for xemacs... no
 configure: creating ./config.status
 config.status: creating install.pl
 config.status: creating config.sh
 config.status: creating fml/etc/install.cf
 config.status: creating fml/etc/main.cf
 config.status: creating fml/etc/default_config.cf.ja
 config.status: creating fml/etc/default_config.cf.en
 config.status: creating fml/etc/site_default_config.cf
 config.status: creating fml/libexec/loader
 config.status: creating fml/bin/fmladdr
 config.status: creating fml/bin/fmlalias
 config.status: creating fml/bin/fmlconf
 config.status: creating fml/bin/fmldoc
 config.status: creating fml/bin/fmlhtmlify
 config.status: creating fml/bin/fmlsch
 config.status: creating fml/bin/fmlproj
 config.status: creating fml/bin/fmlpgp
 config.status: creating fml/bin/fmlpgp5
 config.status: creating fml/bin/fmlpgpe
 config.status: creating fml/bin/fmlpgpk
 config.status: creating fml/bin/fmlpgps
 config.status: creating fml/bin/fmlpgpv
 config.status: creating fml/bin/fmlgpg
 config.status: creating fml/bin/fmlgpgv
 config.status: creating fml/bin/fml
 config.status: creating fml/bin/makefml
 enabled: perl -w

 fml has been configured with the following options:

                     prefix: /usr/local
                exec_prefix: ${prefix}
                     bindir: ${exec_prefix}/bin
                    sbindir: ${exec_prefix}/sbin
                    lib_dir: ${exec_prefix}/lib
                libexec_dir: ${exec_prefix}/libexec
                     mandir: ${datarootdir}/man
                datarootdir: ${prefix}/share
                    datadir: ${datarootdir}
    
          fml process owner: fml
          fml process group: fml
                 fmlconfdir: /etc/fml
         ml_home_prefix_map: /etc/fml/ml_home_prefix
                 mlspooldir: /home/fmlspool
             default domain: hogehoge.jp
           default hostname: blues
    
          mime based filter: yes
    
 Now you must run "make install" as user "root".

■make installの実行

root@blues:/usr/local/src/fml-7.98.15-20100306# make install
 ./install.pl fml/etc/install.cf
 creating /etc/fml/main.cf
 creating /etc/fml/site_default_config.cf
 creating /etc/fml/mime_component_filter
 updating //etc/fml/defaults/current-20120115
 updating //usr/local/lib/fml/current-20120115
     copy from fml/lib
     copy from cpan/lib
     copy from img/lib
 updating //usr/local/libexec/fml/current-20120115
 updating //usr/local/share/fml/current-20120115
 creating /usr/local/bin/fml
 creating /usr/local/bin/fmladdr
 creating /usr/local/bin/fmlalias
 creating /usr/local/bin/fmldoc
 creating /usr/local/bin/fmlconf
 creating /usr/local/bin/makefml
 creating /usr/local/bin/fmlsch
 creating /usr/local/bin/fmlproj
 creating /usr/local/bin/fmlhtmlify
 creating /usr/local/bin/fmlpgp
 creating /usr/local/bin/fmlpgp5
 creating /usr/local/bin/fmlpgpe
 creating /usr/local/bin/fmlpgpk
 creating /usr/local/bin/fmlpgps
 creating /usr/local/bin/fmlpgpv
 creating /usr/local/bin/fmlgpg
 creating /usr/local/bin/fmlgpgv
 symlink: loader to fml fmladdr fmlalias fmldoc fmlconf makefml fmlsch fmlproj
                    fmlhtmlify fmlpgp fmlpgp5 fmlpgpe fmlpgpk fmlpgps fmlpgpv
                    fmlgpg fmlgpgv fml.pl msend.pl mead.pl distribute digest
                    command error mead fmlserv faker createonpost fetchfml
                    remind
 creating //home/fmlspool
   chown fml:fml //home/fmlspool

■MLを作成前の設定
newml_command_mta_config_list にインストールされる MTA のリストから
不要の qmail を抜く。以下の行を追加する。=cut行より上に追加する。
[/etc/fml/site_default_config.cf]
newml_command_mta_config_list -= qmail

■MTA Postfixの設定 デフォルトドメインで設定
[/etc/postfix/main.cf]に以下の行を追加・修正する。

# Postfix からプログラムを実行可能にする。
# includeでMLコマンドドライバを使用可能にする。
allow_mail_to_commands = alias,forward,include

# /etc/mail/aliases は OS デフォルトの alias
# /home/fmlspool/etc/mail/aliases の
# デフォルトドメイン用alias (fml 管理)を追加する。
alias_maps=hash:/etc/mail/aliases,hash:/var/spool/ml/etc/mail/aliases

■MLを作成する test@hogehoge.jp ユーザはfmlで実行

root@blues:/# su fml
fml@blues:/$ makefml newml test

 creating /home/fmlspool/etc
 creating /home/fmlspool/etc/mail
 creating /home/fmlspool/etc/postfix
 creating /home/fmlspool/etc/qmail
 creating /home/fmlspool/etc/exim
 creating /home/fmlspool/etc/sendmail
 creating /home/fmlspool/etc/procmail
 creating /home/fmlspool/@db@
 creating /home/fmlspool/@udb@
 creating /home/fmlspool/test/etc
 creating /home/fmlspool/test/tmp
 creating /home/fmlspool/test/spool
 creating /home/fmlspool/test/var
 creating /home/fmlspool/test/var/db
 creating /home/fmlspool/test/var/db/error
 creating /home/fmlspool/test/var/lock
 creating /home/fmlspool/test/config.cf
 creating /home/fmlspool/test/include
 creating /home/fmlspool/test/include-ctl
 creating /home/fmlspool/test/include-error
 creating /home/fmlspool/test/include
 creating /home/fmlspool/test/include-ctl
 creating /home/fmlspool/test/include-error
 updating /home/fmlspool/etc/mail/aliases
 updating /home/fmlspool/etc/mail/aliases database
 skipping alias update for sendmail
 updating /home/fmlspool/etc/procmail/procmailrc

 creating /home/fml/public_html/fml/mlarchive/hogehoge.jp/test
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/admin
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/ml-admin/test
 creating /home/fml/public_html/cgi-bin/anonymous/hogehoge.jp/test
 creating /home/fml/public_html/cgi-bin/fml/.htaccess
          (a dummy to disable cgi by default)
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/admin/menu.cgi
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/admin/config.cgi
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/admin/thread.cgi
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/ml-admin/test/menu.cgi
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/ml-admin/test/config.cgi
 creating /home/fml/public_html/cgi-bin/fml/hogehoge.jp/ml-admin/test/thread.cgi
 creating /home/fml/public_html/cgi-bin/anonymous/hogehoge.jp/test/submit.cgi
 creating /home/fml/public_html/fml/listinfo/hogehoge.jp/test/index.html.ja
 creating /home/fml/public_html/fml/listinfo/hogehoge.jp/test/index.html.en

■メンバーを追加する ユーザはfmlで実行

fml@blues:/$ makefml subscribe test hoge@hogehoge.jp

■Postfixの再起動

fml@blues:/$ exit
root@blues:/# /etc/init.d/postfix restart
Stopping Postfix Mail Transport Agent: postfix.
Starting Postfix Mail Transport Agent: postfix.

■MLにメール投稿してテストしてみる
メールの体裁を整えないとデフォルトではspam扱いされてしまうので
テストでも本文を書きましょう

宿題:
※フィルタリングなどのカスタマイズは別途好みにあわせて実施が必要です。
※メールのHTML化 Webでの公開はApache側で設定が必要です。
※バーチャルドメインでの運用は設定が異なるようなのでこれから試します。