##1.FTP 文件传输协议## 1.FTP为系统提供了通过网络与远程服务器进行传输的简单方法,分主动和被动两种; 2.vsftpd:安全型服务器包,被动传输的接口是随机的,安全级别更高; 3.默认配置文件让anonymous用户只能下载位于chroot目录中的内容; 4./var/ftp:远程FTP客户端能以用户anofile:///usr/share/doc/HTML/en-US/index.htmlnymous或ftp用户连接到服务器,无需密码; 匿名用户默认的登陆目录为/var/pub/ 本地用户默认的登陆目录为/home家目录 服务端安装vstftp服务和lftp服务,客户端安装lftp服务 ##2.设置FTP服务 ## 1.给服务端(虚拟机)配置yum源,安装vsftpd和lftp 2.在服务端修改防火墙配置文件,允许ftp连接(不然客户端连接会显示Interrupt) 查看防火墙限制的服务 firewall-cmd --get-services 修改配置文件,允许ftp服务通过防火墙 firewall-cmd --permanent --add-service=ftp 防火墙服务重新加载配置文件 firewall-cmd --reload 查看防火墙允许服务 firewall-cmd --list-all 3.开启ftp服务,查看ftp接口,设置开机自启动 4.修改配置后,客户端连接好 ##默认目录 /pub 注意:客户端需要安装lftp服务 ##3.用户登陆设置 /etc/vsftpd/vsftpd.conf## 1.匿名用户登陆 anonymous_enable=YES anonymous_enable=NO ##是否允许登陆 不允许登陆状态如下 2.本地用户登陆 local_enable=YES local_enable=No ##是否允许登陆 不允许登陆状态如下: 3.本地用户读写 write_enable=YES write_enable=NO ##是否允许读写 注意:该实验必须修改内核级限制文件 /etc/sysconfig/selinux SELINUX=disabled 允许读写 例:设置userlist_deny=NO,将tom用户加入user_list则: ##4.登陆用户的读写权限## 注意:530报错为密码输入错误 550报错为当前用户没有权限 553报错为文件权限不够 500报错为文件权限太大 1.匿名用户上传文件权限 /etc/vsftpd/vsftpd.conf anon_upload_enable=YES ##匿名用户上传权限 修改组 chgrp ftp/var/ftp/pub/ 修改权限 chmod 775 /var/ftp/pub/ 实验效果如下: 2.匿名用户删除文件权限 /etc/vsftpd/vsftpd.conf anon_other_write_enable=YES ##匿名用户读写权限 实验效果如下: 3.匿名用户下载文件权限 /etc/vsftpd/vsftpd.conf anon_world_readable_only=NO ##允许匿名用户下载 实验效果如下: 4.匿名用户新建目录权限 /etc/vsftpd/vsftpd.conf anon_mkdir_write_enable=YES ##允许匿名建立目录 实验效果如下: ##5.用户登陆的相关配置## 1.修改默认用户,即以用户student的身份登陆,上传文件的组id为1000 chown_uploads=YES chown_username=student ##使匿名用户以student身份执行 2.匿名用户的最大上传速度 ##单位byte anon_max_rate=102400 3.匿名用户登陆的默认目录修改 anon_root=/mnt local_root=/mnt ##本地用户登陆的默认目录 在mnt下建立文件hi{1..5},实验: 4.最多同时在线人数设定 max_clients=3 5.修改本地用户登陆后,文件默认权限修改 local_umask=033 ##文件默认权限为644 6.用户登陆,锁定在用户加目录 chroot_local_user=YES 注意:此时要取消家目录文件W权限,否则会500报错,权限太大 用户登陆,可切换目录,如切到根目录 7.本地用户登陆黑/白名单 chroot_local_user=NO ##不锁定用户家目录 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是黑名单 以锁定家目录为例,将tom用户加入白名单: 8.黑名单配置文件 ftpusers ##永久黑名单,一旦加入,任何操作都不能洗白 user_list ##临时黑名单,可修改配置文件,变为白名单 userlist_enable=YES ##开启userlist列表 userlist_deny=NO ##默认所有用户加入黑名单,白名单用户可登陆 注意:若用户既在永久黑名单,也在白名单,此用户不能登陆!! ##6.虚拟用户登陆## 1.建立虚拟用户 vim /etc/vsftpd/users ##名字可自定义,注意不能有空格 2.对虚拟用户和密码加密 db_load -T -t hash -f users users.db -T ##新建文件 -t ##加密格式 -f ##加密文件 会生成/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 ##密码认证 4.修改配置文件,使虚拟用户登陆 pam_service_name=usercheck ##pam读取虚拟用户文件usercheck guest_enable=YES ##开启虚拟用户登陆 guest_username=student ##使虚拟用户以ftp映射用户登陆, 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服务识别$USER