Linux CentOS 7.4下搭建FTP服务器

CentOS7下搭建FTP服务器
Linux : CentOS Linux release 7.4.1708 (Core)


第一步:安装vsftpd服务,如果已经安装,则跳过此操作
#root用户下执行此命令,如果返回vsftpd相关版本信息,则说明已经安装了,否则表示没有安装
rpm -q vsftpd 


#root用户下执行下面的命令安装vsftpd 服务--需要linux主机有上网功能
yum install -y vsftpd


#查看vsftpd服务的状态,如果没有启动则使用  systemctl start vsftpd.service 命令启动服务
systemctl status vsftpd.service


#设置开机自启,即重启主机后自动开启vsftpd服务
systemctl enable vsftpd.service


第二部:配置 /etc/vsftpd/vsftpd.conf 文件--这是最重要的部分,每个配置的具体含义请查阅文档,开启如下配置
dirmessage_enable=YES #当用户进入某个目录时,会显示该目录需要注意的内容,显示的档案默认是.message,你可以使用message_file=.message设置来修改
xferlog_enable=YES    #当设定为 YES 时,使用者上传与下载文件都会被纪录起来。记录的文件与xferlog_file=/var/log/xferlog设置有关
xferlog_std_format=YES #设置为YES时,日志记录在xferlog_file=/var/log/xferlog这里,为NO时,日志记录在/var/log/vsftpd.log文件中,建议设置为NO方便阅读
connect_from_port_20=YES #传输数据时,使用20端口
idle_session_timeout=600 #如果使用者在 600 秒内都没有命令动作,强制脱机!
ascii_upload_enable=YES  #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式下载文件
ascii_download_enable=YES #如果设定为 YES ,那么 client 就优先 (预设) 使用 ASCII 格式上传文件
ftpd_banner=Welcome to blah FTP service. #命令行登录时
chroot_local_user=YES #限制用户,使用户只能在自己的home目录之内。
listen=NO
listen_ipv6=YES #如果此参数值为YES,listen必须设置为NO(不能使用#注销),否则vsftpd服务启动报错。
pam_service_name=vsftpd #启用PAM认证模式,和/etc/pam.d/vsftpd文件有关,其中配置了 黑名单文件 /etc/vsftpd/ftpusers
userlist_enable=YES #设置黑白名单
tcp_wrappers=YES
allow_writeable_chroot=YES #不设置会无法登录




第三部:防火墙设置
如果系统启用了防火墙和SELinux,那么还要做以下配置(默认情况下CentOS7是使用firewall和selinux的,不在使用iptables)
firewall-cmd --permanent --zone=public --add-service=ftp
firewall-cmd --reload


设置SELinux 中 ftpd_full_access=on  或修改 /etc/selinux/config 中 SELINUX=disabled
setsebool -P ftpd_full_access on
getsebool -a | grep ftp


第四部:重启vsftpd服务器,使第二部的配置生效
systemctl stop vsftpd.service      #停vsftpd服务
systemctl start vsftpd.service     #启动vsftpd服务
systemctl status vsftpd.service    #查看vsftpd服务






vsftpd中关于ftpusers和user_list两个文件的说明以及vsftpd.conf中的userlist_enable和userlist_deny两个配置项的解释


---本文原文出处: http://blog.csdn.net/bluishglc/article/details/42273197严禁任何形式的转载,否则将委托CSDN官方维护权益


问题一:ftpusers和user_list两个文件各自的用途是什么?有何关系?




首先请明确一点:ftpusers不受任何配制项的影响,它总是有效,它是一个黑名单!
该文件存放的是一个禁止访问FTP的用户列表,通常为了安全考虑,管理员不希望一些拥有过大权限的帐号(比如root)登入FTP,以免通过该帐号从FTP上传或下载一些危险位置上的文件从而对系统造成损坏。


而user_list则是和vsftpd.conf中的userlist_enable和userlist_deny两个配置项紧密相关的,它可以有效,也可以无效,有效时它可以是一个黑名单,也可以是一个白名单!那么是什么的设置决定了它的作用呢?这就是问题二要解释的。


所以简单总结就是:ftpusers和user_list没有任何关系,ftpusers文件总是生效,user_list则取决于userlist_enable和userlist_deny两项配置。


问题二:vsftpd.conf中的userlist_enable和userlist_deny两个配置项各自起什么作用,两者如何搭配使用?
综上实验得出以下结论:
userlist_enable和userlist_deny两个选项联合起来针对的是:1 本地全体用户(除去ftpusers中的用户); 2 出现在user_list文件中的用户; 3 不在user_list文件中的用户这三类用户集合进行的设置。
当且仅当userlist_enable=YES时:userlist_deny项的配置才有效,user_list文件才会被使用;当其为NO时,无论userlist_deny项为何值都是无效的,本地全体用户(除去ftpusers中的用户)都可以登入FTP
当userlist_enable=YES时,userlist_deny=YES时:user_list是一个黑名单,即:所有出现在名单中的用户都会被拒绝登入;
当userlist_enable=YES时,userlist_deny=NO时:user_list是一个白名单,即:只有出现在名单中的用户才会被准许登入(user_list之外的用户都被拒绝登入);另外需要特别提醒的是:使用白名单后,匿名用户将无法登入!除非显式在user_list中加入一行:anonymous

你可能感兴趣的:(Linux)