FTPサーバー作成(Linux)
前提:
LHEL 8.4
FTPのライブラリはvsftpdを使用。
作成や更新はRootユーザーでやる(sudo)
vsftpdのインストール
インストールされているか確認する。
$ vsftpd -v
バージョンが出たらインストール済み。
無ければインストールする。
$ sudo yum install -y vsftpd
インストールできたら起動する。
$ sudo systemcrl start vsftpd
自動起動させる場合は、enable設定を行う。
$ sudo systemctl enable vsftpd
確認
$ sudo systemctl is-enabled vsftpd
enabledならOK
FTP用のユーザーを作成する。
操作はLinuxのユーザー作成手順に従う。
ここではユーザー名をftp_userとした。
$ sudo useradd ftp_user
/home/ftp_user が作成されたことを確認。
$ sudo passwd ftp_user
パスワードを2回入力して設定。
vsftpdの初期設定
以下に設定ファイルがあるのでVimで開く
$ sudo vi /etc/vsftpd/vsftpd.conf
以下の主要な設定をする。
anonymous_enable=NO #不特定のユーザーによるログインを拒否する(デフォルトでNOになってた) chroot_local_user=YES #接続先のディレクトリより上位のディレクトリを参照不可にする。 pasv_enable=YES #デフォルトでパッシブモードで接続する。 pasv_min_port=10001 pasv_max_port=10100 #パッシブモードで使用するポート範囲を記述する。 user_config_dir=/etc/vsftpd/ftp #FTP接続先を定義する。
クライアントからの接続
とりあえずサーバー上で試す。
ftpをインストールする。
$ sudo yum install -y ftp
インストールできたら起動
$ ftp
openして、localhostに接続する。
$ ftp ftp> open (to) localhost
ユーザーとパスワードを聞かれる。
さっき設定したftp_userで接続する。
クライアント操作
user ログインする。(ログインに失敗したときにこれでリトライ)
pwd サーバーのディレクトリパスを表示する lcd ローカルのディレクトリパスを表示する。
ls サーバーのファイル一覧を表示する。
cd 移動先 サーバーのディレクトリを移動する。
lcd 移動先 ローカルのディレクトリを移動する。
get ファイル名 サーバーのファイルを取得する。
put ファイル名 ローカルのファイルをアップロードする。