FTP服务
一、FTP(文件传输协议)
1.FTP是INTERNET上仍常用的最老的网络协议之一,它为系统提供了通过网络与远程服务器进行传输的简单方法.
2.vsftpd:FTP 服务器包的名称为 vsftpd , 它代表 Very Secure File TransferProtocol Damon 服务器名称也叫做 vsftpd。默认配置文件让 ANONYMOUS 用户只能下载位于 CHROOT 目录中的内容。 /var/ftp/ 这意味着远程 FTP 客户端能以用户anonymous 或 ftp 身份连接到服务器 ( 无需密码 ), 并从 ftp服务器上的 /var/ftp/ 目录下载文件 ( 其本地 ftp 用户可以读取这些文件 )
二、FTP设置
1.配置yum源,安装vsftpd lftp
2.开启ftp服务,查看ftp接口
3.开启防火墙,设置ftp开机自启
4.打开防火墙添加服务(找到ftp)
5.添加白名单ftp--重新加载--查看白名单
6.查看服务的配置文件(rpm -qc vsftpd)
7.修改配置文件(vim /etc/vsftpd/vsftpd.conf)——重起服务(systemctl restart vsftpd)
8.在客户端登陆,连接成功 ####默认目录 /pub
三、用户登陆设置
1.匿名用户登陆
anonymous_enable=YES anonymous_enable=NO #是否允许登陆
登陆不成功显示如下:
2.本地用户登陆
local_enable=YES local_enable=No ##是否允许登陆
登陆不成功显示如下:
3.本地用户读写
write_enable=YES write_enable=NO #是否允许读写
该实验必须修改内核级限制文件 (/etc/sysconfig/selinux)
允许读写
不允许读写
四、登陆用户的读写权限
###几种报错含义##
530 报错为密码输入错误
550 报错为没有设置匿名用户上传权限
553 报错为文件权限不
500 权力过大
1. 查看ftp可操作的命令 help
2.匿名用户上传文件权限 /etc/vsftpd/vsftpd.conf
anon_upload_enable=YES
修改组 chgrp ftp /var/ftp/pub/
修改权限 chmod 775 /var/ftp/pub/
成功修改如下:
3.匿名用户下载文件权限 /etc/vsftpd/vsftpd.conf
anon_world_readable_only=NO
4.匿名用户删除文件权限 /etc/vsftpd/vsftpd.conf
anon_other_write_enable=YES
修改成功如下:
5.匿名用户新建目录权限 /etc/vsftpd/vsftpd.conf
anon_mkdir_write_enable=YES
五、用户登陆的相关设置
1.匿名用户的最大上传速度 ##单位byteanon_max_rate=102400
2.最多同时在线人数设定
max_clients=5
3.匿名用户登陆的默认目录修改
anon_root=/mnt ##匿名用户登陆的默认目录
local_root=/mnt ##本地用户登陆的默认目录
4.修改本地用户登陆后,文件默认权限修改
local_umask=055
5.修改匿名用户,即以用户tom的身份登陆,上传文件组id为1001。
chown_username=tom
6.用户登陆,锁定在用户加目录
chroot_local_user=YES 锁定用户在加目录
此时要取消家目录文件W权限,否则会500报错,权限太大
chroot_local_user=NO 用户登陆,可切换目录,如切到根目录
7.本地用户登陆黑/白名单
chroot_local_user=YES 锁定用户家目录
chroot_list_enable=YES 开启黑/白名单列表
chroot_list_file=/etc/vsftpd/chroot_list 列表文件为/etc/vsftpd/chroot_list
注意:当锁定用户家目录(YES)时,/etc/vsftpd/chroot_list是白名单
当不锁定用户家目录(NO)时,/etc/vsftpd/chroot_list是黑名单
以不锁定家目录(NO)为例:将tom加入到黑名单:
8.黑名单配置文件
ftpusers ##永久黑名单,一旦加入,任何操作都不能洗白
user_list ##临时黑名单,可修改配置文件,变为白名单
userlist_enable=YES ##开启userlist列表
userlist_deny=NO ##默认所有用户加入黑名单,白名单用户可登陆
注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!!
例:设置userlist_deny=NO,将 lj 用户加入user_list,则:
将 lj 用户同时加入永久黑名单,则 lj 不能登陆:
六、虚拟用户登陆
1.建立虚拟用户
vim /etc/vsftpd/users ##名字可自定义 #注意:不能有空格
2.对虚拟用户和密码加密
db_load -T -t hash -f users users.db
-T ##新建文件 -t ##加密格式 -f ##加密文件
会生成 /etc/vsftpd/users.db文件
3.建立ftp验证文件
account required pam_userdb.so db=/etc/vsftpd/users ##用户认证
auth required pam_userdb.so db=/etc/vsftpd/users ##密码认证
4.修改配置文件,使虚拟用户登陆
pam_service_name=usercheck ##pam读取虚拟用户文件usercheck
guest_enable=YES ##开启虚拟用户登陆
guest_username=ftp ##使虚拟用户以ftp映射用户登陆
5.配置虚拟用户具备独立的家目录
mkdir /var/ftpdir/mark1/mark1dir -p
mkdir /var/ftpdir/mark2/mark2dir -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目录下建立文件,以虚拟用户名命名:
给 mark1 建立目录权限:
实验后结果: