[Topに戻る]


URL(Domain)が変更になりなりました!
sawada.dyn.toは廃止になり、bwt.jpになりました。
トップページののURLはhttp://www.bwt.jp/です。
今までのURL「sawada.dyn.to」は7/1に廃止手続きが完了しました。

また、So-netの方のアドレスもU-Page+へのアップグレードに伴い、http://www002.upp.so-net.ne.jp/sawada/へ変更になりました。

ここに掲載したドキュメントは、Slackware3.6(kernel2.0.38)を前提にしています。


●xntpd (時刻同期サーバー)の導入


LinuxのSlackwareではインストール時にxntpdは導入されません。
ここに、ダイヤルアップユーザーの為の導入メモをまとめました。

1.xntpdの入手

timesyncのホームページ(http://www.eecis.udel.edu/~ntp/)よりxntpdをftpする。
ftp://ftp.udel.edu/pub/ntp/ntp3/xntp3-5.93-export.tar.gz


2.アーカイブを展開する

$ tar zxvf xntp3-5.93-export.tar.gz


3.自分の環境に合わせ、コンパイルして、インストールする

$ su
# cd xntp3-5.93-export
# ./configure
# make
# make check
# make install


4.設定ファイルを作る

/etc/ntp.conf
server clock.tl.fukuoka-u.ac.jp
driftfile /etc/ntp.drift
authenticate no


5.デーモン起動ファイルを作る

/etc/rc.d/rc.ntp
# start NTP
echo 'Starting NTP service'
/usr/local/bin/xntpd -p /var/pid/xntpd.pid


6.boot時に自動起動するようにする

/etc/rc.d/rc.local
# start NTP
/etc/rc.d/rc.ntp


7.時刻同期用スクリプトを作る

/usr/local/bin/ntpsync
#!/bin/sh

# kill ntpd process
/bin/kill -9 `cat /var/pid/xntpd.pid`
# ppp connection
/bin ping -c 3 <適当な外部のサーバーアドレス>
# NTP sync
/usr/local/bin/ntpdate clock.tl.fukuoka-u.ac.jp
# write to C-MOS clock
/sbin/clock -w
# start daemon
/usr/local/bin/xntpd -p /var/pid/xntpd.pid


8.cronに/usr/local/bin/ntpsyncを登録する
 



netatalk(AppleTalk)の導入

1.ソースとパッチの入手

2.ソースを展開し、パッチを当てる
# ls
netatalk-1.4b2.tar.gz afpd-macos8.diff afpd-btree.diff
# tar zxvf netatalk-1.4b2.tar.gz
# cd netatalk-1.4b2
# patch -l < ../afpd-macos8.diff
# patch -l < ../afpd-bfree.diff
3.Linux shadow passwdに対応させるため、Makefileを修正する
# cd etc/afpd
# vi Makefile

CFLAGSのエントリに“-DSHADOWPW”を追加する

4.makeする
# cd ../../
# make
# make install
5.各種設定
/etc/servicesに次の内容を追加
rtmp 1/ddp # Routing Table Maintenance Protocol
nbp   2/ddp # Name Binding Protocol
echo 4/ddp # AppleTalk Echo Protocol
zip 6/ddp # Zone Information Protocol
/usr/local/atalk/etc/atalkd.confの編集
# cp netatalk-1.4b2/config/atalkd.conf /usr/local/atalk/etc/atalkd.conf
# cd /usr/local/atalk/etc/
# vi /usr/local/atalk/etc/atalkd.conf

次の1行だけでOK
etho -phase 2

/usr/local/atalk/etc/AppleVolumes.default
/usr/local/atalk/etc/AppleVolumes.system の編集
# cd /usr/local/atalk/etc/
# cp netatalk-1.4b2/config/AppleVolumes.* ./

AppleVolumes.defaultはげストに見せるフォルダの設定。
AppleVolumes.systemの方だけ編集してやればOK。
書式は、

/pub    "Public Folder"
実パス セレクタで見える共有名
/etc/rc.d/rc.atalkの設定


qpopperの導入

1.ソースの入手

 
2.ソースを展開
# tar zxvf qpopper3.0.2.tar.gz
3.make
Linuxのshadow passwordに対応するためにはオプションを付けてconfigします。
# cd ./qpopper3.0.2
# ./configure --enable-specialauth
# make
APOPを使用したい場合は下記のようにオプションを付けてconfigします。
# cd ./qpopper3.0.2
# ./configure --enable-specialauth --with-apop --with-apopuid
# make
4.インストール
標準で入っているpopperをリネームし、新たにmakeしたpopperをコピーします。
# mv /usr/local/lib/popper /usr/local/lib/popper.old
# cp ./popper/popper /usr/local/lib/
5.各種設定
/etc/services に、次の記述があるか確認します。無ければ追加します。
pop3            110/tcp         # POP version 3
pop3            110/udp
/etc/inetd.conf のpop3に関する行を書き換えます。
この時、他のpop3で始まる行はコメントアウトします。
pop3 stream tcp nowait root /usr/local/lib/popper qpopper -s
6.inetdを再起動



sendmailの導入

1.条件

Sendmail 8.9.1+3.1W/8.9.0
host        godzilla
domain    sawada.dyn.to
user@godzilla.sawada.dyn.toだけでなく、user@sawada.dyn.toでもメールをやりとりしたい。
送信はISPのSMTPサーバーに転送させず、MXを使用した配送とする。
2.sendmail.cfの作成
私はm4マクロを使ってsendmail.cfを生成しました。普通はCFを使うそうですが。
# cd /usr/src/sendmail/cf/cf
sendmail.mc を作成します。
include(`../m4/cf.m4')
VERSIONID(`linux for smtp-only setup')dnl
OSTYPE(linux)
FEATURE(nouucp)dnl
FEATURE(always_add_domain)dnl
FEATURE(masquerade_envelope)dnl
FEATURE(genericstable, `hash -o /etc/mail/genericstable')dnl
FEATURE(relay_hosts_only)dnl
GENERICS_DOMAIN_FILE(`/etc/mail/genericsdomain')
define(`ALIAS_FILE',`/etc/mail/aliases')
MAILER(local)dnl
MAILER(smtp)dnl
m4マクロでsendmail.cfを生成します
# m4 sendmail.mc > sendmail.cf
3.各種設定
sendmail関係の設定は/etc/mail に置く事としました。
# cd /etc
# mkdir mail
# mv sendmail.cf sendmail.cf.old
# cp /usr/src/sendmail/cf/cf/sendmail.cf /etc/mail/
# ln -s /etc/mail/sendmail.cf /etc/mail/sendmail.cf
# cd mail
/etc/mail 内に設定ファイルを置きます。
"genericsdomain"の内容
自ホストのFQDN名を書いておきます。通常は以下でOK。
# hostname -f > genericsdomain
"genericstable"の内容
このホストからメール送信した場合のアドレス書き換えリストをならべます。
user@sawada.dyn.toで出したいので、下記のリストを作成しました。
user1    user1@sawada.dyn.to
user2    user2@sawada.dyn.to
user3    user3@sawada.dyn.to
"aliases"の内容
root: user1
news: root
postmaster: root
mail: root
www: root
webmaster: root
nobody: /dev/null
MAILER-DAEMON: nobody
" relay-domains"の内容
これを書かないと、LAN内のクライアントから外にメールを送信できません。
無制限にする方法もあると思うが、今のところ分かりません。
とりあえず、*.jpと*.com宛てに送信できるようにしました。
jp
com
設定ファイルをhashする
# makemap -r hash genericstable.db < genericstable
# newaliases
4.inetdを再起動する
 


●sendmailとqpopperとdracdを使った POP before SMTPの実装

1. BerkeleyDB

1.1 入手

    http://www.sleepycat.com/update/2.7.7/db-2.7.7.tar.gz
    
1.2 展開、コンパイル、インストール

    $ tar xvzf db-2.7.7.tar.gz
    $ cd db-2.7.7
    $ cd build_unix
    $ ../dist/configure
    $ make
    $ make install

2. DRACd

2.1 入手

    ftp://mail.cc.umanitoba.ca/src/drac.tar.Z

2.2 展開

    $ mkdir tmp
    $ cp drac.tar.Z
    $ cd tmp
    $ tar xvzf drac.tar.Z

2.3 Makefileの修正

    INSTALL = install
    DEFS = -DSOCK_RPC -DFCNTL_LOCK -DGETHOST -DDASH_C
    CFLAGS = $(DEFS) -g
    LDLIBS = -ldb
    TSTLIBS = -L. -ldrac
    RPCGENFLAGS = -C
    MANADM = 8

2.4 コンパイル、インストール

    $ make 
    $ make install
    $ make install-man

2.5 dracd.allowの作成

    $ cd /etc/mail
    $ touch dracd.allow

    dracd.allowファイルには、POP3/IMAPサーバが稼動しているマシンのネットマスクと
    IPアドレスを書きこむ。これはDRACD(rpc.dracd)とPOP3/IMAP サーバが通信できるよ
    うにするため。標準では、rpc.dracdは POP3/IMAPサーバから受け取ったIPアドレスを
    30分間保持する。つまり、POP3/IMAPサーバにログインしてから30分以内ならメールを
    送信できる。
    
    $ cat /etc/mail/dracd.allow
    255.255.255.255  172.0.0.1
    255.255.255.255  192.168.1.2


2.6 dracdの起動と確認

    $ /usr/local/sbin/rpc.dracd &
    $ ps -aux | grep rpc.dracd
    root       182  0.0  0.6   892   416  ?  S    03:08   0:00 rpc.dracd
    
    $ pwd
    /usr/src/tmp
    $ ./testing 127.0.0.1 192.168.1.2
    
    $ /usr/local/BerkeleyDB/bin/db_dump -p /etc/mail/dracd.db
    format=print
    type=btree
    bt_minkey=2
    db_pagesize=512
    HEADER=END
    192.168.1.2
    972890074
 
    dracd.dbファイルにIPアドレスが記録される事を確認する。


3. qpopper

3.1 入手

    ftp://RING_SERVER/pub/net/mail/qpopper/qpopper3.1.2.tar.gz
    v3.1以降だとパッチをあてなくてもdracdに対応している。

3.2 展開、コンパイル、インストール(dracd対応、APOP対応)

    $ tar xvzf qpopper3.1.tar.gz
    $ cd qpopper3.1
    $ ./configure --enable-specialauth --with-apop --with-apopui --enable-drac=/dracがあるディレクトリ/
    $ make                                                                                ↑
                                                                                 例)/usr/src/tmp/

    $ cp ./qpopper/popper /usr/sbin

3.3 inetd.confの修正

    $ cd /etc/inetd.conf
    
    pop3の行を下記の通りに書き換える
    pop stream tcp nowait root /usr/sbin/popper qpopper -D 127.0.0.1 -s

3.4 inetdを再起動

    $ ps -aux | grep inetd
    $ kill -HUP 

3.5 動作確認

    $ telnet 127.0.0.1 110

    Trying 127.0.0.1...
    Connected to 127.0.0.1.
    Escape character is '^]'.
    +OK QPOP (version 3.1) at hoge starting.
    user hogehoge      <- 実際のユーザを入力
    +OK Password required for hogehoge.
    pass abcdefg       <- パスワードを入力
    +OK hogehoge has 0 visible messages (0 hidden) in 0 octets.
    quit            <- quitにて終了
    +OK Pop server at hoge signing off.
    Connection closed by foreign host.

   続いて、dracdにIPアドレスが引き継がれているかを確認。

    $ /usr/local/BerkeleyDB/bin/db_dump -p /etc/mail/dracd.db

    format=print
    type=btree
    bt_minkey=2
    db_pagesize=512
    HEADER=END
    127.0.0.1
    972892612

4. sendmail

    ついでなのでsendmailも最新版にアップデートする。

4.1 入手

    ftp://RING_SERVER/pub/net/mail/sendmail/sendmail.8.11.2.tar.gz

4.2 展開、コンパイル、インストール

    $ tar xvzf sendmail.8.11.2.tar.gz
    $ cd sendmail.8.11.2
    $ ./Build clean
    $ ./Build -I/usr/local/BerkeleyDB/include -L/usr/local/BerkeleyDB/lib/
    $ ./Build install

4.3 CF-3.7Wpl12を使ってsendmail.cfを作成

4.3.1 CFにdracd対応パッチをあてる

    パッチを入手して展開
    
    ftp://akagai.kuee.kyoto-u.ac.jp/pub/archives/net/CF-3.7Wpl2-drac.patch.gz
    
    パッチをあてる
    
    $ pwd
    /usr/src
    $tar zxvf CF-3.7Wpl2-drac.patch.gz
    $ cd CF-3.7Wpl12/Master
    $ patch < ../../CF-3.7Wpl2-drac.patch
    
4.3.2 sendmail.defの作成

    $ pwd
    /use/src/CF-3.7Wpl12
    $ cp ./Standards/sendmail-v8.def sendmail.def
    
4.3.3 まず、通常通り設定する。

    [version.v8]の項目の修正(3ケ所)

    → VERSION=3.7Wp12
    → VERSION_SEPARATOR=/
       #LOCAL_VERSION=
       ##LOCAL_VERSION=`date +%D`
    → LOCAL_VERSION=`date +%y%m%d`

    [ostype]の項目の修正(1ケ所)

       # [ostype]
       # OS type (choose a file name in ostype directory)
    → OS_TYPE=linux-slackware

    [general]項目の修正(4ケ所)

       # [general]
       # with sendmail.mx (yes/no)
    → MX_SENDMAIL=yes
       # local domain name (defined automatically) 
    → MY_DOMAIN=ドメイン名
       # local host name (defined automatically) 
       # V1: with domain name; V5: without domain name
    → MY_NAME=ホスト名
       # default my official SMTP hostname 
       #OFFICIAL_NAME='$w' # for V1/NMTC
    → OFFICIAL_NAME='$w.$m' # for V5
       # my internet aliases 
       #MY_ALIAS=
       # define the class "w" with /etc/sendmail.cw (yes/no) 

    [adress]項目の修正(1ケ所)

       # [address]
       # user names which require host.domain
       #LOCAL_ADMIN_USERS='root daemon news usenet postmaster MAILER-DAEMON'
       ##LOCAL_USERS='user1 user2 ...'
       # default from-address (can be $j, $m or another generic address)
       #FROM_ADDRESS='$j'
    → FROM_ADDRESS='$m'
       # apply FROM_ADDRESS for receipients (yes/no)
       #RECIPIENT_GENERIC=no
       # rewrite address which has official name already into generic form
       # (yes/lower/no)

    [canon]項目の修正(1ケ所)

       # [canon]
       # canonicalization with nameserver lookup
       # (all/one/short/unknown/cname/no; or *-append)
    → CANON=one # if MX_SENDMAIL = yes
       #CANON=no # if MX_SENDMAIL = no
       # domains which are already completed
       ##NO_CMPLT_DOMS='/etc/sendmail.topdomains'

    [nosourceroute]の項目(1ケ所)

       # generate rules not to relay source routed mails (yes/no)
    → REJECT_SOURCE_ROUTE_RELAY=yes

    [option.v8]の項目(2ケ所)

       #  (True/False)
       #OLD_STYLE_HEADERS='True'
       # who (if anyone) should get extra copies of error messages
       # 
    → COPY_ERRORS_TO='postmaster'
       # privacy flags 
       # (public/needmailhelo/needexpnhelo/needvrfyhelo/noexpn/
       # novrfy/restrictmailq/restrictqrun/noreceipts/noetrn/noverb/
       # goaway/authwarnings)
    → PRIVACY_FLAGS='goaway,restrictmailq,restrictqrun'

    [smtpcheck]項目の修正(1ケ所)

       # [smtpcheck]
    → MAIL_RELAY_RESTRICTION=no
       #WITH_OLD_CF=no # (just for smtpcheck.def)
       ##CHECK_HOST_ALLOW=/etc/sendmail.allow
       ##CHECK_HOST_DENY=/etc/sendmail.deny
       #CHECK_RELAY_DEFAULT=allow # (allow/deny)
       # LOCAL_HOST_* does not check senders address
       ##LOCAL_HOST_IPADDR=/etc/sendmail.localip
       ##LOCAL_HOST_IPADDR=130.54.0
       ##LOCAL_HOST_DOMAIN=/etc/sendmail.localdomain
       ##LOCAL_HOST_DOMAIN=sub.kyoto-u.ac.jp

4.3.4 dracd関係の設定を変更、追加

    MAIL_RELAY_RESTRICTION=yes
    LOCAL_HOST_IPADDR=/etc/mail/localIP
    LOCAL_HOST_DOMAIN=/etc/mail/localDomain

    一番下に次の3行を追加
    
    USE_DRAC=yes             ← 必修
    USE_MAPS_RBL=yes         ← black list に載ったサイトからのメールをはじく
    USE_SENDER_DNS_CHECK=yes ← 存在しないサイトからのメールをはじく

4.3.5 sendmail.cfの生成とインストール

    $ make sendmake.cf
    $ cp ./sendmail.cf /etc/mail

4.5 sendmailの再起動

5.自動起動するように設定する

    /etc/rc.d/rc.local に次の行を追加する。(認証の有効時間を10分にした例)

    echo 'Starting DRACd daemon...'
    /usr/sbin/rpc.dracd -e 10 &

6. メモ

    /etc/mail/localIP ファイルにIPアドレスを書いておくと、そのIPアドレスを持った
    クライアントからの送信は認証せず許可する。
    ex) 255.255.255.255  192.168.1.2
        255.255.255.255  192.168.1.3

    /etc/mail/localDomain ファイルにドメイン名を書いておくと、そのドメインのクラ
    イアントからの送信は認証せず許可する。

    http://www.nanet.co.jp/rlytest/relaytest.html で中継拒否の確認が出来る。


●無線LANの導入

このページのTOPに戻る

J.Sawada webmaster@bwt.jp