设为首页 收藏本站
查看: 1125|回复: 0

[经验分享] vsftp安装实战(成功)

[复制链接]

尚未签到

发表于 2015-11-6 12:42:39 | 显示全部楼层 |阅读模式
我使用的是vsftpd-2.0.5.tar.gz
首先解压缩:tar -zxfv vsftpd-2.0.5.tar.gz
编译前请打开:builddefs.h
            #ifndef VSF_BUILDDEFS_H
            #define VSF_BUILDDEFS_H
           #undef VSF_BUILD_TCPWRAPPERS
           #define VSF_BUILD_PAM
           #undef VSF_BUILD_SSL

这里#define VSF_BUILD_PAM指定了要vsftpd支持pam,所以不要改成#undef VSF_BUILD_PAM
并将所有undef 改为define
检查完builddefs.h后,make编译,用ldd命令检查生成的vsftpd文件有没有加载/lib/libpam.so.0
# ldd vsftpd
       引用:
libwrap.so.0 => /usr/lib/libwrap.so.0 (0x003f4000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x003a4000)
        libpam.so.0 => /lib/libpam.so.0 (0x00c38000)
        libdl.so.2 => /lib/libdl.so.2 (0x00ac6000)
        libresolv.so.2 => /lib/libresolv.so.2 (0x00c14000)
        libutil.so.1 => /lib/libutil.so.1 (0x00479000)
        libcap.so.1 => /lib/libcap.so.1 (0x00af1000)
        libssl.so.4 => /lib/libssl.so.4 (0x0036e000)
        libcrypto.so.4 => /lib/libcrypto.so.4 (0x0022f000)
        libc.so.6 => /lib/tls/libc.so.6 (0x0099a000)
        libaudit.so.0 => /lib/libaudit.so.0 (0x00c29000)
        /lib/ld-linux.so.2 (0x00981000)
        libgssapi_krb5.so.2 => /usr/lib/libgssapi_krb5.so.2 (0x0031a000)
        libkrb5.so.3 => /usr/lib/libkrb5.so.3 (0x00123000)
        libcom_err.so.2 => /lib/libcom_err.so.2 (0x0011e000)
        libk5crypto.so.3 => /usr/lib/libk5crypto.so.3 (0x00207000)
        libz.so.1 => /usr/lib/libz.so.1 (0x00bce000)
   
如果没有libpam.so.0  那么需要安装pam-devel包:


       如果没有libssl.so.4  那么需要安装openssl 包  然后重新编译vsftpd :
                                            make clean
                                            make
1. 编译成功后将以下文件复制到指定位置:
                                       cp vsftpd /usr/local/sbin/vsftpd    #这个是vsftpd执行文件,放在哪里无所谓,复制不复制都可以
                                       cp vsftpd.conf.5    /usr/local/share/man/man5
                                       cp vsftpd.8    /usr/local/share/man/man8
                                        cp vsftpd.conf   /etc/vsftpd/           #vsftpd主配置文件
                                       cp RedHat/vsftpd.pam /etc/pam.d/ftp           #PAM验证文件,以允许本地用户登录VSFTPD
2. 添加一个系统用户作为FTP虚拟用户,在MYSQL中设置虚拟用户账号和密码
   # useradd vsftpdguest
   # chown /var/FTP vsftpdguest.vsftpdguest
   # chmod 700 /var/FTP
   为确保安全 修改 /etc/passwd文件,将其中vsftpdguest对应的条目改为:
         vsftpdguest:x:511:511::/var/FTP:/sbin/nologin
   使vsftpdguest账号只能作为FTP用户,而不能作为一个系统用户登陆。
   下面创建用于登陆验证的mysql数据库:
         mysql>create database vsftpdvu;
  mysql>use vsftpdvu;
  mysql>create table users(name char(16) binary,passwd char(16) binary);
  mysql>insert into users (name,passwd) values ('xiaotong',password('qqmywife'));
  mysql>insert into users (name,passwd) values ('xiaowang',password('ttmywife'));
  
       mysql>
grant select on vsftpdvu.users to vsftpdguest@localhost
       mysql>set password for sftpdguest@localhost =password('123456')
       mysql>quit
                    
3. 配置pam_mysql
  
编辑/etc/pam.d/ftp文件:
     内容修改如下:
  auth required /lib/security/pam_mysql.so user=vsftpdguest passwd=123456 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
  account required
/lib/security/pam_mysql.so user=vsftpdguest passwd=123456 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=2
以上粗体部分意义依次如下:pam_mysql安全严整模块包的位置,mysql数据库用户名,密码,数据库服务器地址,数据库名,虚拟用户表,虚拟用户名称列,虚拟用户密码列,加密方式:0为明码,1为操作系统RAS加密,2为MYSQL password方法加密

4. 配置vsftpd.conf
                  
anonymous_enable=NO            #禁止匿名
                   local_enable=YES                       #允许本地登录
                   write_enable=YES                       #允许写,如需上传,则必须
                   local_umask=027                        #将上传文件的权限设置为:777-local_umask
                   anon_upload_enable=YES          #允许虚拟用户和匿名用户上传
                   anon_other_write_enable=YES  #允许虚拟用户和匿名用户修改文件名和删除文件
                   dirmessage_enable=YES           
                   xferlog_enable=YES                      #打开日志记录
                   connect_from_port_20=YES
                   xferlog_file=/var/log/vsftpd.log     #日志存放位置
                   xferlog_std_format=YES              #标准日志格式
                   idle_session_timeout=600        #空闲连接超时
                   data_connection_timeout=120
                   ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
                   guest_enable=yes                       #允许虚拟用户
                   guest_username=vsftpdguest  #虚拟用户使用的系统账号
                   virtual_use_local_privs=YES     #虚拟用户拥有本地系统权限
                   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 中
5. 虚拟用户其他设置
      在
/etc/vsftpd/vsftpd.chroot_list 文件中写入允许登陆的虚拟用户名称,每行一个
      在/etc/vsftpd/vsftpd_user_conf 文件夹中创建一个以虚拟用户用户名命名的文件,
      写入:
local_root = /var/FTP/子目录名
      然后在/var/FTP下创建一个对应的目录即可
                  
6. 安装完成后出现两个问题:
1: 500 OOPS: vsftpd: both local and anonymous access disabled!
    通过在vsftpd.conf中将local_enable=YES解决
2 : [右] 500 OOPS: cannot locate user entry:ftpsecure
     [右] 500 OOPS: child died
3.  可以上传空文件夹,可以下载,但是不能上传文件
      这是因为公司硬件防火墙设置导致的,将ftp上传的流拦截掉了,所以导致传输错误.



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135889-1-1.html 上篇帖子: dos下登录fedora下的vsftp失败 下篇帖子: Redhat Linux下用vsftp配置ftp服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表