サーバの設定を行う上で、パッケージやコンテンツのアップロードの為、どうしてもFTPは必要になります。
とりあえずセキュリティ高めようと思ったら、SCPやらSFTPと言う手もあるのですが、使っているツールがこれに対応していない事。
こういったプロトコルのソフトは、コンテンツ管理には向いていない事から、リスクを背負いながらも通常のFTPを使う事とします。
そんな中で、まずはインストールパッケージの選定
RedHatLinuxで標準のvsftpdをインストールする事にします。
特に理由は有りませんが、yumでインストールできる事が前提と言う事で。
ま、正直これがベストと言うほど差がない事から、RedHatが対応するといずれ対応するであろうCentOSの特性から、選択したと言うのは確かです。
インストールはいつもの通りyumで。
# yum -y install vsftpd
この状態ですと、rootでのアップロードやAnonymousログインが有効となりますので、これはよろしく無いと言う事で、ユーザログインのみに変更します。
それと、rootユーザのログイン不許可、FTPアクセス時にソフトウェアのパッケージ名やバージョンが表示されるとセキュリティホールを突かれる場合がありますので、設定を変更します。
作業を実施する時にどこのディレクトリで作業するか分からないので、chrootは今回は有効にしておきます。 セキュリティ担保や複数ユーザが利用する場合は無効の方が良いと思います。
更に情報を残す為、syslogへの出力を実施します。
vsftpd.confの修正
anonymous_enable=NO #←anonymouseアカウント停止
xferlog_file=/var/log/xferlog #←転送ログ出力
ascii_upload_enable=YES
ascii_download_enable=YES #←テキストアップロード/ダウンロード有効
ftpd_banner=Welcome to FTP service. #←アクセス時バナー固定
chroot_list_enable=YES #←chroot有効化
chroot_local_user=YES #←ローカルユーザに対してchroot有効化
chroot_list_file=/etc/vsftpd/chroot_list #←不許可のリストを設定(root)
syslog_enable=YES #←syslogに出力
私が構築したFTPサーバは、WEBコンテンツのアップロードとshell、パッケージアップロードが目的なので、セキュリティの向上と共に上記のように設定しました。
管理者として、奥さんもいるので、ユーザフォルダの利用のみにはしていません。
結果として、サーバ上のあちこちにアクセスする必要があるので、chrootを有効としてます。
サービスの自動起動をONにします。
# chkconfig vsftpd on
設定を完了したら、サービスの再起動を行います。
# /etc/init.d/vsftpd start
何か適当なFTPソフトで接続してみます。
何も無ければ、コマンドプロンプトから以下のコマンドで接続確認を実施します。
C:\> ftp ***.***.***.***
***.***.***.*** に接続しました。
220 Welcome to blah FTP service.
ユーザー (***.***.***.***:(none)): [ユーザ名]
331 Please specify the password.
パスワード:
230 Login successful.
ftp>
ftp> quit
221 Goodbye.
FTPクライアントの終了方法はexitではなくquitです。
これでFTPの設定は終了です。
|