Red

    技术2024-08-23  134

    一、安装和启动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了!

     

     

    最新回复(0)