Centos7.6利用vsftpd搭建FTP服务器详细教程

Centos7搭建FTP服务器,详细教程

测试环境:Centos7.6版本

一、关闭防火墙

systemctl status firewalld.service  #查看防火墙状态
systemctl stop firewalld.service   #停止防火墙服务
systemctl disable firewalld.service #关闭防火墙开启自启动
vi /etc/selinux/config   #把文件中的SELINUX=enforcing 改为SELINUX=disabled

等待搭建成功后再开启防火墙,再开端口。要不然会带来很多不必要的麻烦。

二、安装vsftpd并启动服务

1、安装vsftpd

yum install -y vsftpd

2、启动服务与设置开机启动ftp

systemctl start vsftpd.service 启动服务
systemctl enable vsftpd.service 设置开机自动启动服务

三、编辑配置文件 vsftpd.conf

   vi /etc/vsftpd/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
chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO
listen=YES
listen_ipv6=YES
pam_service_name=vsftpd
userlist_enable=YES
userlist_deny=NO
allow_writeable_chroot=YES
tcp_wrappers=YES
pasv_min_port=6000
pasv_max_port=6010
user_config_dir=/etc/vsftpd/userconfig

修改完之后,需要重启FTP服务刷新配置:

systemctl start vsftpd.service   #重启FTP服务

四、新建用户并设置密码

useradd -d /home/helloftp -s /bin/bash helloftp

新建用户:helloftp (你可以改成你自己的用户名)

passwd helloftp

设置用户helloftp密码

五、允许新建用户登录FTP

vi /etc/vsftpd/user_list

编辑/etc/vsftpd/user_list ,这个是允许登录ftp的名单

六、用户目录的配置

进入/etc/vsftpd/userconfig下:新建文件helloftp,必须要和用户名一样。然后在新建的文件内写入用户的主目录

local_root=/home/data/ftp/helloftp

七、注意事项:

1、设置了 chroot_local_user=YES 后,用户不能登录,原因是没设置 allow_writeable_chroot=YES
2、重启服务器后无法连接FTP,原因是你防火墙没有关闭彻底。
3、不建议把用户主目录放在根目录,建议放到home目录
4、下面附vsftpd.conf配置文件的详细解析:

anonymous_enable=NO            #是否开启匿名用户,匿名都不安全,不要开
local_enable=YES               #允许本机账号登录FTP
write_enable=YES               #允许账号都有写操作
local_umask=022                #意思是指:文件目录权限:777-022=755,文件权限:666-022=644,这有点反人类了,并且没有人跟我说是减去的。注意理解!
#anon_upload_enable=YES        #匿名用户是否有上传文件的功能,不要开
#anon_mkdir_write_enable=YES   #匿名用户是否有创建文件夹的功能,不要开
dirmessage_enable=YES          #进入某个目录的时候,是否在客户端提示一下
xferlog_enable=YES             #日志记录
connect_from_port_20=YES       #开放port模式的20端口的连接
#chown_uploads=YES             #允许没人认领的文件上传的时候,更改掉所属用chown_uploads=YES的前提下,所属的用户
#xferlog_file=/var/log/xferlog #日志存放的地方
xferlog_std_format=YES         #日志成为std格式
#idle_session_timeout=600      #用户无操作服务器会主动断开连接,单位秒
#data_connection_timeout=120   #数据连接超时
#nopriv_user=ftpsecure         #以 ftpsecure 作为此一服务执行者的权限。因为ftpsecure 的权限相当的低,因此即使被入侵,入侵者仅能取得nobody 的权限喔!
#async_abor_enable=YES         #异步停用,由客户发起
#ascii_upload_enable=YES       #使用ascii格式上传文件
#ascii_download_enable=YES     #使用ascii格式下载文件
#ftpd_banner=Welcome to blah FTP service  #欢迎词
#deny_email_enable=YES         #以anonymous用户登录时候,是否禁止掉名单中的emaill密码。
#banned_email_file=/etc/vsftpd/banned_emails  #以anonymous用户登录时候,所禁止emaill密码名单。
chroot_local_user=YES          #限制用户只能在自己的目录活动
#chroot_list_enable=YES        #例外名单,如果是YES的话,这个有点怪,不懂别乱开,上面的选项会跟这个名单反调(会被上面的选项影响)。
#chroot_list_file=/etc/vsftpd/chroot_list
ls_recurse_enable=NO           #是否允许使用ls -R等命令
listen=YES                     #监听ipv4端口,开了这个就说明vsftpd可以独立运行,不用依赖其他服务。
#listen_ipv6=YES               #监听ipv6端口,还没普及呢!
pam_service_name=vsftpd        #pam模块的名称,放置在 /etc/pam.d/vsftpd ,认证用
userlist_enable=YES            #使用允许登录的名单
userlist_deny=NO               #限制允许登录的名单,前提是userlist_enable=YES,其实这里有点怪~!
allow_writeable_chroot=YES     #允许限制在自己的目录活动的用户 拥有写权限
tcp_wrappers=YES               #Tcp wrappers : Transmission Control Protocol (TCP) Wrappers 为由 inetd 生成的服务提供了增强的安全性。
user_config_dir=/etc/vsftpd/userconfig  #主目录配置,修改后到这个目录中在修改用户配置

pasv_min_port=6000 (0为随机分配)
pasv_max_port=6010(这两项定义了可以同时执行下载链接的数量。)
#被动模式端口范围:注意:linux客户端默认使用被动模式,windows 客户端默认使用主动模式。在ftp客户端中执行"passive"来切换数据通道的模式。也可以使用"ftp -A ip"直接使用主动模式。主动模式、被动模式是有客户端来指定的。

最后修正时间2019.12.2

发布了44 篇原创文章 · 获赞 6 · 访问量 6321

猜你喜欢

转载自blog.csdn.net/annita2019/article/details/92004340
今日推荐