FTPサービスを設定する
vsftpdをインストールします
- 次のコマンドを実行して、vsftpdをインストールします。
yum install -y vsftpd
- 次のコマンドを実行して、FTPサービスが自動的に開始するように設定します。
systemctl enable vsftpd.service - FTPサービスを開始します。
systemctl start vsftpd.service - 次のコマンドを実行して、FTPサービスによって監視されているポートを表示します。
netstat -antup | grep ftp
は、次の図に示すようなインターフェイスを表示し、FTPサービスが開始され、リスニングポート番号が21であることを示します。この時点で、vsftpdはデフォルトで匿名アクセスを有効にしています。ユーザー名とパスワードを入力せずにFTPサーバーにログインできますが、ファイルを変更またはアップロードする権限はありません。
vsftpdを構成する
vsftpd(非常に安全なFTPデーモン)は、Linuxディストリビューションで最も尊敬されているFTPサーバーです。vsftpdは、匿名アクセスとローカルユーザーモードの2つのアクセス方法をサポートしています。匿名アクセスモードすべてのユーザーがビルドされたFTPサービスにアクセスできます。ローカルユーザーモードは、ビルドされたFTPサービスにアクセスするために追加されたローカルユーザーのみをサポートします。
注:同時に構成できるのは、匿名ユーザーモードとローカルユーザーモードのいずれか1つだけです。
- 匿名ユーザーモード
- 構成ファイルvsftpd.confを変更します。
vim /etc/vsftpd/vsftpd.conf
iキーを押して編集モードに入り、匿名アップロード権限のコメントを解除しますanon_upload_enable = YES。
- ESCキーを押して編集モードを終了し、次のように入力します。wqを入力して、vimを保存して終了します。
- / var / ftp / pubディレクトリのアクセス許可を変更し、FTPユーザーの書き込みアクセス許可を追加します。
chmod o + w / var / ftp / pub / - FTPサービスを再起動します。
systemctl restart vsftpd.service
- ローカルユーザーモード
- FTPサービス用のLinuxユーザーを作成します。
adduser ftptest
は、ユーザーのパスワードを設定します。
passwd ftptest - FTPサービス用のファイルディレクトリを作成します。
mkdir / var / ftp / test - / var / ftp / testディレクトリの所有者をftptestに変更します。
chown -R ftptest:ftptest / var / ftp / test - vsftpd.conf構成ファイルを変更します。
FTPをアクティブモードに設定するには、次のコマンドを実行します。
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
FTPをパッシブモードに設定するには、次のコマンドを実行します。
sed -i 's/anonymous_enable=YES/anonymous_enable=NO/' /etc/vsftpd/vsftpd.conf #禁止匿名登录FTP服务器
sed -i 's/listen=NO/listen=YES/' /etc/vsftpd/vsftpd.conf #监听IPv4 sockets
sed -i 's/listen_ipv6=YES/#listen_ipv6=YES/' /etc/vsftpd/vsftpd.conf #关闭监听IPv6 sockets
sed -i 's/#chroot_local_user=YES/chroot_local_user=YES/' /etc/vsftpd/vsftpd.conf #全部用户被限制在主目录
sed -i 's/#chroot_list_enable=YES/chroot_list_enable=YES/' /etc/vsftpd/vsftpd.conf #启用例外用户名单
sed -i 's/#chroot_list_file=/chroot_list_file=/' /etc/vsftpd/vsftpd.conf #指定例外用户列表文件,列表中的用户不被锁定在主目录
echo "allow_writeable_chroot=YES" >> /etc/vsftpd/vsftpd.conf
echo "local_root=/var/ftp/test" >> /etc/vsftpd/vsftpd.conf #设置本地用户登录后所在的目录
echo "pasv_enable=YES" >> /etc/vsftpd/vsftpd.conf #开启被动模式
echo "pasv_address=<FTP服务器公网IP地址>" >> /etc/vsftpd/vsftpd.conf #本教程中为ECS服务器弹性IP
echo "pasv_min_port=20" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最小值
echo "pasv_max_port=21" >> /etc/vsftpd/vsftpd.conf #设置被动模式下,建立数据传输可使用的端口范围的最大值
FTPアクティブおよびパッシブ:
FTPプロトコルは2つのTCP接続を使用します
。1つはFTPクライアントとサーバー間でコマンドを転送するために使用されるコマンド接続であり、もう1つは
データのアップロードまたはダウンロードに使用されるデータ接続です。
アクティブモードまたはパッシブモードに関係なく、ファイル転送のために2つの接続、つまりコマンド接続とデータ接続を順番に確立する必要があります。アクティブモードとパッシブモードの違いは、主にデータリンクチャネルに反映されます。
アクティブモードFTPは、サーバーがクライアントのデータポートに
アクティブに接続することを意味します。アクティブモードでは、FTPクライアントは1024より大きいポートをサーバーのポート21にランダムに開きます。接続を開始してから、監視のためにポートN + 1を開き、サーバーにPORT N +1コマンドを発行します。サーバーはコマンドを受信すると、ローカルFTPデータポート(通常は20)を使用して、クライアントがデータ送信用に指定したポートN +1に接続します。
PASVの動作モードでは、サーバーはクライアント接続要求を受信すると、ポート1024から5000からランダムに1つを自動的に選択して、クライアントとの接続を確立してデータを転送します。パッシブおよび自動接続確立のため、攻撃に対して脆弱であるため、セキュリティが不十分です。
-
/ etc / vsftpdディレクトリにchroot_listファイルを作成し、そのファイルに例外ユーザーのリストを書き込みます。
#vimコマンドを使用してchroot_listファイルを編集し、例外ユーザーのリストを追加します。このリストのユーザーはホームディレクトリにロックされず、他のディレクトリにアクセスできます。
vim / etc / vsftpd / chroot_list
説明:例外ユーザーがいない場合は、chroot_listファイルを作成する必要があり、コンテンツを空にすることができます。 -
FTPサービスを再起動します。
systemctl restart vsftpd.service
クライアントテスト
-
Chromブラウザーを開き、アドレスバーにftp:// <FTPサーバーのパブリックネットワークIPアドレス>:FTPポートを入力します。FTPサーバーのパブリックネットワークIPアドレスは、ECSサーバーのエラスティックIPアドレスです。例:ftp://106.15.8.127:21
。 -
ポップアップダイアログボックスで、ユーザー名とパスワードを入力します。
ftp://106.15.8.127:21
-
ログイン成功インターフェースは以下のとおりですが、現時点では、FTPファイルは対応する権限で操作できます。