免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5660 | 回复: 9

[FTP] FC4下用pam_pwdfile.so来创建虚拟用户[原创-有参考] [复制链接]

论坛徽章:
0
发表于 2005-10-31 14:12 |显示全部楼层
应斑竹意思将标题改了,不过我认为都算是priv_sock_get_result终极解决办法(因为我不用它了嘛)

这几天都在搞virtual user 这个东东,现在终于搞好了
现把解决步骤同大家分享下:
首先大家到这里下载pam_pwdfile-0.99(装过了的朋友可跳过这步了)
http://cpbotha.net/pam_pwdfile.html

安装pam_pwdfile(很简单,我觉得)
1)
下载pam_pwdfile,下完后再做下面的

  1. #wget http://www.us.kernel.org/pub/linux/libs/pam/pre/library/Linux-PAM-0.75.tar.bz2
  2. #bunzip2 -c Linux-PAM-0.75.tar.bz2 | tar -xvf -
  3. #cd Linux-PAM-0.75/modules
  4. #tar -xzvf /你存放pam_pwdfile-0.99.tar.gz的路径/pam_pwdfile-0.99.tar.gz(解压在modules下面,不要放到其它地方哦.....)
  5. #cd ..
  6. #rm default.defs(有就删啦,无就算了)
  7. #ln -s defs/redhat.defs default.defs (在FC4下我选redhat.defs,如果你不是FC4就看着办吧)
复制代码


在Linux-PAM-0.75/下做这步(快完了......)
#make

在make这步成功了(不成功不要找我哦.....)就会在Linux-PAM-0.75/modules/pam_pwdfile-0.99/发现一个名叫pam_pwdfile.so的文件,
哈哈,我要的就是它啦,快把它复制到/lib/security/下面(这点好重要哦.....)

2)准备工作做完了,下面开始配置virtual user

2-1)vsftpd.conf配置
  1. anonymous_enable=NO
  2. local_enable=YES
  3. write_enable=NO
  4. local_umask=022
  5. dirmessage_enable=YES
  6. xferlog_enable=YES
  7. xferlog_file=/var/log/vsftpd.log
  8. xferlog_std_format=YES
  9. pam_service_name=vsftpd
  10. connect_from_port_20=YES
  11. ftpd_banner=Welcome to S_ FTP server.
  12. listen=YES
  13. listen_port=2121
  14. one_process_model=NO
  15. chroot_local_user=YES
  16. guest_enable=YES
  17. guest_username=virtualus
复制代码


2-2)修改/etc/pam.d/vsftpd(把原来的注释掉!!)
  1. auth    required pam_pwdfile.so pwdfile /etc/vsftpd/passwd_ftp
  2. account required pam_permit.so
复制代码


2-3)新建一个对虚拟用户密码进行MD5加密的脚本/etc/vsftpd/filter.pl  在里面输入如下内容:
  1. #! /usr/bin/perl -w
  2. use strict;

  3. # filter "user:cleartext" lines into "user:md5_crypted"
  4. # probably requires glibc

  5. while (<>) {
  6.     chomp;
  7.     (my $user, my $pass) = split /:/, $_, 2;
  8.     my $crypt = crypt $pass, '$1$' . gensalt(8);
  9.     print "$user:$cryptn";
  10. }

  11. sub gensalt {
  12.     my $count = shift;
  13.     my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z');
  14.     my $s;
  15.     $s .= $salt[rand @salt] for (1 .. $count);
  16.     return $s;
  17. }
复制代码


2-4)修改filter.pl属性
#chmod +x /etc/vsftpd/filter.pl

2-5)新建一个建立virtual user 的文本文件us.txt  内容为:
qq:123              (pp是虚拟用户,123是他的密码)
pp:456

2-6)将虚拟用户信息写入passwd_ftp (做了这步后就可以删除us.txt了,安全嘛,忘记密码也不要找我:em11
  1. #perl /etc/vsftpd/filter.pl ./us.txt > /etc/vsftpd/passwd_ftp
复制代码


3)重启vsftpd
#service vsftpd restart

4)第四步不用我说了吧.呵呵..........

大功告成,放弃了一个中午觉来写它,哎,又要上课了.刚好.觉得好的就顶一下吧.

[ 本帖最后由 discuz213 于 2005-11-3 17:51 编辑 ]

论坛徽章:
0
发表于 2005-10-31 16:15 |显示全部楼层
标题不准确,你是用pam_pwdfile来实现vsftpd的虚拟用户,而不是专门解决priv_sock_get_result

不过,用这个pam_pwdfile来做虚拟用户还是第一次,鼓励

论坛徽章:
0
发表于 2005-10-31 17:48 |显示全部楼层
呵呵,多谢斑竹鼓励,努力ing.........

论坛徽章:
0
发表于 2006-01-20 10:13 |显示全部楼层
虽然是参考了英文资料。不过挺不错。鼓励

论坛徽章:
0
发表于 2006-03-15 11:53 |显示全部楼层

回复 1楼 discuz213 的帖子

不行呀
!

论坛徽章:
0
发表于 2006-03-15 11:55 |显示全部楼层

回复 1楼 discuz213 的帖子

  1. #! /usr/bin/perl -w
  2. use strict;

  3. # filter "user:cleartext" lines into "user:md5_crypted"
  4. # probably requires glibc

  5. while (<>) {
  6.     chomp;
  7.     (my $user, my $pass) = split /:/, $_, 2;
  8.     my $crypt = crypt $pass, '$1$' . gensalt(8);
  9.     print "$user:$cryptn"; ////这里有错把 print "$user:$cryptn"; 改为“ print "$user:$crypt\n"; ”
  10. }

  11. sub gensalt {
  12.     my $count = shift;
  13.     my @salt = ('.', '/', 0 .. 9, 'A' .. 'Z', 'a' .. 'z');
  14.     my $s;
  15.     $s .= $salt[rand @salt] for (1 .. $count);
  16.     return $s;
  17. }
复制代码

但还是进不去!

[ 本帖最后由 wolfg 于 2006-3-15 11:58 编辑 ]

论坛徽章:
0
发表于 2006-03-15 12:00 |显示全部楼层
原帖由 ssrehngjg 于 2006-3-15 11:55 发表
还是进不去

怎么叫进不去?你是怀疑这个生成密码的脚本有问题吗?

下次发代码的话注意用[code]标记,最好也禁用Smilies

论坛徽章:
0
发表于 2006-04-04 16:56 |显示全部楼层
learning

论坛徽章:
0
发表于 2013-03-14 12:51 |显示全部楼层
ilu213

论坛徽章:
0
发表于 2013-03-14 13:16 |显示全部楼层
我用vsftpd 自带的pam 就可以啊,为什么还要下载第三方 pam 文件
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP