记录一下自已做vsftp的经过
一、安装vsftp,首先得有安装包,默认在系统光盘的中有,rhel4中在第一张光盘中,名称为:vsftpd-2.0.1*;
在centos中直接用yum命令 :yum -y install vsftpd* ;yum -y install db4*
查询一下是否安装
#rpm -q vsftpd    (结 果显示未安装)
#rpm -ivh vsftpd-2.0.1*.rpm
#grep -v '#' /etc/vsftpd/vsftpd.conf
#cp /etc/vsftpd/vsftpd.conf /etc/vsftpd/vsftpd.conf.bak
#vi /etc/vsftpd/vsftpd.conf
anonymous_anonymous_enable=YES
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_std_format=YES
listen=YES
chroot_local_user=YES     (锁定用户目录,不让其切换)
guest_enable=YES                (添加需拟用户配置项)
guest_username=virtual     (添加需拟用户配置项)
user_config_dir=/etc/vsftpd_user_conf
listen=YES

pam_service_name=vsftpd.vu   (默认为vsftpd,目录在/etc/pam.d/vsftpd)
userlist_enable=YES
tcp_wrappers=YES
保出退出
建立虚拟用户
#vi longins.txt (建立虚拟用户口令文件)
rose
123456pw
allen
pw123456
保存退出
#db_load -T -t hash -f longins.txt /etc/vsftpd/vsftpd_login.db  (生成vsftpd的认证文件,这里可能会出现问题,如没有安装db4的rpm包)
#chmod 600 /etc/vsftpd/vsftpd_login.db   (给文件授予只对root用户有读写的权限)
#vi /etc/pam.d/vsftpd.vu                              ( 建立虚拟用户所需的PAM配置文件)
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
添加这两行,保存退出
(如果使用默认的认证文件,其目录/etc/pam.d/vsftpd,将以上两行添加在最上面,或者将其余内容注释掉)
#useradd -d /home/ftpsite virtual    (建立虚拟用户及要访问的目录并设置相应的权限,账号为 virtual,
指定的宿主目录为/home/ftpsite,设置目录权限为700)
#chmod 700 /home/ftpsite




(对不同虚拟用户设置不同的权限)
#mkdir /etc/vsftpd_user_conf     (创建主配置文件,这项需要在/etc/vsftpd/vsftpd.conf中添加
user_config_dir=/etc/vsftpd_user_conf                                                
#vi /etc/vsftpd_user_conf/rose     (设置rose用户的权限,为浏览、下载的权限)
anon_world_readable_on

ly=NO

#vi /etc/vsftpd_user_conf/allen    (设置allen的权限,为上传、浏览、下载、改名、删除、建立文件的权 限)
anon_world_readable_on ly=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
保出退出
重启vsftp服务
service vsftpd restart
分别用两个用户测试,OK


配置IP访问限制

首先在linux下,特别是没有图形界面的情况下配置服务器真的是很痛苦..

1、如何限制ip可以访问ftp

在/etc/hosts.allow添加

vsftpd:192.168.1.4(具体根据你允许访问ftp的ip)

在/etc/hosts.deny添加

vsftpd:ALL

2、关于上传文件权限为600问题

在/etc/vsftpd/vsftpd.conf添加file_open_mode=0775(设置为你想要的mode即可)

网上很多文章对这个问题都答不到要点,害得我整了半天

3、pasv和port模式

如果您的ftp服务器防火墙不方便开放端口段的话,我建议你最好还是不要使用pasv

如果要使用被动模式的话,在服务器防火墙要开放对应的端口

例如pasv_min_port=50000

pasv_max_port=60000

你就要在/etc/sysconfig/iptables添加-A INPUT -p tcp -m tcp --dport 50000:60000 -j ACCEPT

4、所有配置项都是采用key=value格式“=”左右不能有空格,所有单词全部小写

5、如果要把用户限制在他的对应目录里

                   chroot_local_user=NO             
                   chroot_list_enable=YES
                    
#以上两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用                           
chroot_local_user=YES
                              

                   listen=yes               
#监听/被动模式
                   listen_port=21        #监听端口

                  
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list       #虚拟用户名单保存在文件/etc/vsftpd/vsftpd.chroot_list 中
                  
user_config_dir=/etc/vsftpd/vsftpd_user_conf   #每个虚拟用户名的更加详细的培植保存在/etc/vsftpd/vsftpd_user_conf 中

虚拟用户其他设置

/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
写入:
local_root = /var/FTP/子目录名
然后在/var/FTP下创建一个对应的目录即可