ECSに基づいてFTPサービスを構築する

ECSに基づいてFTPサービスを構築する

1.リソースの作成

  • ここでは、Alibaba Cloudが提供する無料サーバーを直接使用できます。[無料アクティベーション]をクリックします。
     
    在这里插入图片描述

  • ユーザー名、パスワード、IPアドレスが提供されていることがわかります。その後、リモートサーバーにログインするだけで済みます。

2. ECSサーバーにリモートで接続する

  • ここで私はXshellソフトウェアを使用して接続します(Xshellはまだ非常に使いやすく、自分でダウンロードするか、他のソフトウェアを使用して接続できます)
  • ログインに成功したら、次のようにします。
     
    在这里插入图片描述

3. vsftpdをインストールします

vsftpd(非常に安全なFTPデーモン):FTPサーバー

  • 匿名アクセス:すべてのユーザーが構築されたFTPサービスにアクセスできます
  • ローカルユーザーモード:ビルドされたFTPサービスにアクセスするために追加されたローカルユーザーのみをサポートします
  • インストールコマンド yun install -y vsftpd

    -yは、インストールプロセス中に、すべての「はい」を選択するように求められることを示します。

    • 以下が表示されればインストールは成功です
       
      在这里插入图片描述
  • FTPサービスを自動的に開始するように設定する

    • コマンド: systemctl enable vsftpd.service
    • 以下が表示されれば設定は成功です。
      在这里插入图片描述
  • FTPサービスを開始する

    • コマンド: systemctl start vsftpd.service
    • 何も表示されず成功です
      在这里插入图片描述
  • FTPサービスによって監視されているポートを表示する

    • コマンド:netstat -antup | grep ftp
    • ご覧のとおり、FTPサービスが開始され、リスニングポート番号は21です。
      在这里插入图片描述

この時点で、vsftpdはデフォルトで匿名アクセス機能が有効になっています。ユーザー名とパスワードを入力せずにFTPサーバーにログインできますが、ファイルを変更またはアップロードする権限がありません。

4. vsftpdを設定する

  • 上記のvsftpdサービス匿名用户模式本地用户模式2つのアクセス方法について説明したので、これら2つのアプローチの構成を見てみましょう

4.1匿名ユーザーモード

  • 構成ファイルを変更する vsftpd.conf

    • コマンド:vim /etc/vsftpd/vsftpd.conf

      誰もが基本的な操作を学ぶためにインターネットでチュートリアルを見つける方法を知らない学生であるvimに精通している必要があります

    • 最初にanon_upload_enable=YESこの行を見つけ(匿名のアップロード許可)、iとして続行して編集し、コメントをキャンセルしてから、Escキーを押して編集モードを終了し、Enterキーを押し:wqて保存して終了します
       
      在这里插入图片描述

  • / var / ftp / pubディレクトリの権限を変更し、FTPユーザーの書き込み権限を追加します

    • コマンド:chmod o+w /var/ftp/pub/
    • 次のように実行した後
      在这里插入图片描述
  • FTPサービスを再起動します

    • コマンド:systemctl restrat vsftpd.service
      在这里插入图片描述
  • 配置后以后我们通过浏览器访问一下,打开浏览器,输入网址 ftp://<FTP服务器公网IP地址>:FTP端口,例如我访问的地址为 ftp://139.196.209.227:21。可以看到,我们无需输入用户名和密码即可访问,访问结果如下:
     
    在这里插入图片描述

4.2 本地用户模式

4.2.1 用户 & 文件目录创建

  • 为FTP服务创建一个Linux用户

    • 命令:adduser ftptest
      在这里插入图片描述
  • 为刚才创建的用户设置密码

    • 命令:passwd ftptest

    • 在输密码的时候出于安全保护屏幕上是不显示的
      在这里插入图片描述

  • 创建一个供FTP服务使用文件目录

    • 命令:mkdir /var/ftp/test
      在这里插入图片描述
  • 更改 /var/ftp/test 目录的拥有者为 ftptest【刚才创建的用户】

    • 命令:chown -R ftptest:ftptest /var/ftp/test
      在这里插入图片描述

4.2.2 vsftpd.conf 文件配置【主动模式 or 被动模式】

在配置之前先大概了解一下主动模式和被动模式

  • 主动模式:服务器的数据端口20主动连接客户端的数据端口【对FTP服务器端的管理有利,对客户端的管理不利】
  • 被动模式:客户端主动跟服务器的20端口进行连接【对FTP客户端的管理有利,对服务器端的管理不利】
4.2.2.1 主动模式
  • 命令如下,直接复制过去运行就ok了

    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 #设置本地用户登录后所在的目录
    
4.2.2.2 被动模式
  • 命令如下

    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 #设置被动模式下,建立数据传输可使用的端口范围的最大值
    

4.2.3 例外用户名单

  • 在 /etc/vsftpd 目录下创建 chroot_list 文件,在文件中写入例外用户名单
    • 命令:vim /etc/vsftpd/chroot_list
    • 使用vim命令编辑 chroot_list文件,添加例外用户名单。此名单中的用户不会被锁定在主目录,可以访问其他目录。

注意:没有例外用户时,也必须创建chroot_list文件,内容可为空。

  • 最后重启FTP服务即可
    • 命令:systemctl restart vsftpd.service

4.2.4 测试

  • 同样,我们在浏览器输入 ftp://<FTP服务器公网IP地址>:FTP端口 ,我访问的地址为 ftp://139.196.209.227:21。可以看到,在设置为本地用户模式的情况下,我们需要输入用户名和密码登录才可进行访问,我们输入刚才创建的用户 ftptest 和自己设置好的密码进行访问
     
    在这里插入图片描述

  • 登录成功后界面如下,此时我们就可以对FTP文件进行相应权限的操作
     
    在这里插入图片描述

おすすめ

転載: blog.csdn.net/qq_29339467/article/details/108759962