ftp服务(更新)
FTP服务
1. FTP服务介绍
- FTP协议
- 命令(21端口)和数据(20端口)使用不同的链路
- 主动模式和被动模式
2. vsftpd服务
2.1 vsftpd服务的安装
yum install vsftpd -y
建议将selinux设置为permissive或关闭,同时注意防火墙设置或关闭
2.2 vsftpd服务的配置
- 主配置文件:/etc/vsftpd/vsftpd.conf,主要关注以下配置
anonymous_enable=YES # 允许匿名用户 YES和NO必须大写
anon_root=路径 # 设置匿名用户登录位置
local_enable=YES # 允许Linux本来用户 是否生效还要取决于SELinux的设置 getsebool -a|grep ftpd
write_enable=YES # 本地用户能否写入
connect_from_port_20=YES # 开启主动传输模式
userlist_enable=YES # 开启/etc/vsftpd/user_list
userlist_deny=YES # 设置user_list为黑名单(YES,默认)或白名单(NO)
- 匿名用户登录位置:
/var/ftp
,本地用户登录位置:自己的家目录
2.3 vsftpd服务的启动和停止
systemctl start vsftpd
systemctl stop vsftpd
2.4 访问
- Linux客户端
ftp ftp服务器ip
Name (ftp服务器ip:root): ftp # 匿名用户使用ftp
Password: # 直接回车
ftp>
Windows客户端
资源管理器直接访问
ftp://ftp服务器ip
3. vsftp用户设置
3.1 ftp用户配置文件
- 黑名单文件:
/etc/vsftpd/ftpusers
,这些用户权限太大,不允许设置为ftp用户 - 黑白名单文件:
/etc/vsftpd/user_list
,可以通过对/etc/vsftpd/vsftpd.conf
的设置,将其配置为黑名单或白名单。
3.2(扩展) vsftp虚拟用户设置
虚拟用户:不在/etc/passwd中
- 修改配置文件
vi /etc/vsftpd/vsftpd.conf
guest_enable=YES
guest_username=vuser
user_config_dir=/etc/vsftpd/vuserconfig
allow_writeable_chroot=YES
pam_service_name=vsftpd.vuser
- 创建本地用户
用于映射虚拟用户
useradd -d /data/ftp -s /sbin/nologin vuser
- 创建虚拟用户
cd /etc/vsftpd
vi vuser.temp
# 输入如下内容
vu1
123456
vu2
123456
# 生成用户db文件
db_load -T -t hash -f /etc/vsftpd/vuser.temp /etc/vsftpd/vuser.db
chmod 600 /etc/vsftpd/vuser.db
- 修改验证方式
默认验证为本地用户验证,在/etc/pam.d/vsftpd
。修改为虚拟用户验证
vi /etc/pam.d/vsftpd.vuser
# 添加如下内容
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser
- 创建虚拟用户权限控制文件
cd /etc/vsftpd/vuserconfig
vi vu1 # 按虚拟用户名命名
# 创建配置例如下
local_root=/data/ftp
write_enable=YES
anon_umask=022
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
download_enable=YES
- 启动和测试
systemctl restart vsftpd
ftp ftp服务器ip
Name (ftp服务器ip:root): vu1
Password: # 输入123456
ftp>