匿名访问的FTP服务
(一)安装软件包
rpm -ivh /mnt/iso/Packages/vsftpd-2.2.2-11.el6_4.1.x86_64.rpm //安装FTP服务包
(二)修改配置文件
chown ftp /var/ftp/pub/ //把属主改为ftp,使匿名用户对该目录有写入权限
cd /etc/vsftpd
cp vsftpd.conf vsftpd.conf.back //备份主配置文件(以防万一嘛!)
grep -v "#" vsftpd.conf | grep -v "^#" > 123//过滤主配置文件(看着友好嘛!)
mv -f 123 vsftpd.conf//覆盖原主配置文件
vi /etc/vsftpd/vsftpd.conf //打开主配置文件
---------全局配置-----------(可选择的调用)
write_enable=YES //启用任何形式的写入权限(如上传删除文件等)都需要开启此项
listen=YES //是否以独立运行的方式监听服务
dirmessage_enable=YES //用户切换进入目录时显示.message文件(如果存在)的内容
xferlog_enable=YES //启用xferlog日志,默认记录到/var/log/xferlog
xferlog_std_format=YES //启用标准的xferlog日志格式,若禁用此项,将使用vsftpd自己的日志格式
connect_from_port_20=YES //允许服务器主动模式从20端口建立连接
pam_service_name=vsftpd //设置用于用户认证的PAM文件位置(/etc/pam.d目录中对应的文件名)
tcp_wrappers=YES //是否启用TCP_wrappers 主机访问控制
listen_address=192.168.1.10 //只在一个接口监听服务
listen_port=2121 //监听端口改为520(原为21)
--------允许使用FTP服务器的被动模式----------
pasv_enable=YES //允许被动模式连接
pasv_max_port=24500 //指定被动模式的上限端口
pasv_min_port=24600 //指定被动模式的下限端口
-----------限制FTP的并发数---------
max_clients=20 //限制并发客户连接最多20个
Max_per_ip=2 //限制每个IP地址的连接数最多两个(即用时下载或上传的文件数量)
--------匿名用户配置---------
anonymous_enable=YES//是否开放FTP匿名访问(默认就可以匿名访问)
anon_upload_enable=YES //是否允许匿名用户上传文件
anon_umask=022//设置匿名用户所上传文件和目录反掩码值(即文件为644,目录为755)anon_mkdir_write_enable=YES //是否允许匿名用户有创建目录的写入权限
anon_other_write_enable=YES //是否允许匿名用户有其它写入权限,如对文件改名、覆盖及删除文件等
anon_max_rate=10000 //限制匿名用户传输速率为10kB/s(单位为B)
(三)测试匿名FTP服务器
1.用FTP客户端工具(FileZilla)
2.电脑地址栏URL访问
ftp://192.168.1.20
用户验证FTP服务
(一)新建本地用户
useradd -s /sbin/nologin jack //不用登陆系统
passwd jack
(二)修改配置文件
-------本地用户配置-------
chroot_local_user=yes//是否将所有的宿主目录禁锢在其宿主目录中
local_enable=YES //是否允许本地系统用户访问
local_umask=022 //设置本地用户所上传文件和目录反掩码值(即文件为644,目录为755)
local_max_rate=20000 //限制本地用户传输速率为20kB/s(单位为B)
(三)测试本地用户FTP服务
和匿名用户验证方法一样,在此不做详解!!
(四)使用user_list用户列表文件
1.修改user_list 配置文件
vi /etc/vsftpd/ftpusers //黑名单,优先于user_list,但当配置了虚拟用户后不生效,只有user_list文件生效
vi /etc/vsftpd/user_list //只允许jack,tom,登陆FTP服务器,匿名用户也不可以登陆
jack
tom
2.修改主配置文件
-------本地用户配置-------
userlist_enable=YES //是否启用user_list用户列表文件
userlist_deny=NO //是否禁止user_list列表文件中的用户账号
基于虚拟用户的FTP服务
(一)建立虚拟用户的账号数据库
1.安装db_load工具
rpm -ivh /mnt/iso/Packages/db4-utils-4.7.25-18.el6_4.x86_64.rpm
2创建文本格式的用户名、密码列表
vi /etc/vsftpd/vuser.list
xiao//奇数行为账号
123//偶数行为密码
3.创建Berkley DB格式的数据库文件
cd /etc/vsftpd
db_load -T -t hash -f vuser.list vuser.db
file vuser.db //查看转换后的文件类型
chmod 600 vuser* //将文件权限设为600,以免数据外泄
4.添加虚拟用户的映射账号、创建FTP根目录
useradd -d /var/ftproot -s /sbin/nologin xiaohang
chmod 755 /var/ftproot
(二)为vsftpd服务添加虚拟用户支持
1.为虚拟用户建立PAM认证文件(可参考PAM默认认证文件/etc/pam.d/vsftpd)
vi /etc/pam.d/authentication
auth required pam_userdb.so db=/etc/vsftpd/vuser
account required pam_userdb.so db=/etc/vsftpd/vuser
2.修改主配置文件添加虚拟用户支持
vi /etc/vsftpd/vsftpd.conf
local_enable=YES //是否允许本地系统用户访问
anon_umask=022 //设置本地用户所上传文件和目录反掩码值(即文件为644,目录为755)
write_enable=YES //启用任何形式的写入权限(如上传删除文件等)都需要开启此项
pam_service_name=authentication//指定PAM认证文件(即vi /etc/pam.d/authentication)
guest_enable=YES //启用用户映射功能
guest_username=xiaohang//指定映射的系统用户名(用户可不用登系统)
3.重启服务,验证虚拟用户登录
service vsftpd restart
!注,如果开启了user_list用户列表,虚拟用户必须加入列表才能正常登录FTP服务器(即tom1、tom2、tom3)
(三)为不同的虚拟用户在不同家目录建立不同的配置文件
例:
tom1 家目录在 /var/ftproot/tom1 tom1要求只有读取权限
tom2 家目录在 /var/ftproot/tom2tom2要求只有读取和上传权限,上传目录权限为644
tom3 家目录在 /var/ftproot/tom3 tom3有所有权限(读取,上传,命名,删除,建文件夹),上传权限为644
1. 修改vsftpd.conf主配置文件
vi /etc/vsftpd/vsftpd.conf
------匿名配置------
anonymous_enable=YES
---------本地用户配置--------
user_config_dir=/etc/vsftpd/vdir
2. 创建虚拟目录vdir中创建三个虚拟用户配置文件
mkdir /etc/vsftpd/vdir
touch /etc/vsftpd/vdir/tom1 /etc/vsftpd/vdir/tom2 /etc/vsftpd/vdir/tom3
3.分别给虚拟用户tom1、tom2、tom3创建家目录
mkdir /var/ftproot/tom1 /var/ftproot/tom2 /var/ftproot/tom3
chown -R xiaohang.xiaohang /var/ftproot/ //把家目录属主、属组,递归改为虚拟映射用户
4. 配置各虚拟用户
tom1 的配置
vi /etc/vsftpd/vdir/tom1
local_root=/var/ftproot/tom1
tom2 的配置
vi /etc/vsftpd/vdir/tom1
anon_upload_enable=YES
anon_umask=022
local_root=/var/ftproot/tom2
tom3 的配置
vi /etc/vsftpd/vdir/tom1
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/var/ftproot/tom3
anon_umask=022
5.重启服务验证
service vsftps restart
注!开启了虚拟用户后本地用户将失效,匿名用户可以正常访问