一、安装和启动1.可用以下命令查询是否已安装: 程序代码#rpm -qa|grep vsftpdvsftpd-2.0.5-10.e15
如果出现以上结果,表明已安装。如果未安装,可在Red Hat Enterprise Linux 5安装光盘中找到安装包,使用命令: 程序代码#rpm -ivh vsftp-2.0.5-10.e15.i386.rpm
2.启动和关闭启动命令为: 程序代码#service vsftpd start
停止命令为: 程序代码#service vsftpd stop
重启命令为: 程序代码#service vsftpd restart
查询运行状态: 程序代码#service vsftpd statusvsftpd (pid 3571) 正在进行……
二、Vsftpd服务器配置Vsftpd的主配置文件有三个:/etc/vsftpd/vsftpd.conf/etc/vsftpd.ftpusers/etc/vsftpd.user_list修改前建议使用“cp”命令备份这三个文件,修改完成后需要重启vsftpd服务才能使设置生效。
(一)匿名用户访问配置1.启动后FTP服务器就可以登陆了 匿名用户在text模式下,要用用户名ftp,密码也是ftp,来进行登陆;如果是用FTP工具来匿名登陆的话,用户名和密码都为:anonymous。默认情况下匿名用户可以访问和下载,但不能进行上传、删除、新建目录、执行文件等操作! 本地用户可以登陆,并可以离开自家目录至有权访问的其他目录,并在权限允许的情况下进行上传和下载,写在文件/etc/vsftpd.ftpusers中的本地用户禁止登录。
2.允许匿名用户上传文件需要修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。anon_upload_enable=YESanon_mkdir_write_enable=YES重启vsftpd服务。
3.仅允许匿名用户访问指需要限制本地账号访问,修改/etc/vsftpd/vsftpd.conf文件,把以下两项前的“#”去掉。local_enable=YESwrite_enable=YES重启vsftpd服务。
4.设置欢迎信息修改/etc/vsftpd/vsftpd.conf文件ftpd_banner=**********即为设置的欢迎信息。重启vsftpd服务。
5.设置最大传输率修改/etc/vsftpd/vsftpd.conf文件设置匿名用户的最大传输速率为20Kbps,应添加以下语句:anon_max_rate=20000设置本地账号的最大传输速率为1Mbps,应添加以下语句:local_max_rate=1000000
6.设置服务器最大并发数和用户最大线程数修改/etc/vsftpd/vsftpd.conf文件设置服务器最大并发数为99,应添加以下语句:max_clients=99设置用户同一时段的最大连接数,应添加以下语句:max_per_ip=5
7.禁止某些IP段的主机匿名访问服务器修改vsftpd.conf文件,确认有如下语句:tcp_wrappers=YES修改/etc/hosts.allow文件,增加1行命令:vsftpd:192.168.1.1:DENY表示限制IP为192.168.1.1的主机访问FTP服务器。重启vsftpd服务。
8.用ASCII方法传送数据修改/etc/vsftpd/vsftpd.conf文件,ascii_upload_enable=YESascii_download_enable=YES重启vsftpd服务。
9.设置数据传输中断间隔时间修改/etc/vsftpd/vsftpd.conf文件,idle_session_timeout=600表明空闲会话时间为600秒。data_connection_timeout=120表明数据连接超时时间为120秒。重启vsftpd服务。
(二)本地用户访问配置1.使用用户列表进行访问控制修改/etc/vsftpd/vsftpd.conf文件,按以下语句设置:userlist_enable=NO表明vsftpd.ftpuser文件中的用户将被禁止访问FTP服务器。userlist_enable=YESuserlist_deny=NO表明仅允许vsftpd.user_list文件中的用户访问FTP服务器。userlist_enable=YESuserlist_deny=YES表明vsftpd.ftpuser和vsftpd.user_list文件中的用户都不能访问FTP服务器。
2.限制用户目录的访问权限修改/etc/vsftpd/vsftpd.conf文件chroot_local_user=YES表明用户登录后不能访问自己目录以外的其它目录或文件。
3.修改默认端口FTP服务器默认的端口是21,如需要修改端口,请修改/etc/vsftpd/vsftpd.conf文件,以下语句:listen_port=4444表明FTP服务器的端口号为4444,应该尽量大于4000。
第二种--------------------------------------
结合网上教程,实践了一下Vsftpd的安装,首先下载vsftpd的rpm包。
比如放在/tmp/soft下,首先确认没有安装过vsftp,
#rpm -qa|grep vsftp
如果没有输出则表示没有安装,可以接下来操作。
#cd /tmp/soft#rpm -ivh vsftpd-2.0.5.i386.rpm安装完后可以用service vsftpd restart看能不能启动服务,能正常启动再接下来配置。
vsftpd的文件结构:
/usr/sbin/local/vsftpd (tar方式) /usr/sbin/vsftpd (rpm方式) --vsftpd主程序/etc/rc.d/init.d/vsftpd --启动脚本 (rpm方式才有)/etc/vsftpd.conf (tar方式) /etc/vsftpd/vsftpd.conf (rpm方式) --主配置文件/etc/pam.d/vsftpd (rpm安装方式) --PAM认证文件(注:tar方式需手动复制)/etc/vsftpd.ftpusers (rpm安装方式才有) --禁止使用vsftpd用户列表/etc/vsftpd.user_list (rpm方式才有) --禁止或允许使用vsftpd用户列表/var/ftp --匿名用户主目录/var/ftp/pub --匿名用户下载目录
首先要创建一个用户,因为安全起见,将设置不允许本地用户登录,建立虚拟用户来操作FTP,但是在验证时需要一个系统用户的身份来读取数据。比如新建的用户为 vsftpdguest,
#useradd vsftpdguest
用户建立后,虚拟用户登录的主目录就是 /home/vsftpdguest
配置/etc/vsftpd/vsftpd.confvirtual_use_local_privs=YESlocal_enable=YESguest_username=vsftpdguestchroot_local_user=NOchroot_list_enable=YESchroot_list_file=/etc/vsftpd.chroot_listpam_service_name=ftp.vu
目前为止/etc/vsftpd.chroot_list和ftp.vu尚没有建立,需要手工建。vsftpd.chroot_list是限制用户在本目录的用户名列表,ftp.vu的内容如下:auth required /lib/security/pam_userdb.so db=/etc/vsftpd_loginaccount required /lib/security/pam_userdb.so db=/etc/vsftpd_login
因为数据文件vsftpd_login尚没有,所以要建立。
新建文件/tmp/logins.txt,内容格式如下:username1password1username2password2...
接下来生成db数据文件:#db_load -T -t hash -f /tmp/logins.txt /etc/vsftpd_login.db
注:这一步需要安装db4_utils-xxxxx.rpm,安装包可以在光盘里找到,否则db_load命令不能使用
虚拟用户如果需要个人配置,在配置文件中加入:
user_config_dir=/etc/vsftpd/vsftpd_user_conf
建立/etc/vsftpd/vsfptd_user_conf目录,在目录下建立与虚拟用户名同名的文件。在文件中加入配置如:
local_root=/home/xxxx设置虚拟用户的根目录为/home/xxxx,这个目录的权限要设置为vsftpdguest
基本上设置完成,如果
cannot change directory:/home/***
ftp服务器连接失败,错误提示:
500 OOPS: cannot change directory:/home/*******
500 OOPS: child died
解决方法:
在终端输入命令:
setsebool ftpd_disable_trans 1
service vsftpd restart
就OK了!