安装ftp
yum -y install vsftpd
设置开机自启
systemctl enable vsftpd.service
启动
systemctl start vsftpd.service
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
执行上面命令,再返回的结果看到两行都是off,代表没有开启外网的访问,分别执行
setsebool -P allow_ftpd_full_access on
setsebool -P tftp_home_dir on
配置vsftpd
创建vsftpd使用的系统用户,主目录为/home/vsftpd,禁止ssh登录。创建之后所有虚拟用户使用这个系统用户访问文件。
useradd vsftpd -d /home/vsftpd -s /bin/false
创建这个虚拟用户
vi /etc/vsftpd/ftpusers.conf
添加内容:
user
123456
这就创建了虚拟用户user,密码123
根据这个文件创建数据库文件,并设置数据库文件的访问权限
db_load -T -t hash -f /etc/vsftpd/ftpusers.conf /etc/vsftpd/ftpusers.db
chmod 600 /etc/vsftpd/ftpusers.db
接下来我们设置启用这个数据库文件
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
创建虚拟用户主目录,目录名必须和我们的虚拟用户名称一样,上面我们创建的虚拟用户为 user
mkdir -p /home/vsftpd/user
创建虚拟用户配置文件
mkdir /etc/vsftpd/userconf
vi /etc/vsftpd/userconf/user
这里vi编辑的文件名称必须与虚拟用户名一致,我们上面创建的虚拟用户为user,然后加入以下内容:
local_root=/home/vsftpd/user/
write_enable=YES
注:这里我们设定主目录为我们创建的虚拟用户主目录 /home/vsftpd/user
修改主配置文件。修改前先备份
cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf_bak
修改
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
浏览器连接:ftp://IP
输入我们配置的虚拟用户名密码
到此ftp安装完成!