设置只允许白名单(user_list文件中用户)用户访问ftp操作过程参考
1. 安装vsftpd软件包:在终端中运行以下命令安装vsftpd(如果已安装,请跳过此步骤)
[root@localhost ~]# yum -y install vsftpd
2.备份主配置文件:
根据需要进行配置。一些常见的配置选项包括:
- `anonymous_enable=YES`:启用匿名访问。
- `write_enable=YES`:允许上传文件。
- `local_enable=YES`:允许本地用户登录。
- `chroot_local_user=YES`:限制用户只能访问其主目录。
- `user_sub_token=$USER`:将每个用户的主目录映射到`/home/username`。
- `local_umask=022`:设置上传文件的默认权限。
[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@localhost ~]# ls /etc/vsftpdftpusers user_list vsftpd.conf vsftpd.conf.bak vsftpd_conf_migrate.sh
[root@localhost ~]#grep -v "^#" /etc/vsftpd/vsftpd.conf.bak > /etc/vsftpd/vsftpd.conf
4.编辑主配置文件,启用白名单:
[root@localhost ~]# vi /etc/vsftpd/vsftpd.conf
5.编辑名单文件user_list ,添加zhangsan、lisi:
[root@localhost ~]# vi /etc/vsftpd/user_list
6.在系统中添加本地账号zhangsan和lisi:
[root@localhost ~]# useradd lisi
[root@localhost ~]# passwd lisi
更改用户 lisi 的密码 。
新的密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# passwd zhangsan
更改用户 zhangsan 的密码 。
新的密码:
无效的密码: 密码未通过字典检查 - 过于简单化/系统化
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
7.查看已有的系统本地普通账号:
[root@localhost ~]# tail -3 /etc/passwd8.
关闭防火墙:[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
9.启动ftp服务:[root@localhost ~]# systemctl start vsftpd
10.在物理机资源管理器地址栏输入ftp协议及服务器IP地址:
11在弹出的登录窗口输入白名单中账号及密码:【如果不出现登录窗口,而是提示出错(如下图)则点击“确定”,然后在空白处点右键,选择“登录”就会出现登录窗口了。】登录成功界面:
12.尝试上传文件,成功:
13.改用白名单以外的账号登录:登陆失败:
以下是在Linux上搭建FTP服务时常见的错误问题和解决方案:
1. 无法连接到FTP服务器:
- 确保FTP服务器已正确安装并正在运行。
- 检查防火墙设置,确保允许FTP流量通过。
- 检查vsftpd配置文件中的`listen=YES`选项是否启用。
2. 匿名用户无法登录:
- 确保vsftpd配置文件中的`anonymous_enable=YES`选项已启用。
- 检查`anon_root`选项的值是否设置为匿名用户的根目录。
3. 本地用户无法登录:
- 确保vsftpd配置文件中的`local_enable=YES`选项已启用。
- 检查`/etc/passwd`文件中的用户账号是否存在。
- 检查`/etc/vsftpd.user_list`文件中是否包含允许登录的用户名。
4. 无法上传文件:
- 确保vsftpd配置文件中的`write_enable=YES`选项已启用。
- 检查用户的主目录权限是否允许写入。
- 检查`/etc/vsftpd.conf`文件中的`local_umask`选项,确保设置合适的文件默认权限。
5. 被动模式(PASV)连接问题:
- 在vsftpd配置文件中添加以下选项:
```
pasv_enable=YES
pasv_min_port=xxxx
pasv_max_port=xxxx
pasv_address=xxx.xxx.xxx.xxx
```
其中,`pasv_min_port`和`pasv_max_port`是被动模式使用的端口范围,`pasv_address`是FTP服务器的公共IP地址。
6. 无法访问用户的主目录:
- 确保vsftpd配置文件中的`chroot_local_user=YES`选项已启用。
- 检查用户的主目录权限是否允许访问。
这些是在搭建FTP服务时常见的错误问题和解决方案。根据具体的情况,您可能还需要进一步调查和调整配置。