vbox+centos7 安装配置ftp服务器

一 安装vsftpd

1、检查本机是否安装vsftpd

 

 

 如上,表示未安装vsftpd,

2、下载安装vsftpd

下载成功后,会出现如上中的complete! 提示语,再次检查,如下表示下载安装成功

 

 

 二、可以安装vim,方便修改配置配置文件(未安装的可使用vi)

 

 

 

三、安装ftp客户端,进行验证: 

1、安装ftp: yum -y install ftp

2、启用vsftpd:systemctl start vsftpd 或者 service vsftpd start

3、检查ftp服务启用状态:systemctl status vsftpd 或者 service vsftpd status

4、用ftp本地登录

 

 

这里的用户名,可以是 ftp ,也可以 anonymous,无需密码,随意填(跟默认配置有关)

四、自定义基本配置vsftpd.conf

1、用vim打开配置文件vsftpd.conf(记得提前做好备份)

 

 

 2、自定义配置

1、修改点

anonymous_enable=NO 禁用匿名登录

listen=YES 支持ipv4网络,启用监听

listen_ipv6=NO 需要禁用,默认情况下,跟listen=YES 冲突

chroot_local_user=YES 是否将所有用户限制在主目录,(该项默认值是NO禁用,即ftp用户是可以向上切换到要目录之外的)

chroot_list_enable=YES 是否启动对ftp用户做限制权限名单,跟chroot_local_user配置关联,若chroot_local_user=YES,则此配置表示是否启用不限制名单,若chroot_local_user=NO,则此配置表示是否启用限制名单

chroot_list_file=/etc/vsftpd/chroot_list 限制/不限制名单路径,此文件默认是不存在的,需要手动创建:touch /etc/vsftpd/chroot_list

allow_writeable_chroot=YES 允许可写权限,如果chroot_local_user=YES,则该项需配置为YES,如果没有配置该项,则要求ftp根目录权限不可写,否则登录时报:500 OOPS错误

userlist_enable=YES 启用黑/白名单验证

userlist_deny=NO 启用黑/白名单验证类型,当userlist_enable=YES时,此配置才有效;YES表示启用黑名单,NO表示启用白名单

userlist_file=/etc/vsftpd/user_list 黑/白名单路径:

use_localtime=YES 使得vsftp时间和系统时间一致

tcp_wrappers=YES 支持tcp_wrappers,限制访问(/etc/hosts.allow,/etc/hosts.deny)

2、所有需要的配置项见下图

 

 

 

 

 另外 vsftpd.conf 配置详情介绍:https://www.cnblogs.com/chenlove/p/9144514.html ,https://blog.csdn.net/bluishglc/article/details/42273197 ,https://blog.csdn.net/weixin_33985507/article/details/92489660

五,创建ftp用户

1、用户名ftp在安装时,已经创建,可以查看下:vim /etc/passwd

 

 

 由此可看到:
/sbin/nologin 禁用此账号shell登录服务器,检查shell中是否存在/sbin/nologin,若没有需添加:

/var/ftp 账号ftp登录的主目录 

另外 登录失败问题分析:https://www.cnblogs.com/wudonghang/p/cc71830116f793a4d4c8e8820680ee33.html

2、也可再创建ftp用户

 

 

 

 添加系统用户ftp1,主目录是 /home/ftp1,所属用户组是ftp (和ftp用户同属一组),设置不可shell登录系统

设置ftp1用户密码

 

 

 

 修改主目录及其子目录权限

 

 

 3、配置ftp账号相关权限

如果需要允许root账号登录ftp服务,则需要在黑名单中去除root

打开ftpusers文件:vim /etc/vsftpd/ftpusers

 

 

 由于上述配置vsftpd.conf中,开始了白名单验证,所以需要添加新增的ftp账号

打开user_list文件:vim /etc/vsftpd/user_list

 

 

 由于上述配置vsftpd.conf中,开始了受限主目录外访问权,所以可以添加指定ftp账号用户此特殊访问权限

 打开chroot_list文件:vim /etc/vsftpd/chroot_list

 

4、重启ftp服务

systemctl restart vsftpd 重启

systemctl enable vsftpd 设置开机启用

systemctl is-enabled vsftpd 查看是否开机启用

 

 

六、防火墙配置

1、开放ftp服务和21端口的拦截

firewall-cmd --zone=public --add-service=ftp --permanent

firewall-cmd --zone=public --add-port=21/tcp --permanent
firewall-cmd --zone=public --add-port=20/tcp --permanent

命令含义: 

--zone #作用域 

--add-port=21/tcp #添加端口,格式为:端口/通讯协议 

--permanent #永久生效

重启防火墙:systemctl restart firewalld

2、selinux设置

可以先配置,不过还是有影响,就直接关闭

a.修改:

查看selinux关于ftp权限

 

修改权限 

setsebool -P tftp_home_dir 1
setsebool -P ftpd_full_access 1

setenforce 1 进入enforcing模式,立即生效(如果不起效果,就重启系统,注意前提是selinux为enforcing模式,否则需要手动修改配置开启,重启系统)

 

b.关闭( 原因:在CentOS7 下由于SELINUX的开启会导致很多系统服务和驱动不兼容):

打开文件 vim /etc/selinux/config

selinux=disabled 修改为关闭

setenforce 0 进入permissive模式,暂时使用(否则重启系统)

 

七、本地windows,安装filezilla

 1、添加站点

 

 

选择主动模式

 

 编辑 》设置 》FTP 》传输模式 -->选择主动

 

 

 2、连接

 

 可以注意下文件权限问题,由于11.txt 是我root账号在服务器添加的,所以是不允许ftp1账号修改删除的

 

八、其他问题补充:

1、登录成功,获取目录失败,报错:425 Failed to establish connection

 

 可能原因: 服务器阻止20端口的访问

解决:sudo iptables -A INPUT -p tcp --dport 20:21 -j ACCEPT

另外,也可切换成被动模式:http://blog.sina.com.cn/s/blog_4da051a60101c8ny.html

posted @ 2019-10-09 14:12  梦行者123  阅读(406)  评论(0编辑  收藏  举报