FTP服务器的配置
目录
匿名账号的配置
编辑 /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网段内的主机访问