FTP服务器的配置

来自CloudWiki
跳转至: 导航搜索

匿名账号的配置

编辑 /etc/vsftpd/vsftpd.conf

允许匿名用户登陆:

anonymous_enable=YES 

不允许本地用户登录:

local_enable=NO  

不允许匿名用户上传文件

anon_upload_enable=NO

不允许匿名用户创建目录:

anon_mkdir_write_enable=NO 

允许匿名用户下载不具有全部读权限的文件:

anon_world_readable_only=NO 

设置同时连接FTP服务器的并发用户为100

max_clients=100

设置每个用户同一时段并发下载线程数为2,同时下载2个文件

max_per_ip=2

设置匿名用户最大传输速率为20 kbit/s

anon_max_rate=20000

设置欢迎信息

ftpd_banner=Welcome to blah FTP service.



[root@cloud17 ~]# cat /etc/vsftpd/vsftpd.conf | grep -v ^#

anonymous_enable=YES  
local_enable=NO  
write_enable=YES 
local_umask=022
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_world_readable_only=NO
max_clients=100
max_per_ip=2
anon_max_rate=20000
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
ftpd_banner=Welcome to blah FTP service.
listen=YES

pam_service_name=vsftpd
userlist_enable=YES
listen=YES
tcp_wrappers=YES

注:使用匿名账户登录ftp服务器,默认的目录是/var/ftp/pub

配置本地账号

参见课本

默认情况下vsftp上传之后文件的权限是600,目录权限是700

想要修改上传之后文件的权限,有两种情况:

  • 如果使用vsftp的是本地用户,

则要修改配置文件中的 local_umask 的值

  • 如果使用vsftp的是虚拟用户,

则要修改配置文件中的 anon_umask 的值

配置虚拟账号

VSFTPD服务器提供了对虚拟用户的支持,它采用PAM认证机制实现了虚拟用户的功能。

FTP虚拟用户是FTP服务器的专有用户。

配置过程如下。

创建虚拟用户数据库文件,先创建一个存放虚拟用户及其密码的文本文件/etc/virtuserdb.txt,这个文件的金属行为虚拟用户名,偶数行为相应的密码。

stu01
stu01
stu02
stu02
stu03
stu03

执行命令: rpm -qa | grep db4-utils 看看所需的软件db4-utils.

如果没有安装,执行以下命令进行安装:

  64  mount -o loop /dev/cdrom /mnt/media
  65  ls /mnt/media
  67  cd /mnt/media
  68  ls Packages | grep db4
  76  cp Packages/db4-utils-4.7.25-16.el6.x86_64.rpm  /home
  77  cd /home
  78  rpm -ivh db4-utils-4.7.25-16.el6.x86_64.rpm

然后执行如下命令,生成虚拟用户数据库文件,并改变虚拟用户数据库文件的权限。

  81  db_load -T -t  hash -f /etc/virtuserdb.txt /etc/vsftpd/vsftpd.db
  82   chmod 600  /etc/vsftpd/vsftpd.db


编辑vsftpd的PAM认证文件

vi /etc/pam.d/vsftpd.virtual

将里面其他的都注释掉,添加下面这两行:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vftpuser

创建虚拟用户对应的真实账号及其所登录的目录,并设置相应的权限

useradd -d /var/virtuser virtuser
chmod 744 /var/virtuser

使stu03用户具有读写权限

87 mkdir /etc/vsftpd/vsftpd_user_conf

88 cd /etc/vsftpd/vsftpd_user_conf

89 vi stu03

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES

编辑/etc/vsftpd/vsftpd.conf,在最后修改配置内容如下:

guest_enable=YES
guest_username=virtuser
anon_world_readable_only=NO
pam_service_name=vsftpd.virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf

同时修改anonymous_enable=NO

保存后重启vsftpd 服务器

service vsftpd restart

验证

案例:

         假设你是一个网络管理员,以往你们公司的服务器是用WINDOWS系统做的,而你对LINUX系统的操作却非常的熟练,你现在打算把服务器的系统改为LINUX,其中服务中有一个服务FTP服务尤其重要,它作为一台文件服务器应用是非常的广范,你重做服务器后第一项工作就是利用vsftpd配置一台支持匿名用户和本地用户登录为公司里的员工所使用,若给你以下方案,你该如何去实现:


支持本地用户和虚拟用户登录,不允许匿名用户登录 允许本地用户任意写入 锁定本地用户的用户主目录 建立虚拟用户vftp1,vftp2都对应本地用户guest,且虚拟用户在用户主目录中可以写入,但不能删除 设置客户端连接时的端口为5000-6000 最大空闲会话时间长度为600秒

设置空闲数据连接的中断时间为200秒 设置客户端空闲时的自动中断时间为100秒和激活连接的时间为30秒 本地用户的最大传输速率为2MB/s 使用独占启动方式,侦听192.168.5.1接口的21号端口 设置服务器的并发连接总数为200 每个客户机的并发连接总量为5 允许192.168.5.0/24网段内的主机访问