FreeBSD5.3設定メモ ftpd

この記事は2005年頃に執筆した文書がもとになっている。

使用した OS は FreeBSD5.3-RELEASE。ftpd のバージョンは 6.00。FreeBSD 標準の ftpd である。

有効化

OS のインストール時に既にインストールされているので、まずは rc.conf で inetd を有効化してやる。

# vi /etc/rc.conf
inetd_enable="YES"
# vi /etc/inetd.conf
ftp    stream    tcp    nowait    root    /usr/libexec/ftpd    ftpd -l -l -S

-l -l のオプションを指定すると諸操作とファイル名を記録出来る。-S オプションは、anonymous 接続のログを記録。
なお、スタンドアロンで起動する場合は、

# /usr/libexec/ftpd -D

設定

ログを採る為の設定。

# vi /etc/syslog.conf
!ftpd
*.*                        /var/log/ftpd_log
# vi /etc/newsyslog.conf
/var/log/ftpd_log                640  10    *    $W0D0 Z
# touch /var/log/ftpd_log

inetd の設定ファイルでローカルネットワーク(例では 192.168.1.0/24)からのアクセスのみ許可。

# vi /etc/hosts.allow
ftpd : 192.168.1.0/255.255.255.0 : allow

デフォルトだとディレクトリを掘られてしまうので、chroot を設定。設定したいユーザとグループを指定してやる。

# vi /etc/ftpchroot
user1
user2
@group1
@grop2

その他、/etc/ftpusers で制限したいユーザを、/etc/ftpwelcome で接続時のメッセージを、/etc/ftpmotd でログイン後のメッセージを設定出来る。

ローカルタイムの定義

chroot を設定すると /etc/localtime を参照出来ないので、ファイル転送した時間がずれてしまう。これを解決するには、ホスト自体の内蔵時計を GMT に合わせたり、ユーザディレクトリに localtime をコピーしてやる方法がある。

# mkdir /home/user/etc
# cp /etc/localtime /home/user/etc/localtime

もしくは、ftpd のソースを書き換えて再コンパイルする(146-155行目)。

# vi /usr/src/libexec/ftpd/popen.c
            optreset = optind = optopt = 1;
            /* Close syslogging to remove pwd.db missing msgs */
            closelog();
            /* Trigger to sense new /etc/localtime after chroot */
                setenv("TZ", "JST-9", 1);  # 追加
            if (getenv("TZ") == NULL) {
                setenv("TZ", "", 0);
                tzset();
                unsetenv("TZ");
                tzset();
            }
# make clean
# make
# make install

Anonymous FTP

vipw/stand/sysinstall の Configure – Netoworking – Anon FTP から Anonymous FTP 用のユーザ ftp を作成する。

# vipw
ftp:*:14:5::0:0:Anonymous FTP Admin:/var/ftp:/nonexistent
# mkdir /var/ftp
# mkdir /var/ftp/bin
# mkdir /var/ftp/etc
# mkdir /var/ftp/pub
# cp /bin/ls /var/ftp/bin

/stand/sysinstall から行った場合、接続時のメッセージも設定出来る。また、各ディレクトリは自動で作成される。ディレクトリ名等は好みで。続けて、chroot も設定。

# vi /etc/ftpchroot
ftp
Pocket

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です