2006/06/22(木)Fedora × FFFTP (3)
今回はxinetd経由でProFTPDをデーモンとして起動させる事を目的としています。
xinetd設定メモ
まず、xinetdが入っていないとお話になりませんのでxinetdが入っていなければインストールします。#xinetdのインストール yum -y install xinetd #xinetdデーモンの自動起動 (レベル3のみ起動させる) #インストールされると自動でレベル2~5で起動するようになっていますので必要のないレベルはオフにします chkconfig --level 2 xinetd off chkconfig --level 4 xinetd off chkconfig --level 5 xinetd off #xinetdデーモンの起動 service xinetd start
ProFTPDをxinetdで起動させるスクリプト
# vim /etc/xinetd.d/ftpservice ftp { disable = no socket_type = stream protocol = tcp wait = no user = root server = /usr/sbin/proftpd }
ProFTPDをスーパーデーモンとして登録/起動確認
chkconfig --add ftp service xinetd restart$ftp localhost
でProFTPDが起動しているか確認します
後は
iptablesの設定を見直してFTPで接続できるか確認します。次回はセキュアなproftpd.confの設定についての予定です。
参考にしたとこ
2006/06/18(日)Fedora × FFFTP (2)
今回は設定ファイル(proftpd.conf)の作成と、動作確認まで行います。
前回の設定でインストールした場合、ProFTPD本体は/usr/sbin/proftpd,
設定ファイルは/etc/proftpd.confとなります。
設定メモ(proftpd.conf)
とりあえずデフォルトで用意されている項目を編集します。よりセキュアな設定は次回に後回し。
#まず、送信する文字コードの指定を追加します。 #これはデフォルトのproftpd.confにはないので新たに追記する必要があります。 CharsetLocal UTF-8 #サーバ内部の文字コード CharsetRemote SJIS #クライアントに送信する文字コード ServerName "Kaede Server" #サーバ名。お好きにどうぞ ServerType initd #ProFTPDをデーモンとして起動する場合 DefaultServer on #unknownな行き先の接続を受け取る場合 Port 21 #ProFTPDの待ち受けポート Umask 022 #デフォルトのUmaskを022とし、新規作成されたファイルやディレクトリの安定性を高める MaxInstance 30 #standaloneモードでの子プロセスの数の最大数を設定。 #initdモードの場合は影響しない。 User proftpd Group proftpd #ProFTPDプロセスを走らせるユーザ名/グループを設定。 #Apacheがapache:apacheで走っているのでそれに倣ってproftpd:proftpdとする。 DefaultRoot ~ #ユーザが利用可能な領域を設定。"~"とした場合、 ユーザのホームディレクトリ以下のみアクセス可能。(chroot) AllowOverwrite on #すでに存在するファイルの上書きを許可。 <Limit SITE_CHMOD> Deny All </Limit> #chmodを制限する設定。この場合全て拒否。 <Anonymous ~ftp> #anonymous接続に関する設定。 User ftp Group ftp UserAlias anonymous ftp MaxClients 10 DisplayLogin welcome.msg DisplayFirstChdir .message <Limit WRITE> DenyAll </Limit> </Anonymous>
ProFTPDを動作させるユーザの追加
#adduser -d /usr/sbin/proftpd -s /sbin/nologin動作確認
#/usr/sbin/proftpdで、FFFTPで接続してみましょう。
問題なくログインできたら、日本語ファイルを適当にアップロードしてみます。
私は「てすと.txt」を作りアップロードしてみました。
[album:server:proftpd.jpg:large]
このように、問題なくアップロードできています。
今回は必要最低限の設定だけ行いました。
次回はよりセキュアな設定、デーモンとして起動させる方法なんかを
だらだらと書いていこうと思います。
参考にしたもの
2006/06/15(木)Fedora × FFFTP (1)
が、Fedora Core@UTF-8環境で使用している場合、FFFTPがUTF-8に対応していないため文字化けを起こしてしまいます。
解決策
- Fedora CoreサーバのロケールをEUCに変更する
- FTPクライアントをUTF-8対応のものに変更する
- UTF-8対応のFTPサーバプログラムを導入する
次に、FTPクライアントをUTF-8対応のものを使用することはある意味正攻法といえます。が、多くの場合このようなFTPクライアントはシェアウェアです。
また、W-ZERO3などのCEデバイスにはそもそもUTF-8に対応したFTPクライアントソフトが無いため、これも選択したくない項目です。
と、いうことで残された最後の選択肢である「UTF-8対応のFTPサーバプログラムを導入」することにします。
必要なもの
- ProFTPDのソース
- ProFTPD NLSTパッチ*1
- ProFTPD iconv()パッチ
インストールメモ
ここを参考にProFTPD1.3.0でやってみました# cd /usr/local/src # wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.0.tar.gz # wget http://www.hakusan.tsg.ne.jp/tjkawa /software/misc/proftpd-iconv/pack/proftpd-1.3.0-iconv.patch.gz # wget http://www.hayasoft.com/haya/linux /proftpd-nlst-patch/proftpd-1.3.0-nlst-ffftp.patch # tar -zxvf proftpd-1.3.0.tar.gz # gzip -d proftpd-1.3.0-iconv.patch.gz # patch -p0 < proftpd-1.3.0-iconv.patch # patch -p0 < proftpd-1.3.0-nlst-ffftp.patch # cd proftpd-1.3.0 # ./configure --prefix=/usr --sysconfdir=/etc --with-modules=mod_codeconv --with-modules=mod_codeconv:mod_df # make # make install (#で始まる行は改行されていても1つのコマンドです)次回に続きます
2006/06/10(土)DHCPサーバ構築
再起動すると設定したIPなどが飛んでしまうため、
DHCPサーバを構築することで回避することにしました。
DHCPサーバ設定メモ
インストール
[root@kaede]$ yum -y install dhcp
DHCP設定 (dhcp.conf)
ddns-update-style none*1; subnet 192.168.0.0 netmask 255.255.255.0*2 { option*3 routers*4 192.168.0.1; option subnet-mask 255.255.255.0; option domain-name "kaede.homedns.org"; option domain-name-service*5 192.168.0.254; range dynamic-bootp*6 192.168.0.200 192.168.0.253; default-lease-time 21600; max-lease-time 43200; } host client*7{ hardware ethernet*8 01:23:45:67:89:AB; fixed-address*9 192.168.0.200; }
参考にしたもの
- Fedora Core 4 ビギナーズバイブル
- はじめての自宅サーバー構築 - Fedora/CentOS http://kajuhome.com/
問題点
W-ZERO3からファイルサーバにアクセスすると毎回「ネットワークへのログオン」が表示され、「パスワードの保存」がされていない。*10
これはW-ZERO3側の問題なのでこの件について調べる必要がある。
今後の予定
- BINDとの連携
2006/06/09(金)WinMeのUserAgent
Firefoxの場合
HTTP_USER_AGENT=Mozilla/5.0 (Windows; U; Win 9x 4.90; ja; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
Sleipnirの場合
HTTP_USER_AGENT=Mozilla/4.0 (compatible; MSIE 6.0; Windows 98; Win 9x 4.90; .NET CLR 1.1.4322)
ここからわかることは、どちらもWin9x 4.90が入っていること。
ところで、かえでのアルバムに許可されていないドメインから画像のアップロードなどをしようとすると、
403 Forbiddenが返されるわけだが、User Agentに"Win9x 4.90"が含まれていたら
403 Forbidden リクエストは拒否されましたが、Meたんのせいではありませんの様に返すようにしようとか企んでいます。