安装ftp

yum -y install vsftpd

    设置开机自启

systemctl enable vsftpd.service

CentOS 7安装FTP

     启动

systemctl start vsftpd.service

  CentOS 7安装FTP 

     ftp相关命令:
         启动:systemctl start vsftpd.service
         重启:systemctl restart vsftpd.service
         停止:systemctl stop vsftpd.service
         查看状态:systemctl status vsftpd.service

 

修改selinux

      外网是可以访问上去了,可是发现没法返回目录(使用ftp的主动模式,被动模式还是无法访问),也上传不了,因为selinux作怪了。

      修改selinux:

      执行以下命令查看状态:

 getsebool -a | grep ftp  

CentOS 7安装FTP

      执行上面命令,再返回的结果看到两行都是off,代表没有开启外网的访问,分别执行

setsebool -P allow_ftpd_full_access on
setsebool -P ftp_home_dir on

CentOS 7安装FTP

 

配置vsftpd

       创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件。

 useradd vsftpd -d /home/vsftpd -s /bin/false

 CentOS 7安装FTP

     创建这个虚拟用户

vi /etc/vsftpd/ftpusers.conf

     添加内容:

user
123456

CentOS 7安装FTP

      这就创建了虚拟用户user,密码123

      根据这个文件创建数据库文件,并设置数据库文件的访问权限

db_load -T -t hash -f /etc/vsftpd/ftpusers.conf /etc/vsftpd/ftpusers.db
chmod 600 /etc/vsftpd/ftpusers.db

CentOS 7安装FTP

     接下来我们设置启用这个数据库文件

vi /etc/pam.d/vsftpd

      注释当前文件所有内容,加入以下内容

auth        required    /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers
account     required    /lib64/security/pam_userdb.so db=/etc/vsftpd/loginusers

CentOS 7安装FTP

    创建虚拟用户主目录,目录名必须和我们的虚拟用户名称一样,上面我们创建的虚拟用户为 user

mkdir -p /home/vsftpd/user

    创建虚拟用户配置文件

mkdir /etc/vsftpd/userconf
vi /etc/vsftpd/userconf/user

CentOS 7安装FTP

      这里vi编辑的文件名称必须与虚拟用户名一致,我们上面创建的虚拟用户为user,然后加入以下内容:

local_root=/home/vsftpd/user/
write_enable=YES

CentOS 7安装FTP

      注:这里我们设定主目录为我们创建的虚拟用户主目录 /home/vsftpd/user

 

 

       修改主配置文件。修改前先备份

cp /etc/vsftpd/vsftpd.conf  /etc/vsftpd/vsftpd.conf_bak

CentOS 7安装FTP

      修改

vi /etc/vsftpd/vsftpd.conf

      更改

anonymous_enable=NO

     去掉这些的注释

chroot_local_user=YES
ascii_upload_enable=YES
ascii_download_enable=YES

     在文件最后增加

guest_enable=YES
guest_username=vsftpd
user_config_dir=/etc/vsftpd/userconf
allow_writeable_chroot=YES

     配置介绍:

            anonymous_enable=NO 禁止匿名用户登录
            chroot_local_user=YES 禁止用户访问除主目录以外的目录
            ascii_upload_enable=YES ascii_download_enable=YES 设定支持ASCII模式的上传和下载功能
            guest_enable=YES 启动虚拟用户
            guest_username=vsftpd 虚拟用户使用的系统用户名
            user_config_dir=/etc/vsftpd/userconf 虚拟用户使用的配置文件目录
            allow_writeable_chroot=YES 最新版的vsftpd为了安全必须用户主目录(也就是/home/vsftpd/user)没有写权限,才能登录,或者使用allow_writeable_chroot=YES

     重启服务,使配置生效

systemctl restart vsftpd

 

设置防火墙

         开放ftp服务

firewall-cmd --permanent --add-service=ftp

        重启防火墙

systemctl restart firewalld.service

CentOS 7安装FTP

浏览器连接:ftp://IP

CentOS 7安装FTP

输入我们配置的虚拟用户名密码

CentOS 7安装FTP

 到此ftp安装完成! 

 

相关文章: