Centos7部署vsftpd服务
环境:Centos7.6
一、CentOS卸载vsftpd的方法
如果服务器上已经安装了vsftpd服务,配置出错需要卸载vsftpd服务。
1、查找vsftpd服务
rpm -qa vsftpd
返回结果显示:
vsftpd-3.0.2-21.el7.x86_64
此处是查找vsftpd的返回结果
2、删除查找到的vsftpd服务
注:在卸载vsftpd之前,先停止vsftpd
systemctl stop vsftpd
rpm -e vsftpd-3.0.2-21.el7.x86_64
二、安装vsftpd组件
安装
yum -y install vsftpd
启动
systemctl start vsftpd.service
开放21端口
firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --reload
三、配置vsftpd
建立ftp虚拟宿主账户
useradd -d /data/ftp -s /sbin/nologin ftpuser
passwd ftpuser
输入两次密码
在/etc/shells中加入/sbin/nologin在最后一行
vim /etc/vsftpd/vsftpd.conf
默认配置
anonymous_enable=YES
(匿名用户)
local_enable=YES
(本地用户)
匿名用户使用的登陆名为ftp或anonymous,口令为空;匿名用户不能离开匿名用户家目录/var/ftp,且只能下载不能上传。
本地用户的登录名为本地用户名,口令为此本地用户的口令;本地用户可以在自 己家目录中进行读写操作;本地用户可以离开自家目录切换至有权限访问的其他目录,并在权限允许的情况下进行上传/下载。
write_enable=YES
写在文件/etc/vsftpd/ftpusers中的本地用户禁止登陆。
修改配置文件
主动模式
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=YES
listen_ipv6=NO
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES
local_root=/data/ftp
allow_writeable_chroot=YES
被动模式
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=YES
local_root=/data/ftp
allow_writeable_chroot=YES
pam_service_name=vsftpd
userlist_enable=NO
tcp_wrappers=YES
listen_port=23321
pasv_address=180.x.x.x
pasv_enable=YES
pasv_min_port=23290
pasv_max_port=23320
pasv_promiscuous=YES
设置用户不能删除ftp上面的文件配置
mkdir -p /etc/vsftpd/vsftpd_user_conf
vim /etc/vsftpd/vsftpd_user_conf/testuser
(注意后面的 testuser)对应自己要限制权限的账户,我限制的是test账户对应的命令就变成
vim /etc/vsftpd/vsftpd_user_conf/test
在里面 写入
cmds_denied=DELE
这句话的意思是 禁止使用 删除命令。
然后保存退出 即可 :wq
重新打开配置文件
vim /etc/vsftpd/vsftpd.conf
在尾部 写一句
user_config_dir=/etc/vsftpd/vsftpd_user_conf
即安装 刚才写的那些 命令限制 那些账户。
保存退出即可
后面需要重启一次 ftp
systemctl restart vsftpd
修改ftp默认端口
vim /etc/vsftpd/vsftpd.conf
在文件末尾增加
listen_port=23321
vim /etc/services
ftp 23321/tcp
ftp 23321/udp fsp fspd
重启vsftp服务
systemctl restart vsftpd
四、配置文件参数含义
点击查看代码
匿名用户(anonymous)设置
anonymous_enable=YES/NO
控制是否允许匿名用户登入,YES 为允许匿名登入,NO 为不允许。默认值为YES。
write_enable=YES/NO
是否允许登陆用户有写权限。属于全局设置,默认值为YES。
no_anon_password=YES/NO
若是启动这项功能,则使用匿名登入时,不会询问密码。默认值为NO。
ftp_username=ftp
定义匿名登入的使用者名称。默认值为ftp。
anon_root=/var/ftp
使用匿名登入时,所登入的目录。默认值为/var/ftp。注意ftp目录不能是777的权限属性,即匿名用户的家目录不能有777的权限。
anon_upload_enable=YES/NO
如果设为YES,则允许匿名登入者有上传文件(非目录)的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
anon_world_readable_only=YES/NO
如果设为YES,则允许匿名登入者下载可阅读的档案(可以下载到本机阅读,不能直接在FTP服务器中打开阅读)。默认值为YES。
anon_mkdir_write_enable=YES/NO
如果设为YES,则允许匿名登入者有新增目录的权限,只有在write_enable=YES时,此项才有效。当然,匿名用户必须要有对上层目录的写入权。默认值为NO。
anon_other_write_enable=YES/NO
如果设为YES,则允许匿名登入者更多于上传或者建立目录之外的权限,譬如删除或者重命名。(如果 anon_upload_enable=NO,则匿名用户不能上传文件,但可以删除或者重命名已经存在的文件;如果 anon_mkdir_write_enable=NO,则匿名用户不能上传或者新建文件夹,但可以删除或者重命名已经存在的文件夹。)默认值为NO。
chown_uploads=YES/NO
设置是否改变匿名用户上传文件(非目录)的属主。默认值为NO。
chown_username=username
设置匿名用户上传文件(非目录)的属主名。建议不要设置为root。
anon_umask=077
设置匿名登入者新增或上传档案时的umask 值。默认值为077,则新建档案的对应权限为700。
deny_email_enable=YES/NO
若是启动这项功能,则必须提供一个档案/etc/vsftpd/banner_emails,内容为email address。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。默认值为NO。
banned_email_file=/etc/vsftpd/banner_emails
此文件用来输入email address,只有在deny_email_enable=YES时,才会使用到此档案。若是使用匿名登入,则会要求输入email address,若输入的email address 在此档案内,则不允许进入。
local_enable=YES/NO
控制是否允许本地用户登入,YES 为允许本地用户登入,NO为不允许。默认值为YES。
local_root=/home/username
当本地用户登入时,将被更换到定义的目录下。默认值为各用户的家目录。
write_enable=YES/NO
是否允许登陆用户有写权限。属于全局设置,默认值为YES。
local_umask=022
本地用户新增档案时的umask 值。默认值为077。
file_open_mode=0755
本地用户上传档案后的档案权限,与chmod 所使用的数值相同。默认值为0666。
chroot_list_enable=YES/NO
设置是否启用chroot_list_file配置项指定的用户列表文件。默认值为NO。
chroot_list_file=/etc/vsftpd/chroot_list
用于指定用户列表文件,该文件用于控制哪些用户可以切换到用户家目录的上级目录。
chroot_local_user=YES/NO
用于指定用户列表文件中的用户是否允许切换到上级目录。默认值为NO。
①当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd.chroot_list文件中列出的用户,可以切换到其他目录;未在文件中列出的用户,不能切换到其他目录。
②当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd.chroot_list文件中列出的用户,不能切换到其他目录;未在文件中列出的用户,可以切换到其他目录。
③当chroot_list_enable=NO,chroot_local_user=YES时,所有的用户均不能切换到其他目录。
④当chroot_list_enable=NO,chroot_local_user=NO时,所有的用户均可以切换到其他目录。
限制系统用户锁定在/data/ftp目录
local_root=/data/ftp
chroot_local_user=YES