FTP服务

作者: Tess鱼丸 | 来源:发表于2022-11-16 15:59 被阅读0次
    image.png image.png image.png image.png
    [root@localhost ~]# rpm -q vsftpd
    未安装软件包 vsftpd 
    [root@localhost ~]# 
    [root@localhost ~]# dnf clean all
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    12 文件已删除
    [root@localhost ~]# ^C
    [root@localhost ~]# 
    
    [root@localhost ~]# cd /etc/yum.repos.d/
    [root@localhost yum.repos.d]# ls 
    bak  localyum.repo  redhat.repo
    [root@localhost yum.repos.d]# rm -rf redhat.repo 
    
    
    [root@localhost ~]# 
    [root@localhost ~]# mount /dev/sr0  /mnt/cdrom/
    mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.
    [root@localhost ~]# 
    [root@localhost ~]# ls -al /mnt/cdrom/
    总用量 53
    dr-xr-xr-x. 7 root root  2048 4月   4 2020 .
    drwxr-xr-x. 4 root root    31 10月 31 14:54 ..
    dr-xr-xr-x. 4 root root  2048 4月   4 2020 AppStream
    dr-xr-xr-x. 4 root root  2048 4月   4 2020 BaseOS
    -r--r--r--. 1 root root    60 4月   4 2020 .discinfo
    dr-xr-xr-x. 3 root root  2048 4月   4 2020 EFI
    -r--r--r--. 1 root root  8266 4月   4 2020 EULA
    -r--r--r--. 1 root root  1455 4月   4 2020 extra_files.json
    -r--r--r--. 1 root root 18092 4月   4 2020 GPL
    dr-xr-xr-x. 3 root root  2048 4月   4 2020 images
    dr-xr-xr-x. 2 root root  2048 4月   4 2020 isolinux
    -r--r--r--. 1 root root   103 4月   4 2020 media.repo
    -r--r--r--. 1 root root  1669 4月   4 2020 RPM-GPG-KEY-redhat-beta
    -r--r--r--. 1 root root  5134 4月   4 2020 RPM-GPG-KEY-redhat-release
    -r--r--r--. 1 root root  1796 4月   4 2020 TRANS.TBL
    -r--r--r--. 1 root root  1560 4月   4 2020 .treeinfo
    [root@localhost ~]# 
    [root@localhost ~]# rpm -q vsftpd
    未安装软件包 vsftpd 
    [root@localhost ~]#  
    [root@localhost ~]# dnf clean all
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    0 文件已删除
    [root@localhost ~]#  
    [root@localhost ~]# dnf install vsftpd -y
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    BaseOS                                          405 MB/s | 2.3 MB     00:00    
    AppStream                                       542 MB/s | 5.8 MB     00:00    
    依赖关系解决。
    ================================================================================
     软件包          架构            版本                  仓库                大小
    ================================================================================
    安装:
     vsftpd          x86_64          3.0.3-31.el8          AppStream          180 k
    
    事务概要
    ================================================================================
    安装  1 软件包
    
    总计:180 k
    安装大小:343 k
    下载软件包:
    运行事务检查
    事务检查成功。
    运行事务测试
    事务测试成功。
    运行事务
      准备中  :                                                                 1/1 
      安装    : vsftpd-3.0.3-31.el8.x86_64                                      1/1 
      运行脚本: vsftpd-3.0.3-31.el8.x86_64                                      1/1 
      验证    : vsftpd-3.0.3-31.el8.x86_64                                      1/1 
    Installed products updated.
    
    已安装:
      vsftpd-3.0.3-31.el8.x86_64                                                    
    
    完毕!
    [root@localhost ~]# 
    
    [root@localhost ~]# dnf install ftp -y
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    上次元数据过期检查:0:02:56 前,执行于 2022年11月17日 星期四 08时41分23秒。
    依赖关系解决。
    ================================================================================
     软件包        架构             版本                  仓库                 大小
    ================================================================================
    安装:
     ftp           x86_64           0.17-78.el8           AppStream            70 k
    
    事务概要
    ================================================================================
    安装  1 软件包
    
    总计:70 k
    安装大小:112 k
    下载软件包:
    运行事务检查
    事务检查成功。
    运行事务测试
    事务测试成功。
    运行事务
      准备中  :                                                                 1/1 
      安装    : ftp-0.17-78.el8.x86_64                                          1/1 
      运行脚本: ftp-0.17-78.el8.x86_64                                          1/1 
      验证    : ftp-0.17-78.el8.x86_64                                          1/1 
    Installed products updated.
    
    已安装:
      ftp-0.17-78.el8.x86_64                                                        
    
    完毕!
    [root@localhost ~]# 
    
    [root@localhost ~]# rpm -qa |grep vsftpd
    vsftpd-3.0.3-31.el8.x86_64
    [root@localhost ~]# systemctl status vsftpd
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
       Active: inactive (dead)
    [root@localhost ~]# 
    [root@localhost ~]# systemctl start vsftpd
    [root@localhost ~]# systemctl status vsftpd
    ● vsftpd.service - Vsftpd ftp daemon
       Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)
       Active: active (running) since Thu 2022-11-17 08:45:48 EST; 8s ago
      Process: 4100 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCC>
     Main PID: 4101 (vsftpd)
        Tasks: 1 (limit: 11160)
       Memory: 968.0K
       CGroup: /system.slice/vsftpd.service
               └─4101 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf
    
    11月 17 08:45:48 dns.long90.cn.10.168.192.in-addr.arpa systemd[1]: Starting Vsftpd ftp daemon.>
    11月 17 08:45:48 dns.long90.cn.10.168.192.in-addr.arpa systemd[1]: Started Vsftpd ftp daemon.
    [root@localhost ~]# systemctl enable vsftpd
    Created symlink /etc/systemd/system/multi-user.target.wants/vsftpd.service → /usr/lib/systemd/system/vsftpd.service.
    [root@localhost ~]# 
    
    [root@localhost ~]# firewall-cmd --permanent --add-service=ftp
    success
    [root@localhost ~]# firewall-cmd --reload 
    success
    [root@localhost ~]# 
    [root@localhost ~]# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens160
      sources: 
      services: cockpit dhcpv6-client dns ftp http ssh
      ports: 
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
        
    [root@localhost ~]# 
    [root@localhost ~]# setsebool -P ftpd_full_access=on
    [root@localhost ~]# 
    

    先备份后再配置主目录

    [root@localhost ~]# mv /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
    [root@localhost ~]# 
    [root@localhost ~]# grep -v "#" /etc/vsftpd/vsftpd.conf.bak >/etc/vsftpd/vsftpd.conf
    [root@localhost ~]# 
    [root@localhost ~]# cd /etc/vsftpd/
    [root@localhost vsftpd]# ls
    ftpusers  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# ls -al
    总用量 36
    drwxr-xr-x.   2 root root  111 11月 17 08:51 .
    drwxr-xr-x. 141 root root 8192 11月 17 08:44 ..
    -rw-------.   1 root root  125 2月  17 2020 ftpusers
    -rw-------.   1 root root  361 2月  17 2020 user_list
    -rw-r--r--.   1 root root  230 11月 17 08:51 vsftpd.conf
    -rw-------.   1 root root 5098 2月  17 2020 vsftpd.conf.bak
    -rwxr--r--.   1 root root  348 2月  17 2020 vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# 
    
    [root@localhost vsftpd]# touch sample.tar
    [root@localhost vsftpd]# ls
    ftpusers  sample.tar  user_list  vsftpd.conf  vsftpd.conf.bak  vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# ls -al
    总用量 36
    drwxr-xr-x.   2 root root  129 11月 17 08:54 .
    drwxr-xr-x. 141 root root 8192 11月 17 08:44 ..
    -rw-------.   1 root root  125 2月  17 2020 ftpusers
    -rw-r--r--.   1 root root    0 11月 17 08:54 sample.tar
    -rw-------.   1 root root  361 2月  17 2020 user_list
    -rw-r--r--.   1 root root  230 11月 17 08:51 vsftpd.conf
    -rw-------.   1 root root 5098 2月  17 2020 vsftpd.conf.bak
    -rwxr--r--.   1 root root  348 2月  17 2020 vsftpd_conf_migrate.sh
    [root@localhost vsftpd]# 
    
    
    [root@localhost vsftpd]# 
    [root@localhost vsftpd]# vim /etc/vsftpd/vsftpd.conf
    
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
    
    anon_root=/var/ftp
    anon_upload_enable=YES
    anon_mkdir_write_enable=YES
    ~           
    
    

    放行

    [root@localhost vsftpd]# setenforce 0
    
    [root@localhost vsftpd]# firewall-cmd --permanent --add-service=ftp
    Warning: ALREADY_ENABLED: ftp
    success
    [root@localhost vsftpd]# firewall-cmd --reload 
    success
    [root@localhost vsftpd]# firewall-cmd --list-all
    public (active)
      target: default
      icmp-block-inversion: no
      interfaces: ens160
      sources: 
      services: cockpit dhcpv6-client dns ftp http ssh
      ports: 
      protocols: 
      masquerade: no
      forward-ports: 
      source-ports: 
      icmp-blocks: 
      rich rules: 
        
    [root@localhost vsftpd]# 
    

    重启vsftpd服务

    [root@localhost vsftpd]# systemctl restart vsftpd
    [root@localhost vsftpd]# 
    
    windows本地已经可以访问了 但是无权限添加文件

    但是此时只能访问,还无权限添加文件或者创建文件夹

    [root@localhost ftp]# ls -al
    总用量 4
    drwxr-xr-x.  3 root root   17 11月 17 08:41 .
    drwxr-xr-x. 23 root root 4096 11月 10 09:03 ..
    drwxr-xr-x.  2 root root   24 11月 17 09:07 pub
    [root@localhost ftp]# 
    ####给ftp添加权限
    [root@localhost ftp]# chown ftp /var/ftp/pub/
    ####给ftp添加权限
    [root@localhost ftp]# ls -al
    总用量 4
    drwxr-xr-x.  3 root root   17 11月 17 08:41 .
    drwxr-xr-x. 23 root root 4096 11月 10 09:03 ..
    drwxr-xr-x.  2 ftp  root   39 11月 17 09:12 pub
    [root@localhost ftp]# 、
    
    已经可以创建文件了

    建立维护网站内容的FTP账号team1、team2,并为其设置密码。

    再建一个普通用户user1,用于做对比

    [root@localhost ftp]# useradd team1;useradd team2;useradd user1
    [root@localhost ftp]# passwd team1
    更改用户 team1 的密码 。
    新的 密码:
    无效的密码: 密码少于 8 个字符
    重新输入新的 密码:
    passwd:所有的身份验证令牌已经成功更新。
    [root@localhost ftp]# 
    

    再去配置vsftpd.conf主配置文件

    [root@localhost ftp]# cat /etc/vsftpd/vsftpd.conf
    anonymous_enable=NO
    local_enable=YES
    write_enable=YES
    local_umask=022
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    listen=NO
    listen_ipv6=YES
    
    pam_service_name=vsftpd
    userlist_enable=YES
    #anon_root=/var/ftp
    #anon_upload_enable=YES
    #anon_mkdir_write_enable=YES
    local_root=/web/www/html
    chroot_local_user=NO
    chroot_list_enable=YES
    chroot_list_file=/etc/vsftpd/chroot_list
    allow_writeable_chroot=YES
    

    建立/etc/vsftpd/chroot_list文件,添加team1和team2账号

    [root@localhost ftp]# cat /etc/vsftpd/chroot_list
    team1
    team2
    [root@localhost ftp]# 
    

    第二部分

    Client客户机验证部分

    查看cd /mnt/目录下有没有cdrom,没有就创建

    ####查看cd /mnt/目录下有没有cdrom,没有就创建
    [root@localhost ~]# 
    [root@localhost ~]# cd /mnt/
    [root@localhost mnt]# ls -al
    总用量 0
    drwxr-xr-x.  3 root root  18 10月 31 14:38 .
    dr-xr-xr-x. 17 root root 224 10月 31 14:36 ..
    drwxr-xr-x.  2 root root   6 10月 31 14:38 hgfs
    [root@localhost mnt]# 
    [root@localhost mnt]# mkdir cdrom
    [root@localhost mnt]# ls -al
    总用量 0
    drwxr-xr-x.  4 root root  31 11月 17 10:00 .
    dr-xr-xr-x. 17 root root 224 10月 31 14:36 ..
    drwxr-xr-x.  2 root root   6 11月 17 10:00 cdrom
    drwxr-xr-x.  2 root root   6 10月 31 14:38 hgfs
    [root@localhost mnt]#  
    [root@localhost ~]# mount /dev/sr0 /mnt/cdrom/
    mount: /mnt/cdrom: WARNING: device write-protected, mounted read-only.
    [root@localhost ~]# 
    [root@localhost ~]# ls -al /mnt/cdrom/
    总用量 53
    dr-xr-xr-x. 7 root root  2048 4月   4 2020 .
    drwxr-xr-x. 4 root root    31 11月 17 10:00 ..
    dr-xr-xr-x. 4 root root  2048 4月   4 2020 AppStream
    dr-xr-xr-x. 4 root root  2048 4月   4 2020 BaseOS
    -r--r--r--. 1 root root    60 4月   4 2020 .discinfo
    dr-xr-xr-x. 3 root root  2048 4月   4 2020 EFI
    -r--r--r--. 1 root root  8266 4月   4 2020 EULA
    -r--r--r--. 1 root root  1455 4月   4 2020 extra_files.json
    -r--r--r--. 1 root root 18092 4月   4 2020 GPL
    dr-xr-xr-x. 3 root root  2048 4月   4 2020 images
    dr-xr-xr-x. 2 root root  2048 4月   4 2020 isolinux
    -r--r--r--. 1 root root   103 4月   4 2020 media.repo
    -r--r--r--. 1 root root  1669 4月   4 2020 RPM-GPG-KEY-redhat-beta
    -r--r--r--. 1 root root  5134 4月   4 2020 RPM-GPG-KEY-redhat-release
    -r--r--r--. 1 root root  1796 4月   4 2020 TRANS.TBL
    -r--r--r--. 1 root root  1560 4月   4 2020 .treeinfo
    [root@localhost ~]# 
    [root@localhost ~]# 
    [root@localhost ~]# dnf clean all
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    0 文件已删除
    [root@localhost ~]# 
    [root@localhost ~]# dnf install ftp -y
    Updating Subscription Management repositories.
    Unable to read consumer identity
    This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
    BaseOS                                          551 MB/s | 2.3 MB     00:00    
    AppStream                                       613 MB/s | 5.8 MB     00:00    
    依赖关系解决。
    ================================================================================
     软件包        架构             版本                  仓库                 大小
    ================================================================================
    安装:
     ftp           x86_64           0.17-78.el8           AppStream            70 k
    
    事务概要
    ================================================================================
    安装  1 软件包
    
    总计:70 k
    安装大小:112 k
    下载软件包:
    运行事务检查
    事务检查成功。
    运行事务测试
    事务测试成功。
    运行事务
      准备中  :                                                                 1/1 
      安装    : ftp-0.17-78.el8.x86_64                                          1/1 
      运行脚本: ftp-0.17-78.el8.x86_64                                          1/1 
      验证    : ftp-0.17-78.el8.x86_64                                          1/1 
    Installed products updated.
    
    已安装:
      ftp-0.17-78.el8.x86_64                                                        
    
    完毕!
    [root@localhost ~]# 
    

    安装完ftp服务后就可以登陆了

    账号密码都是在server机创建的

    [root@localhost ~]# 
    [root@localhost ~]# ftp 192.168.10.1
    Connected to 192.168.10.1 (192.168.10.1).
    220 (vsFTPd 3.0.3)
    Name (192.168.10.1:root): team1
    331 Please specify the password.
    Password:
    230 Login successful.
    Remote system type is UNIX.
    Using binary mode to transfer files.
    ftp> 
    ftp> 
    ftp> pwd
    257 "/" is the current directory
    ftp> ls
    227 Entering Passive Mode (192,168,10,1,158,56).
    150 Here comes the directory listing.
    -rw-r--rw-    1 0        0               0 Nov 17 14:46 test.sample
    226 Directory send OK.
    ftp> 
    

    在服务的的目录下创建文件,客户机就可以看到了。

    [root@dns yum.repos.d]# cd /web/www/html/
    [root@dns html]# 
    [root@dns html]# ls -al
    总用量 0
    drwxr-xrwx. 2 root root 25 11月 17 09:46 .
    drwxr-xr-x. 3 root root 18 11月 17 09:46 ..
    -rw-r--rw-. 1 root root  0 11月 17 09:46 test.sample
    [root@dns html]# 
    [root@dns html]# touch testteam1
    [root@dns html]# 
    [root@dns html]# ls -al
    总用量 0
    drwxr-xrwx. 2 root root 42 11月 17 10:05 .
    drwxr-xr-x. 3 root root 18 11月 17 09:46 ..
    -rw-r--rw-. 1 root root  0 11月 17 09:46 test.sample
    -rw-r--r--. 1 root root  0 11月 17 10:05 testteam1
    [root@dns html]# 
    
    
    ####客户机上验证
    
    ftp> ls
    227 Entering Passive Mode (192,168,10,1,145,117).
    150 Here comes the directory listing.
    -rw-r--rw-    1 0        0               0 Nov 17 14:46 test.sample
    -rw-r--r--    1 0        0               0 Nov 17 15:05 testteam1
    226 Directory send OK.
    ftp> 
    

    下载文件,重命名

    ftp> get test.sample test111.sample
    local: test111.sample remote: test.sample
    227 Entering Passive Mode (192,168,10,1,93,117).
    150 Opening BINARY mode data connection for test.sample (0 bytes).
    226 Transfer complete.
    ftp> 
    
    下载文件,重命名

    Client上传文件

    ####Client端
    ftp> put test111.sample  test00.sample
    local: test111.sample remote: test00.sample
    227 Entering Passive Mode (192,168,10,1,248,18).
    150 Ok to send data.
    226 Transfer complete.
    ftp> 
    

    服务端

    [root@dns html]# ls -al
    总用量 0
    drwxr-xrwx. 2 root  root  63 11月 17 10:10 .
    drwxr-xr-x. 3 root  root  18 11月 17 09:46 ..
    -rw-r--r--. 1 team1 team1  0 11月 17 10:10 test00.sample
    -rw-r--rw-. 1 root  root   0 11月 17 09:46 test.sample
    -rw-r--r--. 1 root  root   0 11月 17 10:05 testteam1
    [root@dns html]# 
    

    不允许切换到其他目录,符合需求。

    ftp> cd /home/
    550 Failed to change directory.
    ftp> 
    

    相关文章

      网友评论

          本文标题:FTP服务

          本文链接:https://www.haomeiwen.com/subject/rcmyxdtx.html