首页 > 代码库 > CentOS7.2部署FTP

CentOS7.2部署FTP

目前Linux大部分部署的FTP服务器都是vsftpd,至于为什么,暂时没什么必要深究。

1.安装vsftpd

# yum check-update   //检查可更新的程序,也可以不更新直接安装,以防万一# yum -y install vsftpd

2.配置参数

# vi /etc/vsftpd/vsftpd.conf

修改为如下参数

anonymous_enable=NO ### 禁用匿名登录local_enable=YES ### 允许本地用户登录write_enable=YES ### 允许对文件系统做改动的 FTP 命令local_umask=022### 本地用户创建文件所用的 umask 值dirmessage_enable=YES ### 当用户首次进入一个新目录时显示一个消息xferlog_enable=YES ### 用于记录上传、下载细节的日志文件connect_from_port_20=YES ### 使用端口 20 (ftp-data)用于 PORT 风格的连接xferlog_std_format=YES ### 使用标准的日志格式listen=NO ### 不要让 vsftpd 运行在独立模式listen_ipv6=YES ### vsftpd 将监听 IPv6 而不是 IPv4pam_service_name=vsftpd ### vsftpd 使用的 PAM 服务名userlist_enable=YES ### vsftpd 支持载入用户列表tcp_wrappers=YES ### 使用 tcp wrappers
 

3.重启ftp

# systemctl restart vsftpd.service# systemctl enable vsftpd.service

4.修改防火墙配置

有些文档说使用如下,但会报错无效 Error:INVALID_ZONE:public--permanent
# firewall-cmd --zone=public--permanent --add-port=21/tcp# firewall-cmd --zone=public--permanent --add-service=ftp

  还是用如下方式比较好:

# firewall-cmd --permanent --add-service=ftp# firewall-cmd --reload# setsebool -P ftp_home_dir on   //设置该SELinux 布尔值来允许 FTP 能读取用户家目录下的文件

  接下来添加下面的选项来限制 FTP 用户到它们自己的家目录。

chroot_local_user=YES    //配置文件中好像已存在allow_writeable_chroot=YES

 chroot_local_user=YES 意味着用户可以设置 chroot jail,默认是登录后的家目录。

  同样默认的是,出于安全原因,vsftpd 不会允许 chroot jail 目录可写,然而,我们可以添加 allow_writeable_chroot=YES 来覆盖这个设置。

 

5.为ftp创建一个用户test1(指定目录为/home/www,不允许远程登录shell)

# useradd -d /home/www -m test1 -s /sbin/nologin

6.为ftp用户设置一个密码

# passwd test1   //密码设置有要求,不能包含用户名,不能低于8位,例:ftp123456

CentOS7.2部署FTP