zoukankan      html  css  js  c++  java
  • VsFTP+本地文件认证+SSl实现虚拟用户配置

    1.实验环境:

     

    [root@node21 ~]# cat /etc/centos-release 
    CentOS release 6.8 (Final)
    [root@node21 ~]# uname -r
    2.6.32-642.1.1.el6.x86_64

    2.安装、启动vsftpd,并设置开机启动

    [root@node21 ~]# yum install -y vsftpd
    [root@node21 ~]# /etc/init.d/vsftpd start
    Starting vsftpd for vsftpd:                    [  OK  ]
    [root@node21 ~]# netstat -anplt|grep 21
    tcp        0      0 0.0.0.0:21                  0.0.0.0:*   
    [root@node21 ~]# chkconfig vsftpd on
    [root@node21 ~]# chkconfig --list vsftpd
    vsftpd          0:off   1:off   2:on    3:on    4:on    5:on    6:off

    3.配置虚拟用户

     

    [root@node21 ~]# cd /etc/vsftpd/
    [root@node21 /etc/vsftpd]# cp vsftpd.conf vsftpd.conf_bak_`date +%F`
    [root@node21 /etc/vsftpd]# ls
    ftpusers  user_list  vsftpd.conf  vsftpd.conf_bak_2016-08-11  vsftpd_conf_migrate.sh
    
    [root@node21 /etc/vsftpd]# groupadd -g 1500 vftpuser && useradd -g vftpuser -u 1500 -s /sbin/nologin -d /vftpuser vftpuser
    [root@node21 /etc/vsftpd]# chown -R vftpuser.vftpuser /vftpuser/ 
    [root@node21 /etc/vsftpd]# chmod go+rx /vftpuser/
    [root@node21 /etc/vsftpd]# ls -ld /vftpuser/
    drwxr-xr-x 2 vftpuser vftpuser 4096 Aug 11 11:59 /vftpuser/
    [root@node21 /etc/vsftpd]#  cat > vsftpd.conf << EOF
    anonymous_enable=YES
    local_enable=YES
    write_enable=YES
    local_umask=022
    anon_upload_enable=NO
    anon_mkdir_write_enable=NO
    dirmessage_enable=YES
    xferlog_enable=YES
    connect_from_port_20=YES
    xferlog_std_format=YES
    xferlog_file=/var/log/vsftpd.log
    chroot_local_user=YES
    listen=YES
    pam_service_name=vsftpd.localfile
    userlist_enable=YES
    tcp_wrappers=YES
    guest_enable=YES
    guest_username=vftpuser
    EOF
    
    [root@node21 /etc/vsftpd]# cat > /etc/vsftpd/vsftpuser.txt << EOF
    xiao
    123
    zheng
    123
    EOF
    
    [root@node21 /etc/vsftpd]# if ! rpm -qa db4-utils >/dev/null 2>&1; then yum install db4-utils db4 -y;fi
    [root@node21 /etc/vsftpd]# db_load -T -t hash -f /etc/vsftpd/vsftpuser.txt /etc/vsftpd/vsftpuser.db
    [root@node21 /etc/vsftpd]# ll
    total 40
    -rw------- 1 root root   125 May 11 14:17 ftpusers
    -rw------- 1 root root   361 May 11 14:17 user_list
    -rw------- 1 root root   387 Aug 11 12:01 vsftpd.conf
    -rw------- 1 root root  4599 Aug 11 11:56 vsftpd.conf_bak_2016-08-11
    -rwxr--r-- 1 root root   338 May 11 14:17 vsftpd_conf_migrate.sh
    -rw-r--r-- 1 root root 12288 Aug 11 12:04 vsftpuser.db
    -rw-r--r-- 1 root root    19 Aug 11 12:03 vsftpuser.txt
    
    [root@node21 /etc/vsftpd]# pam_LocalFile=`find / -type f -name "pam_userdb.so"`
    [root@node21 /etc/vsftpd]# cat > /etc/pam.d/vsftpd.localfile << EOF
    > auth required $pam_LocalFile db=/etc/vsftpd/vsftpuser
    > account required $pam_LocalFile db=/etc/vsftpd/vsftpuser
    > EOF
    
    [root@node21 /etc/vsftpd]# echo >> vsftpd.conf
    [root@node21 /etc/vsftpd]# echo "user_config_dir=/etc/vsftpd/vftpusers" >> /etc/vsftpd/vsftpd.conf
    
    [root@node21 /etc/vsftpd]# echo >> vsftpd.conf
    [root@node21 /etc/vsftpd]# echo "user_config_dir=/etc/vsftpd/vftpusers" >> /etc/vsftpd/vsftpd.conf
    [root@node21 /etc/vsftpd]# mkdir -p /etc/vsftpd/vftpusers
    [root@node21 /etc/vsftpd]# touch /etc/vsftpd/vftpusers/{Legion,LookBack}
    [root@node21 /etc/vsftpd]# cat > /etc/vsftpd/vftpusers/Legion <<EOF
    anon_upload_enable=YES
    #允许Legion用户可以上传文件
    anon_mkdir_write_enable=YES
    #允许Legion用可以创建文件
    anon_other_write_enable=YES
    #允许Legion可以删除文件
    EOF
    [root@node21 /etc/vsftpd]# cat /etc/vsftpd/vftpusers/Legion > /etc/vsftpd/vftpusers/LookBack
    [root@node21 /etc/vsftpd]# sed -i 's/YES/NO/g' /etc/vsftpd/vftpusers/LookBack
    [root@node21 /etc/vsftpd]# service vsftpd restart
    关闭 vsftpd:                                              [确定]
    为 vsftpd 启动 vsftpd:                                    [确定]
    [root@node21 /etc/vsftpd]# ss -tnl | grep 21
    LISTEN     0      32                        *:21                       *:*
  • 相关阅读:
    SpringRMI解析3-RmiServiceExporter逻辑细节
    SpringRMI解析2-RmiServiceExporter逻辑脉络
    SpringRMI解析1-使用示例
    SpringMVC解析5-DispatcherServlet逻辑细节
    SpringMVC解析4-DispatcherServlet逻辑脉络
    SpringMVC解析3-DispatcherServlet组件初始化
    SpringMVC解析2-ContextLoaderListener
    算法笔记_074:子集和问题(Java)
    算法笔记_073:哈密顿回路问题(Java)
    算法笔记_072:N皇后问题(Java)
  • 原文地址:https://www.cnblogs.com/ityunv/p/5909441.html
Copyright © 2011-2022 走看看