«前の日記(2004-02-19 (木)) 最新 次の日記(2004-02-23 (月))»  

まちゅダイアリー


2004-02-22 (日)

3分FTPクッキング

家族からインターネット経由でちょっと大きめのファイルを送ってもらうことになった。 いつもはファイル転送にSFTPを使っているのだけど、今回は先方のリクエストでFTPを使うことにした。

まずはFTPサーバを選ぶところから。 ProFTPDでもよかったんだけど、今回限りしか使わないということもあり、最近のRedHatでも使われているvsftpdを使うことにした。 vsftpdのvsはVery Secureという意味らしい。 これなら、インターネット経由の接続を一時的に許しても(心理的に)安心かな。

インストールはいつもどおりemergeで一発だった。

$ sudo emerge vsftpd

不特定多数に公開するわけではないので、こんなポリシーで設定する。

  • 匿名アクセスは使わない(インターネット経由なので)
  • ftpユーザのみログイン可能
  • ホームディレクトリ (/home/ftp) より上位のディレクトリにはアクセス不可

設定ファイルは /etc/vsftpd/vsftpd.conf 。 ProFTPDよりシンプルでわかりやすい。

anonymous_enable=NO    # 匿名アクセスを許可しない
local_enable=YES       # ローカルユーザでログイン可能
write_enable=YES       # ログイン後に書き込み可能
local_umask=022        # 書き込むファイルのパーミッションは755
chroot_local_user=YES  # ホームディレクトリより上位は見えない

書き込み先は /home/ftp/pub にした。

# mkdir /home/ftp/pub
# chown ftp:ftp /home/ftp/pub
# ls -al /home/ftp
total 2
drwxr-xr-x    3 root     root           72 Feb 22 01:26 .
drwxr-xr-x    4 root     root          120 Feb 22 00:52 ..
drwxrwxrwx    3 ftp      ftp            72 Feb 22 20:06 pub

/etc/xinetd.d/vsftp の disable を no にして準備完了。

追記

2つほど手順を忘れていたので追記。

  1. ftpユーザのログインシェルを /bin/false から /bin/passwd へと変更する(でないとftpでもログインできない)
  2. local_enable=YES だけでは、ftp以外のユーザでもログインできてしまう。 userlist_enable=YES, userlist_deny=NO として、/etc/vsftpd/user_list に ftp のみを記述すること。
Tags: Gentoo

ダイナミックDNS

FTPサーバの用意はできたので、サーバのアドレスを家族に伝えなければいけない。 接続のたびにIPアドレスは変わるので、これを機にダイナミックDNS (DDNS) に登録することにした。

DDNSのサービスは、以前からアカウントを取得している dyndns を使う。 そして、DDNSへのIPアドレスの登録は、ddclientというソフトで自動化する。 これでIPアドレスが変わっても、DDNSに登録した名前でアクセスできるようになる。

ddclientのインストールも emerge で完了。 ddclientはPerlスクリプトで書かれていて、 /etc/init.d 経由で起動するみたい。 設定ファイルは /etc/ddclient/ddclient.conf 。以下抜粋。

# 300秒毎にIPアドレスの更新チェック
daemon=300
# 登録するとrootにメールする
mail=root
# 自分のグローバルIPアドレスを調べるために、checkip.dyndns.orgを使う
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
login=xxxxxxxx
password=xxxxxxxx
# DDNSの登録名
server=members.dyndns.org,              \
protocol=dyndns2                        \
xxxxxxxx.dyndns.org

サーバの起動時に ddclientを自動起動させる。

# rc-update add ddclient default

これで、DDNS経由で自宅サーバにアクセスできるようになった。

$ resolveip xxxxxxxx.dyndns.org
IP address of machu.homelinux.net is 210.2xx.xx.xx
Tags: Gentoo

RSS配信

まつのさんのTokuLog!にて、エスノメでここにアクセスすると例外が発生したみたとの日記があった。 どうやらいつものエラーがでてしまったみたい。 せっかくアクセスしていただいたのに、申し訳ないなぁ。

そこで、というわけでもないけど、output_rdfプラグインを有効にしてRSSを生成するようにした。 これだと静的なファイルなので、エラーはでないはず。

あ、でも、リンク先まで見にいくのだったら、結局 問題は解決していないような。

Tags: tDiary