|
一、操作系统环境
本例中将在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
三、设置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
2. 启动vsftpd服务
3. 停止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
7. 开机自动启动(作为服务运行)
五、创建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
//找到下面的行改成9021端口
ftp 9021/tcp
ftp 9021/udp
3. 修改防火墙配置,开放所需的端口
# firewall-cmd --permanent --add-port=9001-9021/tcp
七、可能遇到的问题
1. 使用FTP客户端连接时提示错误530,原因为SELINUX对FTP的限制,解决方法如下:
(1) 设置关闭SELINUX对FTP的限制
需要将其中的tftp_home_dir和ftpd_full_access 设置为on,回车以后,要等很久才会有反应。
#setsebool -P ftp_home_dir 1
#setsebool -P allow_ftpd_full_access 1
(2) 暂时关闭SELINUX
(3) 永久关闭SELINUX(不推荐,且需要重新启动服务器)
vim /etc/selinux/config,修改为 SELINUX = disabled,保存退出。
如果碰到550拒绝访问,请执行sudo setsebool -P ftp_home_dir 1,然后重启服务器,执行reboot命令
(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
来源:https://www.cnblogs.com/yangjisen/p/15626007.html |