vsftpdを設定します!

前回はyumでvsftpdのインストールしました♪
vsftpdの設定したいと思います(>Д<)ゝ”

ftp基礎

ここでちょっとだけftp設定における基礎ちしきを。

■転送モード
ftpのデータ転送モードにはバイナリモードとASCIIモードがあります。
バイナリモードはデータに手を加えずそのまま転送します。
ASCIIモードはOSによって異なる改行コードを自動修正してくれます。

これらの使い分けはズバリ!
テキストエディタで見るデータはASCIIモード。
それ以外は全てバイナリモード。
コレです^^)v

ASCIIモードはデータ転送する際、改行コードを
正しく置換してくれるモードなので改行コードが
関わらないときは使う必要はないのです。
むしろ、それ以外は余計な置換は必要ないので
バイナリモードがいいですね。

■コネクションのタイプ
ftpはデータ送信用のコネクションにTCPポート20番を使い、
コントロール用のTCPポート21番を使ってセッションを張ります。
/etc/servicesとか見てみるとわかりやすいです^^

ftp-data        20/tcp
ftp-data        20/udp
# 21 is registered to ftp, but also used by fsp
ftp             21/tcp
ftp             21/udp          fsp fspd

ftpセッションの順番としては、
まずはコントロール用セッション(TCP/21)が張られ、
続いてデータ用セッション(TCP/20)が張られます。

コントロールセッションが張れない場合は問題外で
ftpサーバには接続できません。これはどうしようもないパターン。
ただ、コントロールセッションが確立後、データセッションが張られる時、
サーバ側からセッション張るか、クライアント側からセッション張るか。
というのを選択することができます。

これらの違いはアクティブftp、パッシブftpという言われ方をします。
あくまでftpサーバを中心に見ての表現なのに注意が必要。
アクティブftpはftpサーバからアクティブにデータセッションを張ります。
逆にパッシブftpの場合はクライアントからftpサーバに対して
データセッションを張ります。
肉食系ftpサーバがアクティブで、草食系ftpサーバがパッシブです(笑

「どっちからでもエエヤンケ!」
と思われることもあるかもです。自分はそう思いました(笑
データ転送という観点から見たらどちらでもいいかもしれません。
この違いはファイヤウォールの制限によるものです。

ftpサーバがいるセグメントにファイヤウォールがあり、
TCP/20番に対してどのような制限があるか?ということです。
ファイヤウォールはTCPのSYNパケットを見張り、
接続できる/できない をコントロールする場合が多いです。
場合によってはftpクライアント側のセグメントの
ファイヤウォール設定による場合もあるかもですね。

アクティブ/パッシブftpの違いを一言で!
「データ転送用セッションをどちら側から張るか?」
ということの違いによるもです。
パッシブとアクティブはftpサーバ中心に見た違いです。

設定のポリシーを決めてみる

前置き長すぎた><

今回はftpでデータ転送する訳ですが、どんなポリシーでデータ転送を
許可(拒否)するかを決めてやると、何を設定するか明確になります。
データはホームページ作成ソフトで作ったページを転送するためです。

なので、web公開されいるディレクトリ以外には
データを置けないように設定します。

■ログインユーザ
→ ローカルユーザのみ(しかも限定)

■データ置き場所
→Apacheの公開ディレクトリ

■権限
→書き込み+削除

■ログ
→ほどほどに出力+ローテーション設定

上記以外の作業は基本的にできないくても大丈夫。
というか、できないように制限をかけるようにします。

ログインしたユーザにより、Apache公開ディレクトリを
ディレクトリトップにさせたい場合にはちょっとややこし。
まずはftp用ユーザを作り、そのホームディレクトリに
公開するページを置き、Apacheディレクトリにそこを指定。

みたいなことをやらないとやりたいことを叶えることができない。
やってやれなくはないが、メンドイ!!(w

ということで用件を修正。
■ログインユーザ
→ローカルユーザ

■データ置き場
→制限なし

こんな感じに変えて設定してみました。
ログインできるのは基本的にローカルユーザのみ。
ftpとかアプリケーション用のアカウントはログインできず、
基本的には人に紐付くユーザのみ。

データを置く場所のパーミッションをちょっと広めに与えて、
そこにデータを転送するようにしました。

ということで結局は以下をNOにしたのみ。。。

anonymous_enable=NO

それだけデフォルトの使い方から外れてないってことすねf^^;
ログローテーションの設定につていも /etc/logrotate.d/vsftpd.log
ここにyumさんがファイルを置いてくれているので
特に設定を追加する必要がないという。。

結局yumすげー! という結果(w
あとはvsftpdを起動してオッケー!

$ sudo service vsftpd start
Starting vsftpd for vsftpd:          [  OK  ]

yumめ。
ことごとく便利なヤツ。

作業まとめ

(1) yumでvsftpdをインストール

$ sudo yum install vsftpd

(2) vsftpd設定ファイルの編集

$ sudo vim /etc/vsftpd/vsftpd.conf
:
# anonymous_enable=YES ←コメントアウト
anonymous_enable=NO ← NOに変更
:

(3) vsftpd起動

$ sudo service vsftpd start

(4) vsftpd起動確認

$ netstat -a | grep ftp
ポートのListenを確認
$ ps ax | grep vsftpd
デーモンが動いているのを確認

コメントを残す

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