SUSE Linuxを使用して、FTPサービスの提供方法をまとめました。ここで、vsftpdを導入してFTPサービスを提供します。サービスの起動はスタンドアロンではなく、xinetd経由で行うこととします。また、サーバにアカウントを持っているユーザのアクセスのみで、匿名接続(anonymous access)は許可しないように設定します。
インストール
vsftpdはYaSTを使用してインストールすることが出来ます。YaSTを起動したら、「ソフトウェア」カテゴリの「ソフトウェアのインストール・削除」を選択します。
次に、vsftpdを検索して、インストールを実行します。
vsftpdの設定
vsftpdの設定ファイルは、/etc/vsftpd.confです。適当なテキストエディタでこのファイルを開きます。
下記の設定を行います。その他の設定はとりあえず、デフォルト設定とします。
anonymous_enable=NO # 匿名接続(anonymous access)禁止
local_enable=YES # ローカルアカウント有効(サーバ側のアカウント)
listen=NO # スタンドアロン無効
pasv_enable=YES # パッシブ接続有効
write_enable=YES #フォルダ作成やファイル追加などを許可する
local_umask=022 #アップロードされたディレクトリ、ファイルのパーミッション
xinetdの設定
xinetdの設定を変更して、FTPへのアクセスが起きたときに、vsftpdを起動するようにします。xinetdの設定はYaSTで行います。YaSTを起動して、「ネットワークサービス」カテゴリの「ネットワーク・サービス(inetd)」を選択します。
サービス名がftpになっている項目を有効になるように設定します。このときに、その行のサーバが/usr/sbin/vsftpdになっていることを確認します。なっていない場合には、編集を押して、設定を変更します。
ファイアウォールの設定
ファイアウォールの設定を変更します。
YaSTで、「セキュリティとユーザ」->「ファイアウォール」を選択します。ファイアウォールの設定画面が表示されます。
「ファイアウォールの設定:サービス」が表示されるまで「次へ」をクリックします。「ファイアウォールの設定:サービス」がパネルが表示されたら、「エキスパート」をクリックします。「付加サービスの編集」ダイアログが表示されます。
「その他のTCPサービス」に「20 21」を入力します。既に入力されている項目があるときは、後ろに半角スペースを入力してから付け足します。ポート20番と21番が開かれます。FTPはこのポートを使用して接続します。「了解」をクリックしてダイアログを閉じ、残りの項目は特に変更せず「次へ」をクリックしていき設定を終了します。
テスト
FTPクライアントソフトで接続を行います。匿名接続が出来ず、サーバ側のアカウントで接続できれば成功です。