Centos 7 的vsftpd安装和配置ftp
安装环境:
centos 7
vsftp 3.0.2
安装vsfd
# yum -y install vsftpd
配置vsftpd
1.防火墙设置
# firewall-cmd --add-service=ftp --permanent //永久开放ftp服务
# firewall-cmd --add-port=20/tcp --permanent
# firewall-cmd --add-port=21/tcp --permanent //允许外网访问
# firewall-cmd --reload //重新载入配置
2.安全设置
# vi /etc/selinux/config
修改SELINUX=disabled
-
启动vsftpd
# systemctl start vsftpd.service
-
访问
1.通过ftp方式访问
如果没有安装ftp命令,需要先安装。匿名方式账号:anonymous,密码:邮箱地址
2.通过windows登陆
-
配置vsftpd
进入到vsftp目录
# cd /etc/vsftpd
说明:
vsftpd.conf: 配置文件
ftpusers :ftp登陆用户黑名单
user_list: 黑名单,但是可以通过vsftpd.conf进行配置让该文件成为白名单
vsftp的登陆方式有三种:
第一种是匿名方式进行登陆
第二种是通过linux本地用户进行登陆
第三种是通过虚拟用户的方式进行登陆,下面就对这三种方式进行分别说明。
1.匿名登陆配置
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 //是否启用 userlist_file 白/黑名单
tcp_wrappers=YES
说明:匿名方式可以采用上面的登陆方式直接登陆。
2.使用linux本地用户进行登陆
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
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO //设置user_list为白名单,userlist_deny=YES则user_list为黑名单。
tcp_wrappers=YES
添加一个用于登陆ftp的用户,用户名:usera,用户目录:/home/usera,且设置该用户不允许登陆系统。
# useradd -d /home/usera -s /sbin/nologin usera
修改usera用户的密码
# passwd usera
去掉usera用户目录的‘写’权限
# chmod a-w /home/usera
将usera添加到user_list白名单文件中。
重启vsftpd
# systemctl restart vsftpd.service
linux登陆:
windows登陆:
点击-登陆,然后输入用户名usera,和密码12345678
3.虚拟用户登陆
vsftpd.conf文件配置如下:
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_root=/home/usera // 根目录
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
chroot_local_user=YES
listen=NO
listen_ipv6=YES
pam_service_name=vsftpd // vsftpd是在下面添加内容的文件
userlist_enable=YES
tcp_wrappers=YES
guest_enable=YES // 允许匿名登陆
guest_username=usera //对应刚才新建的本地用户,可以通过前面的命令进行创建
allow_writeable_chroot=YES // 允许修改根目录
用户信息配置如下:
# touch user.txt // 创建用户文件
# vi user.txt // 添加信息
生成db文件:
修改虚拟用户认证的PAM文件:
# vi /etc/pam.d/vsftpd
user指刚才生成的db文件,先删除vsftpd文件中已有的内容,再添加如下内容:
auth required pam_userdb.so db=/etc/vsftpd/user
account required pam_userdb.so db=/etc/vsftpd/user
更改usera的目录的权限:
# chmod -Rf 755 /home/usera/
重启:
# systemctl restart vsftpd.service
linux登陆:
注:需要注意linux中文件的权限和文件所属用户和用户组的修该,这些文件的权限要与虚拟用户一致