实验目的:
掌握linux的ftp服务并配置;
实验需求:
-采用ftp虚拟用户的方式,添加三个用户:devadm、sales、salesadm
-用户访问及文件权限控制
*开放匿名访问,任何用户均可下载服务器/var/ftp/soft目录中的软件资料
*用户devadm可以对服务器的/var/ftp/soft/目录进行上传、删除等操作
*用户salesadm可以对服务器/var/market/目录中的市场活动、销售方案等资料。
*所有同ftp上传的文件,均去除非属主位的写权限(即掩码为022)
*对服务器中没有明确授权的其他目录,禁止任何用户访问
-传输速率和并发连接控制
*最多允许150个并发用户连接,每个ip并发连接数不超过5个
*匿名用户及sales用户的下载带宽限制为100KB/s
*salesadm用户的下载,上传带宽限制为200KB/s
实验步骤:
①安装vsftp服务;
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-28.el7.x86_64.rpm
准备中... ################################# [100%]
正在升级/安装...
1:vsftpd-3.0.2-28.el7 ################################# [100%]
[root@localhost ~]# rpm -q vsftpd
vsftpd-3.0.2-28.el7.x86_64
②建立虚拟用户基础文件;
[root@localhost ~]# vim /etc/vsftpd/ftpusers.txt
devadm
123
sales
123
saleadm
123
③使用yum下载yum -y install pam* libdb-utils*--skip-broken;
[root@localhost ~]# yum -y install pam* libdb-utils*--skip-broken
④使用db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db创建数据库文件
[root@localhost ~]# db_load -T -t hash -f /etc/vsftpd/ftpusers.txt /etc/vsftpd/vsftpd_login.db
[root@localhost ~]# ls /etc/vsftpd/vsftpd_login.db
/etc/vsftpd/vsftpd_login.db
⑤修改/etc/pam.d/vsftpd文件,在第一行添加
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
两行。
[root@localhost ~]# vim /etc/pam.d/vsftpd
#%PAM-1.0
auth sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account sufficient /lib64/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
session optional pam_keyinit.so force revoke
auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed
auth required pam_shells.so
auth include password-auth
account include password-auth
session required pam_loginuid.so
session include password-auth
⑥创建nologin的用户;
[root@localhost ~]# useradd -s /sbin/nologin ftpuser
⑦先备份配置文件,编辑ftp的配置文件;
[root@localhost ~]# cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
[root@localhost ~]# vim /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
ascii_upload_enable=YES
ascii_download_enable=YES
listen=YES
guest_enable=YES
guest_username=ftpuser
pam_service_name=vsftpd
user_config_dir=/etc/vsftpd/vsftpd_user_conf
virtual_use_local_privs=YES
⑧创建一个虚拟用户文件夹/etc/vsftpd/vsftpd_user_conf,在目录下创建一个配置文件devadm,添加
⑧重启ftp服务;
[root@localhost ~]# systemctl restart vsftpd