Linuxサーバ奮戦記 ---設定編---   (18Jan2008)   >>TOP


ftpサーバの設定 (Fedora core 6) 18Nov2006

Fedora では vsftpd だけがインストールされるようです。
デフォルトでは使えないので設定が必要です。

$su
<パスワードを入力>

#vi /etc/vsftpd/vsftpd.conf

で以下を編集し保存する。(最低限太字の設定でいいかな?)

・・・
anonymous_enable=NO            YES⇒NOに変更
ascii_upload_enable=YES           #を取る
ascii_download_enable=YES         #を取る
chroot_list_enable=YES             #を取る
chroot_list_file=/etc/vsftpd/chroot_list  #を取る
use_localtime=YES                  追加
・・・

次に、特定のユーザがログインできるようにユーザをリストに加え保存する。
(太字のみの設定では restart を除き以下の設定は不要)

# vi /etc/vsftpd/chroot_list

エディタが開くので、入力モードにしてユーザを追加する。通常は /home 以下に作成されるユーザディレクトリを指すようだ。
アクセスされるフォルダの作成は システム設定⇒ユーザーとグループ で 新規ユーザの作成 で設定。

以上の設定が完了したら、vsftpdを再起動する。
コマンドで再起動するには以下のように入力すればOK。


# /etc/rc.d/init.d/vsftpd restart

これで、WindowsクライアントからFTPでログインできアップロード、ダウンロードも可能となる。ただし、この設定ではユーザディレクトリ以下のみアクセスができようにしている。(vsftpd/chroot_list に追加されていないユーザの場合はFTPで入ると自分自身以上の階層が見えてしまうようだ)
これを回避するには以下のように vsftpd.conf を編集(1行を追加)し, /etc/vsftpd/user_list に利用できるユーザのみを追加すれば良いようだ。vsftpdの再起動が必要。

・・・
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO     ←この行を追加
・・・


サーバ起動時に自動的に FTP がスタートするように以下の設定をしておく。
# chkconfig vsftpd on



Apache2サーバの設定
Apache2.2.x からは conf/extra に詳細な設定をするようになっている。
必要に応じて利用する。しかし,デフォルトでは無効になっているので httpd.conf の最後のあたりに幾つか #Include・・・ とあるので,必要な箇所の#を外せば有効になる。

vi /usr/local/apache2/conf/httpd.conf

で以下を編集し保存する。(緑に変更)

User daemon
User nobody  ←以前のバージョンに合わせる(環境による)
Group daemon
Group nobody  ←以前のバージョンに合わせる(環境による)

ServerAdmin you@your.address
ServerAdmin admin@yuyuyu.jp  ←適当に設定

#ServerName new.host.name:80
ServerName yuyuyu.jp:80  ←適当に設定

DocumentRoot "/usr/local/apache2/htdocs"
DocumentRoot "/home/user/htdocs"  (このフォルダー以下にHTMLファイルを置くとする)

<Directory "/usr/local/apache2/htdocs">
<Directory "/home/user/htdocs">

Options Indexes FollowSymLinks
Options Indexes FollowSymLinks ExecCGI MultiViews Includes (CGI/SSIが利用できるようにする)

AllowOverride None
AllowOverride All  (.htaccessで設定をできるようにしておく)

DirectoryIndex index.html index.html.var
DirectoryIndex index.shtml index.html index.htm index.php index.cgi

ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"
#ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
#<Directory "/usr/local/apache2/cgi-bin">
#AllowOverride None
#Options None
#Order allow,deny
#Allow from all
#</Directory>


#AddHandler cgi-script .cgi
AddHandler cgi-script .cgi .pl

#AddType text/html .shtml
#AddOutputFilter INCLUDES .shtml
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml


(PHP5をモジュールでインストールされている場合は以下を追加しておく)
LoadModule php5_module modules/libphp5.so 
AddType application/x-httpd-php .php



変更後、再起動しなおす。
/usr/local/apache2/bin/apachectl restart

/home/user/htdocs に index.html などを FTPでローカルネットワーク上のWindowsマシンからアップロードしてみる。
FTPでのユーザ名はこの場合は user となる。(そのまえにuserとしてユーザを追加しておくことが必要)
FTPやHTTPが繋がらないときはセキュリティレベルの設定でファイアフォールが設定されていてポートが塞がっている可能性があるので確認。