小小寒舍—vsftpd服务攻略之锋芒毕露
案例
公司需求:
公司为了宣传最新的产品信息,欲搭建FTP服务器,对市民开放共享目录,给予下载权限(下载速度为100kb/s),禁止上传。对公司的合作单位能够上传和下载(下载速度为500kb/s),但不可以删除数据。并要求登录到ftp服务器的最大链数为100,每个ip最大链接数5,用户空闲时间超过限值为5分钟
分析:
要对不同用户进行不同的权限限制且FTP服务器需要实现用户的审核。但虑到服务器的安全性,需用虚拟帐号验证方式,并对不同的虚拟帐号权限设置,即可满足对公司要求。为了保证服务器的性能,还需要根据用户的等级,限制客户端的连接数及下载速度。
解决方案:
注意
把防火墙和selinux关了,以免影响后面的试验
#iptables –F
#setenforce 0
1,创建用户数据库
#创建用户文本文件
[root@station18 ~]# touch  vfile
[root@station18 ~]# vim vfile
vip
123
uvip
321
#生成数据库
~~~我们需要装db4-utils-4.3.29-9.fc6.i386.rpm包,才能使用db_load工具~~~
[root@station18 ~]# yum install db4-*
Loading "rhnplugin" plugin
Loading "installonlyn" plugin
This system is not registered with RHN.
RHN support will be disabled.
Setting up Install Process
Setting up repositories
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for db4-java to pack into transaction set.
db4-java-4.3.29-9.fc6.i38 100% |=========================|  63 kB    00:00    
---> Package db4-java.i386 0:4.3.29-9.fc6 set to be updated
---> Downloading header for db4-tcl to pack into transaction set.
db4-tcl-4.3.29-9.fc6.i386 100% |=========================|  14 kB    00:00    
---> Package db4-tcl.i386 0:4.3.29-9.fc6 set to be updated
---> Downloading header for db4-utils to pack into transaction set.
db4-utils-4.3.29-9.fc6.i3 100% |=========================|  17 kB    00:00     
---> Package db4-utils.i386 0:4.3.29-9.fc6 set to be updated
---> Downloading header for db4-devel to pack into transaction set.
db4-devel-4.3.29-9.fc6.i3 100% |=========================| 112 kB    00:00    
---> Package db4-devel.i386 0:4.3.29-9.fc6 set to be updated
--> Running transaction check
 
Dependencies Resolved
 
=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 db4-devel               i386       4.3.29-9.fc6     base              2.0 M
 db4-java                i386       4.3.29-9.fc6     base              1.7 M
 db4-tcl                 i386       4.3.29-9.fc6     base              1.0 M
 db4-utils               i386       4.3.29-9.fc6     base              119 k
 
Transaction Summary
=============================================================================
Install      4 Package(s)        
Update       0 Package(s)        
Remove       0 Package(s)        
 
Total download size: 4.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/4): db4-java-4.3.29-9. 100% |=========================| 1.7 MB    00:00    
(2/4): db4-tcl-4.3.29-9.f 100% |=========================| 1.0 MB    00:00    
(3/4): db4-utils-4.3.29-9 100% |=========================| 119 kB    00:00    
(4/4): db4-devel-4.3.29-9 100% |=========================| 2.0 MB    00:00    
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: db4-devel                    ######################### [1/4]
  Installing: db4-java                     ######################### [2/4]
  Installing: db4-tcl                      ######################### [3/4]
  Installing: db4-utils                    ######################### [4/4]
 
Installed: db4-devel.i386 0:4.3.29-9.fc6 db4-java.i386 0:4.3.29-9.fc6 db4-tcl.i386 0:4.3.29-9.fc6 db4-utils.i386 0:4.3.29-9.fc6
Complete!
生成库文件
[root@station18 ~]# db_load -T -t hash -f vfile /etc/vsftpd/vfile.db
#修改数据库文件访问权限
[root@station18 ~]# chmod 600 /etc/vsftpd/vfile.db
[root@station18 ~]# ls -ld /etc/vsftpd/vfile.db
-rw------- 1 root root 12288 Nov 12 10:28 /etc/vsftpd/vfile.db
2,配置pam文件
#打开配文/etc/pam.d/vsftpd
#%PAM-1.0
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      system-auth
account    include      system-auth
session    include      system-auth
session    required     pam_loginuid.so
#文件/etc/pam.d/vsftpd修改后 内容如下
#%PAM-1.0
#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     system-auth
#account    include     system-auth
#session    include     system-auth
#session    required     pam_loginuid.so
auth        required     pam_userdb.so      db=/etc/vsftpd/vfile
account            required     pam_userdb.so      db=/etc/vsftpd/vfile
3,创建虚拟账号对应的系统用户
[root@station18 ~]# useradd -s /sbin/nologin  vipuser
[root@station18 ~]# useradd -s /sbin/nologin  uvipuser
4,修改配文
#修改vsftpd.conf主配文
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
connect_timeout=300
pam_service_name=vsftpdvsftpd使用的PAM模块为vsftpd
user_config_dir=/etc/vsftpd/vuser:虚拟帐号主目录为/vuser
max_clients=100FTP服务器最大接入客户端数为100
max_per_ip=5:每个IP地址最大连接数为5
#建立虚拟账号的配文
[root@station18 ~]# mkdir  /etc/vsftpd/vuser
[root@station18 ~]# vim /etc/vsftpd/vuser/vip
[root@station18 ~]# vim /etc/vsftpd/vuser/uvip
#vim  /etc/vsftpd/vuser/vip   进行如下编辑
guest_enable=yes:开启虚拟帐号登录
guest_username=vipuser:设置ftp对应的系统帐号为vipuser
anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统
rite_enable=yes:允许在文件系统写入权限
anon_mkdir_write_enable=yes:允许创建文件夹
anon_upload_enable=yes:开启匿名帐号的上传功能
anon_max_rate=500000:限定传输速度为500KB/s
#vim  /etc/vsftpd/vuser/uvip   进行如下编辑
guest_enable=yes:开启虚拟帐号登录
guest_username=uvipuser:设置ftp对应的系统帐号为uvipuser
anon_world_readable_only=no:允许匿名用户浏览器整个服务器的文件系统anon_max_rate=100000:限定传输速率为100KB/s
 ~~~vsftpd对于文件传输速度限制是在80%~120%之间滚动~~~
5,重启服务
[root@station18 ~]# service  vsftpd restart
Shutting down vsftpd:                                      [  OK  ]
Starting vsftpd for vsftpd:                                [  OK  ]
[root@station18 ~]#
#配置完成