CentOS安装并配置vsftpd服务

一、操作系统环境

本例中将在CentOS 7.6中安装FTP服务,具体安装的版本为vsftpd x86_64 3.0.2-29.el7_9,并进行配置。

# cat /etc/redhat-release 
CentOS Linux release 7.6.1810 (Core) 

  

二、通过yum安装vsftpd

# yum install vsftpd

CentOS安装并配置vsftpd服务

 

三、设置vsftpd配置文件(基本配置)

vsftpd的配置文件位于/etc/vsftpd/vsftpd.conf。如果对配置文件进行了更改,需要重启vsftpd服务后配置才会生效。

//禁止匿名用户登陆
Anonymous_enable=NO

//是否将所有用户限制在主目录
//当设置为YES表示限制FTP用户跳出自己的家(根)目录(该项默认值是NO,即在安装vsftpd后不做配置的话,FTP用户是可以向上切换到要目录之外的)
Chroot_local_user=YES

//是否启用chroot_list_file配置项指定的用户列表文件来限制用户
//YES为启用,NO禁用(包括注释掉也为禁用)
//如果启用此项配置,需同时新建一个chroot_list,内容为空即可
chroot_list_enable=YES

//用于指定用户列表文件
chroot_list_file=/etc/vsftpd/chroot_list

//允许用户有写的权限
allow_writeable_chroot=YES

  

四、常用的操作命令

1. 查看vsftpd服务运行状态

# systemctl status vsftpd

CentOS安装并配置vsftpd服务

CentOS安装并配置vsftpd服务

 

2. 启动vsftpd服务

# systemctl start vsftpd

 

3. 停止vsftpd服务

# systemctl stop vsftpd

 

4. 重启vsftpd服务

# systemctl restart vsftpd

  

5. 查看vsftpd的安装位置

# whereis vsftpd
vsftpd: /usr/sbin/vsftpd /etc/vsftpd /usr/share/man/man8/vsftpd.8.gz

  

6. 查看vsftpd的监听端口

# netstat -npal|grep vsftpd

CentOS安装并配置vsftpd服务

 

7. 开机自动启动(作为服务运行)

chkconfig vsftpd on

  

五、创建FTP用户

//创建用户(没有登录权限)
//-d 新账户的主目录
//-g 新账户主组的名称或ID
//-s 新账户的登陆shell
//执行此命令会同步对应的创建文件夹(如果不存在)
# useradd ftpusername -d /ftp_upload -g ftp -s /sbin/nologin

//设置密码
# passwd ftpusername

  

六、修改FTP服务的端口号

1. 对配置文件/etc/vsftpd/vsftpd.conf进行调整。

//修改vsftpd监听端口
listen_port=9021

//启用PASV被动模式
pasv_enable=YES

//修改vsftpd传递数据的最小端口
pasv_min_port=9001

//修改vsftpd传递数据的最大端口
pasv_max_port=9020  

//用于检测PASV的安全检查,YES为关闭安全检查
pasv_promiscuous=YES

  

2. 修改linux services 

# vim /etc/services
//找到下面的行改成9021端口
ftp      9021/tcp
ftp      9021/udp

  

3. 修改防火墙配置,开放所需的端口

# firewall-cmd --permanent --add-port=9001-9021/tcp

  

七、可能遇到的问题

1. 使用FTP客户端连接时提示错误530,原因为SELINUX对FTP的限制,解决方法如下:

(1) 设置关闭SELINUX对FTP的限制

# getsebool -a |grep ftp

CentOS安装并配置vsftpd服务

 需要将其中的tftp_home_dir和ftpd_full_access 设置为on,回车以后,要等很久才会有反应。

#setsebool -P ftp_home_dir 1
#setsebool -P allow_ftpd_full_access 1

 

(2) 暂时关闭SELINUX

set enforce 0

  

(3) 永久关闭SELINUX(不推荐,且需要重新启动服务器)

vim /etc/selinux/config,修改为 SELINUX = disabled,保存退出。

如果碰到550拒绝访问,请执行sudo setsebool -P ftp_home_dir 1,然后重启服务器,执行reboot命令

CentOS安装并配置vsftpd服务

 

(4)  pam认证文件配置错误

修改/etc/pam.d/vsftpd
将auth required pam_shells.so 改为 auth required pam_nologin.so

 

八、参考资料

https://www.jianshu.com/p/225b291bc4a9

https://www.cnblogs.com/ismallboy/p/6785270.html

https://www.jianshu.com/p/9b6389a26336

https://blog.csdn.net/sinat_30802291/article/details/81706152

https://blog.csdn.net/jiecy/article/details/109450397

https://blog.csdn.net/qq_40606798/article/details/82286273

http://www.51gjie.com/linux/1002.html

https://blog.csdn.net/bluishglc/article/details/42398811

上一篇:Windows平台 libcurl编译 openssl zlib 64位


下一篇:Linux中FTP服务