読者です 読者をやめる 読者になる 読者になる

Carpe Diem

備忘録。https://github.com/jun06t

FTPサーバ構築(アクティブFTP)

正直自分の用途ではあまり使用する必要のないものですが勉強のため。 今回は特にWebページに限定せず、ローカルユーザにアクセスする方法を書きます。また今回はアクティブFTP、パッシブFTPとある中でアクティブFTPを想定しています。詳細は次回解説します。 ◆サーバ側の設定 まずはインストールします。 $ sudo aptitude install vsftpd インストールが完了したら設定ファイルを編集します。大抵コメントアウトされているだけなので、それを解除していくことになります。 $ sudo emacs -nw /etc/vsftpd.conf 以下コメントアウトを解除する部分 anonymous_enable=NO ← anonymousユーザ(匿名ユーザ)のログイン禁止 local_enable=YES ← ローカルユーザへのアクセスを許可 write_enable=YES ← 書き込み許可 use_localtime=YES ← ローカルタイム(日本時間)を使用 xferlog_enable=YES ← /var/log/vsftpd.logに接続・転送を記録(1/3) xferlog_file=/var/log/vsftpd.log ← /var/log/vsftpd.logに接続・転送を記録(2/3) xferlog_std_format=NO ← /var/log/vsftpd.logに接続・転送を記録(3/3) ascii_upload_enable=YES ← アスキーモードでのアップロードを許可 ascii_download_enable=YES ← アスキーモードでのダウンロードを許可 ftpd_banner=Welcome to blah FTP service. ← FTPログイン時にソフト名とバージョンが表示されないようにする chroot_local_user=YES ← chrootを有効。要するにログインしたフォルダより上位フォルダへはアクセス不可 chroot_list_enable=YES ← 例外リストの有効。 chroot_list_file=/etc/vsftpd.chroot_list ← 例外リスト。あとで作成します。 ls_recurse_enable=YES ← ディレクトリごと削除できるようにする 以下追記。 local_root=public_html ← ログインした後に移動するディレクトリを指定。このオプションが設定されていなければ、ホームディレクトリに移動。chrootが有効ならここから上位へは行けない。 編集したら保存し、次にchrootリストを作成します。 $ sudo emacs -nw /etc/vsftpd.chroot_list # 上の階層へ移動を許可するユーザーを行毎に列挙 foo bar 設定が完了したら再起動 $ sudo service vsftpd restart こんなところでしょうか。細かい設定に関してはソースを参考にしてください。 使用するポートは20,21ですのでルータのポートを開放しておいてください。 ◆クライアントの設定 FTPクライアントソフトをインストールします。今回はFileZillaというソフトを使用します。 $ sudo aptitude install filezilla インストールが完了したらアクティブFTPとして使用するので 編集→設定→FTP→アクティブ を選択して「了解」ボタンを押します。 では接続。 ホスト:ホスト名 ユーザ名:ローカルユーザのユーザ名 パスワード:上のユーザのパス を入力して接続ボタンを押します。 これで接続できると思います。 ソース: FTPサーバー構築 - Vsftpd FTPサーバー構築(vsftpd) vsftpdの設定(vsftpd.conf)