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

[经验分享] vsftpd基于pam_mysql的认证和hash编码的方式配置虚拟用户

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-10-23 09:50:49 | 显示全部楼层 |阅读模式
基础介绍什么的就自行搜索了。下面直接从安装配置开始。

环境:centos6
一、安装
1
yum -y install vsftpd



安装完成后可以直接启动。service vsftpd start

二、配置
使用pam_mysql或者db_load的认证方式:
a)使用db_load来设置虚拟用户
    1、在/etc/vsftpd/下创建两个目录  
1
    mkdir /etc/vsftpd/vuser_dir        #后续存放虚拟用户的配置文件



1
    mkdir /etc/vsftpd/vuser_db     #存放虚拟用户的认证文件




    2、生成数据库文件
1
2
3
4
5
6
    cd /etc/vsftpd/vuser_db/   
    vim login_vuser
    username        #依次单行用户名,密码
    password
    username
    password



1
db_load -T -t -f /etc/vsftpd/vuser_db/login_vuser /etc/vsftpd/vuser_db/vuser.db     #生成虚拟用户的数据库文件



    3、更改pam认证模块

1
2
3
4
    cd /etc/pam.d/   
    vim vsftpd.vuser
    auth    required    /lib64/security/pam_userdb.so   db=/etc/vsftpd/vuser_db/vuser       #此处注意不要加.db后缀
    account    required        /lib64/security/pam_userdb.so   db=/etc/vsftpd/vuser_db/vuser



    4、更改vsftpd的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    vim /etc/vsftpd/vsftpd.conf   
    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
    user_config_dir=/etc/vsftpd/vuser_dir
    pam_service_name=/etc/pam.d/vsftpd.vuser
    userlist_enable=NO
    tcp_wrappers=YES
    chroot_list_enable=YES      #不允许用户切换家目录
    ######################################################            
    guest_enable=YES        #开启匿名用户
    guest_username=vuser
    ######################################################         
    chown_uploads=YES       #是否允许上传的文件改变属主
    chown_username=root     #改变为哪个属主



    5、为虚拟用户创建对应的配置文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    cd /etc/vsftpd/vuser_dir/   #创建两个虚拟用户的配置文件
    vim test
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=NO
    anon_mkdir_write_enable=NO
    local_root=/some/to/path/
    ######################################################         
    vim admin
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
    anon_world_readable_only=NO
    local_root=/some/to/path/



    6、重启vsftpd测试登陆
1
2
3
    service vsftpd restart   
            
    lftp -u username,password host    #测试




b)使用pam_mysql来认证用户
    1、创建目录存储虚拟用户配置文件
    mkdir /etc/vsftpd/vuser_dir

    2、安装mysql-server mysql-devel openssl-devel pam_mysql软件
1
    yum -y install mysql-server mysql-devel openssl-devel pam_mysql #epel源里有pam_mysql模块



    3、登陆mysql创建vsftpd库文件等

1
2
3
4
5
6
7
8
9
10
11
    mysql -uroot -p password   
    create database vsftpd
    grant all on vsftpd.* to 'vsftpd'@'localhost' identified by 'vsftpd';
    grant all on vsftpd.* to 'vsftpd'@'127.0.0.1' identified by 'vsftpd';
                 
    use vsftpd;
    CREATE TABLE `users` (`id` int(10) unsigned NOT NULL AUTO_INCREMENT,`name` varchar(50) NOT NULL,`password` char(48) NOT NULL,PRIMARY KEY (`id`));
    INSERT INTO users (name,password) VALUES ('username','password'),('username','password');
    flush privileges;
                 
    mysql -uUSERNAME -pPASSWORD          #测试上述创建的用户是否有效



    4、创建mysql的pam认证文件

1
2
3
    vim vsftpd.mysql   
    auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0
    account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=password cypt=0



    5、修改vsftpd配置文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
    vim /etc/vsftpd/vsftpd.conf   
    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
    user_config_dir=/etc/vsftpd/vuser_dir
    pam_service_name=/etc/pam.d/vsftpd.mysql      #这里与上面的hash认证是有区别的
    userlist_enable=NO
    tcp_wrappers=YES
    chroot_list_enable=YES      #不允许用户切换家目录
    ######################################################            
    guest_enable=YES        #开启匿名用户
    guest_username=vuser
    ######################################################         
    chown_uploads=YES       #是否允许上传的文件改变属主
    chown_username=root     #改变为哪个属主   



    6、为虚拟用户创建对应的文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    cd /etc/vsftpd/vuser_dir/   #创建两个虚拟用户的配置文件
    vim test
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=NO
    anon_mkdir_write_enable=NO
    local_root=/some/to/path/
    ######################################################         
    vim admin
    anon_upload_enable=YES
    download_enable=YES
    anon_other_write_enable=YES
    anon_mkdir_write_enable=YES
    anon_world_readable_only=NO
    local_root=/some/to/path/



    7、重启vsftpd测试登陆

1
2
    service vsftpd restart   
    lftp -u username,password host        #测试



三、所有的针对于用户权限的配置都可以在包含的虚拟用户配置文件的路径下进行单独的配置选项。
如果其中配置好登陆不上,可以查看安全认证日志。



运维网声明 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-26533-1-1.html 上篇帖子: vsftpd结合ssl/tls来实现安全通信功能 下篇帖子: vsftp安装与配置(通过虚拟用户登录) 认证 用户
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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