记录一下自已做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
#vi /etc/vsftpd_user_conf/allen (设置allen的权限,为上传、浏览、下载、改名、删除、建立文件的权 限)
anon_world_readable_only=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下创建一个对应的目录即可