一 FTP文件传输协议
1. FTP为系统提供了通过网络与远程服务器进行传输的简单方式,分主动和被动两种;
2. Vsftpd:安全型服务器包,被动传输的接口是随机的,安全级别更高;
3. 默认配置文件让anonymous用户只能下载位于chroot目录中的内容;
4. /var/ftp:远程ftp客户端能以用户anonymous或ftp用户连接到服务器,不需要密码;
二、配置FTP服务
1. 配置yum源,安装vsftpd lftp
vim /etc/yum.repos.d/rhel_dvd.repo
yum clean all
yum repolist
yum install vsftpd lftp -y
2. 开启ftp服务,查看ftp状态
关闭防火墙
Systemctl start firewalld
允许ftp服务通过防火墙
客户端连接状态
三、用户登录设置 vim /etc/vsftpd/vsftpd.conf
1. 匿名用户登录
Anonymous_enable=YES
Anonymous_enable=NO 是否允许登录
2. 本地用户登录、
local_enable=YES
Local_enable=NO 是否允许登录
修改组 chgrp ftp/var/ftp/pub/
修改权限 chmod 755 /var/ftp/pub/
实验效果:
3. 匿名用户删除文件权限vim /etc/vsftpd/vsftpd.conf
Anon_other_write_enable=YES 匿名用户读写权限
实验效果
4. 匿名用户下载文件权限 vim /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO 允许匿名用户下载
实验效果
5. 匿名用户据新建目录权限 vim /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES 允许匿名建立目录
实验效果
四、用户登录的相关配置
1. 修改默认用户,即以用户student的身份登录,上传文件的组id为1000
2. chown_uploads=YES
3. Chown_username=studnet 使匿名用户以studnet身份执行
2.匿名用户的最大上传速度 单位byte
Anon_max_rate=102400
3.匿名用户登陆的默认目录修改
anon_root=/mnt
local_root=/mnt ##本地用户登陆的默认目录
在mnt下建立文件file{a..k}
4.最多同时在线人数设定
max_clients=2
6.用户登陆,锁定在用户加目录
chroot_local_user=YES
用户登陆,可切换目录,如切到根目录
7.本地用户登陆黑/白名单
chroot_list_file=/etc/vsftpd/chroot_list 列表文件/etc/vsftpd/
chroot_local_user=NO 不锁定用户家目录
chroot_list_enable=YES 开启黑/白名单列表
当锁定用户家目录(YES)时,/etc/vsftpd/chroot_list是白名单
当不锁定用户家目录(NO)时,/etc/vsftpd/chroot_list是黑名单
8.黑名单配置文件
ftpusers ##永久黑名单,一旦加入,任何操作都不能洗白
user_list ##临时黑名单,可修改配置文件,变为白名单
userlist_enable=YES ##开启userlist列表
userlist_deny=NO ##默认所有用户加入黑名单,白名单用户可登陆
六、虚拟用户登陆
1.建立虚拟用户
vim /etc/vsftpd/users 名字可自定义,不能有空格
2.对虚拟用户和密码加密
db_load -T -t hash -f users users.db
T 新建文件 -t 加密格式 -f 加密文件2.对虚拟用户和密码加密
生成/etc/vsftpd/users.db文件
3.建立ftp验证文件
/etc/pam.d/usercheck
account required pam_userdb.so db=/etc/vsftpd/users 用户认证
auth required pam_userdb.so db=/etc/vsftpd/users 密码认证
3.建立ftp验证文件
/etc/pam.d/usercheck
account required pam_userdb.so db=/etc/vsftpd/users 用户认证
auth required pam_userdb.so db=/etc/vsftpd/users 密码认证
5.配置虚拟用户具备独立的家目录
建立虚拟用户的家目录(例:两个用户)
mkdir /var/ftpdir/test1/test1dir -p
mkdir /var/ftpdir/test2/test2dir -p -p 表示上层目录不存在,自动建立
修改配置文件,使虚拟用户登陆到自己独立的家目录
local_root=/var/ftpdir/$USER $表示根据user自动登陆到相应家目录中
user_sub_token=$USER 使ftp服务识别$USER5.配置虚拟用户具备独立的家目录
建立虚拟用户的家目录(例:两个用户)
mkdir /var/ftpdir/test1/test1dir -p
mkdir /var/ftpdir/test2/test2dir -p -p 表示上层目录不存在,自动建立
修改配置文件,使虚拟用户登陆到自己独立的家目录
local_root=/var/ftpdir/$USER $表示根据user自动登陆到相应家目录中
user_sub_token=$USER 使ftp服务识别$USER
6.虚拟用户分开管理(VIP)
将匿名用户所有的权限关闭
修改配置文件,给指定虚拟用户特殊权限
user_config_dir=/etc/vsftpd/user_conf user_conf 目录中的文件相当
于“VIP名单”
在/etc/vsftpd/user_conf目录下建立文件,以虚拟用户名命名
修改虚拟用户登陆家目录权限
chmod 755 /var/ftpdir/test1/test1dir 根目录权限改为755
更改虚拟用户登陆家目录组
chgrp student /var/ftpdir/test2/test2dir 目录指定组为student