蝙蝠岛资源网 Design By www.hbtsch.com
vsftpd的虚拟用户配置:PAM + PgSQL + FreeBSD-4
(1.0beta,欢迎debug,本人也会随时更新)
vsftpd可能是世界上最好的ftpd。它在linux世界非常流行,安全,性能高。
本文的目的是让PgSQL存储你的vsftp的虚拟用户和密码,通过一个叫做pam的东东来认证。
零、简述PAM原理。
如果你已经对pam有所了解,请跳过,我知道的可能还不如你多。你不感兴趣也请跳过,因为不看这个也可配置。
代码:
用户 <-> vsftpd <-> PAM模块 <-> 用户和密码数据库
vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM。大家对于PAM,也许有些陌生,但是一直在用。所谓PAM,英文是:Pluggable Authentication Modules,可拔插认证模块(不知道这样翻译对不对)。看见plug这个关键字,就知道是很灵活的。
现在几乎所有daemon程序一般都是用PAM来进行认证的,包括telnet/sshd/imapd,甚至你的login,都是用PAM。在 fbsd 4上的朋友,你可以打ps -ax|grep pam,你会发现login了多少个控制台,就会有多少个写着pam的进程。
PAM的最大好处是灵活。它不管你的用户和密码用什么数据格式存储(数据库也好,通常用的密码文件也好),只要有相应的PAM模块就可以存储。比如说,大家不仅可以用vsftpd + PgSQL做用户登陆验证,只要你喜欢你还可以用MySQL,Oracle,LDAP数据库存储用户数据,只要有相应的PAM就可以。所有的daemon 都可以用一个后台数据库来做用户验证登陆,包括telnet/sshd等等。
pam的配置机制在不同版本的freebsd上有差异。
freebsd-4放在/etc/pam.conf,一个文件记录所有pam服务。
freebsd-5放在/etc/pam.d,/usr/local/etc/pam.d。每个pam服务由一个独立的文件记录。
本文不打算详细叙述PAM的配置。PAM的配置不是很难,毕竟,只是要你配置一些参数,不是叫你开发一个pam模块出来。而且本文的篇幅所限,偶刚刚知道的一点东西希望能够起到抛砖引玉的作用。等偶对pam再玩得深入和熟一点的时候,再写一篇关于深入一点关于pam的东东?
准备开始:提要
简单讲讲要用到的配置文件的作用。
引用:
/etc/pam.conf #pam服务的配置
/etc/pam_pgsql.conf #pam_pgsql.so的配置
/usr/local/etc/vsftpd.conf #vsftpd的配置
一、安装vsftpd,PostgreSQL,pam_pgsql。
我都是使用port来安装的,请大家用port/package来安装,不要自己下载源码来编译,否则可能根据本文的方法可能无法正常使用。其中vsftpd和pam-pgsql一定要用port/package来安装。
以下是他们的port目录:
引用:
/usr/ports/ftp/vsftpd
/usr/ports/databases/postgresql7
/usr/ports/security/pam-pgsql
安装:只要cd进去,然后make install就OK了。
二、PostgreSQL安装(如果你已经有了PostgreSQL,不需要看这一节)
简单提提用port来装PostgreSQL的过程,因为BSD版上的装PgSQL的方法都是自己下载源码编译的。我是用port来编译安装,因为这是fbsd推荐的安装方法,而且安装的软件会根据bsd的hier(目录结构)来安装,比较便于管理。
当用port来安装好PostgreSQL,默认的数据库管理用户是pgsql(port里头的安装程序自动添加的),其他系统默认的是postgres。初始化PostgreSQL的程序如下:
1、初始数据库。请先用root登陆或者su到root。然后,打命令:
代码:
# su pgsql
# initdb
正常初始化的应该有以下提示:
引用:
This database system will be initialized with username "pgsql".
This user will own all the data files and must also own the server process.
Creating directory /usr/local/pgsql/data
Creating directory /usr/local/pgsql/data/base
Creating directory /usr/local/pgsql/data/global
Creating directory /usr/local/pgsql/data/pg_xlog
Creating template1 database in /usr/local/pgsql/data/base/1
[snip]
Success. You can now start the database server using:
/usr/local/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
2、启动PostgreSQL
代码:
# /usr/local/etc/rc.d/010.pgsql.sh start
更多详细的帮助,请看freebsddiary上面的一篇用port来安装PostgreSQL的文章,全英文。
http://www.freebsddiary.org/postgresql.php
三、设定用户数据库。
我是PgSQL的初学者,命令行用得不熟,因而要借助phpPgAdmin来管理数据库。
1、先创建一个数据库,叫做mydb。
2、建立一个数据表叫做ftp,用来存储用户名和帐号。这个数据表的结构是pam_pgsql模块规定的最简单的表了,每一个字段都是必须的,你可以扩展这个表的结构,但是不要删除这些字段。我导出了一个SQL脚本,方便大家创建。
代码:
CREATE TABLE "ftp" (
"ID" int4 DEFAULT nextval('public."ftp_ID_seq"') NOT NULL ,
"usr" varchar(32) NOT NULL ,
"pass" varchar(32) NOT NULL ,
"expired" bool DEFAULT false NOT NULL ,
"newtok" bool DEFAULT false NOT NULL
);
请创建一些用户,方便调试:
这是我的ftp表,这些记录名字都是随便起的。但请注意只有expired为f(假)的可以成功登陆。
代码:
ID | usr | pass | expired | newtok 上一页12 下一页 阅读全文
(1.0beta,欢迎debug,本人也会随时更新)
vsftpd可能是世界上最好的ftpd。它在linux世界非常流行,安全,性能高。
本文的目的是让PgSQL存储你的vsftp的虚拟用户和密码,通过一个叫做pam的东东来认证。
零、简述PAM原理。
如果你已经对pam有所了解,请跳过,我知道的可能还不如你多。你不感兴趣也请跳过,因为不看这个也可配置。
代码:
用户 <-> vsftpd <-> PAM模块 <-> 用户和密码数据库
vsftpd用了一种很聪明同时也是unix/linux规范的方法来认证用户,就是PAM。大家对于PAM,也许有些陌生,但是一直在用。所谓PAM,英文是:Pluggable Authentication Modules,可拔插认证模块(不知道这样翻译对不对)。看见plug这个关键字,就知道是很灵活的。
现在几乎所有daemon程序一般都是用PAM来进行认证的,包括telnet/sshd/imapd,甚至你的login,都是用PAM。在 fbsd 4上的朋友,你可以打ps -ax|grep pam,你会发现login了多少个控制台,就会有多少个写着pam的进程。
PAM的最大好处是灵活。它不管你的用户和密码用什么数据格式存储(数据库也好,通常用的密码文件也好),只要有相应的PAM模块就可以存储。比如说,大家不仅可以用vsftpd + PgSQL做用户登陆验证,只要你喜欢你还可以用MySQL,Oracle,LDAP数据库存储用户数据,只要有相应的PAM就可以。所有的daemon 都可以用一个后台数据库来做用户验证登陆,包括telnet/sshd等等。
pam的配置机制在不同版本的freebsd上有差异。
freebsd-4放在/etc/pam.conf,一个文件记录所有pam服务。
freebsd-5放在/etc/pam.d,/usr/local/etc/pam.d。每个pam服务由一个独立的文件记录。
本文不打算详细叙述PAM的配置。PAM的配置不是很难,毕竟,只是要你配置一些参数,不是叫你开发一个pam模块出来。而且本文的篇幅所限,偶刚刚知道的一点东西希望能够起到抛砖引玉的作用。等偶对pam再玩得深入和熟一点的时候,再写一篇关于深入一点关于pam的东东?
准备开始:提要
简单讲讲要用到的配置文件的作用。
引用:
/etc/pam.conf #pam服务的配置
/etc/pam_pgsql.conf #pam_pgsql.so的配置
/usr/local/etc/vsftpd.conf #vsftpd的配置
一、安装vsftpd,PostgreSQL,pam_pgsql。
我都是使用port来安装的,请大家用port/package来安装,不要自己下载源码来编译,否则可能根据本文的方法可能无法正常使用。其中vsftpd和pam-pgsql一定要用port/package来安装。
以下是他们的port目录:
引用:
/usr/ports/ftp/vsftpd
/usr/ports/databases/postgresql7
/usr/ports/security/pam-pgsql
安装:只要cd进去,然后make install就OK了。
二、PostgreSQL安装(如果你已经有了PostgreSQL,不需要看这一节)
简单提提用port来装PostgreSQL的过程,因为BSD版上的装PgSQL的方法都是自己下载源码编译的。我是用port来编译安装,因为这是fbsd推荐的安装方法,而且安装的软件会根据bsd的hier(目录结构)来安装,比较便于管理。
当用port来安装好PostgreSQL,默认的数据库管理用户是pgsql(port里头的安装程序自动添加的),其他系统默认的是postgres。初始化PostgreSQL的程序如下:
1、初始数据库。请先用root登陆或者su到root。然后,打命令:
代码:
# su pgsql
# initdb
正常初始化的应该有以下提示:
引用:
This database system will be initialized with username "pgsql".
This user will own all the data files and must also own the server process.
Creating directory /usr/local/pgsql/data
Creating directory /usr/local/pgsql/data/base
Creating directory /usr/local/pgsql/data/global
Creating directory /usr/local/pgsql/data/pg_xlog
Creating template1 database in /usr/local/pgsql/data/base/1
[snip]
Success. You can now start the database server using:
/usr/local/bin/postmaster -D /usr/local/pgsql/data
or
/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start
2、启动PostgreSQL
代码:
# /usr/local/etc/rc.d/010.pgsql.sh start
更多详细的帮助,请看freebsddiary上面的一篇用port来安装PostgreSQL的文章,全英文。
http://www.freebsddiary.org/postgresql.php
三、设定用户数据库。
我是PgSQL的初学者,命令行用得不熟,因而要借助phpPgAdmin来管理数据库。
1、先创建一个数据库,叫做mydb。
2、建立一个数据表叫做ftp,用来存储用户名和帐号。这个数据表的结构是pam_pgsql模块规定的最简单的表了,每一个字段都是必须的,你可以扩展这个表的结构,但是不要删除这些字段。我导出了一个SQL脚本,方便大家创建。
代码:
CREATE TABLE "ftp" (
"ID" int4 DEFAULT nextval('public."ftp_ID_seq"') NOT NULL ,
"usr" varchar(32) NOT NULL ,
"pass" varchar(32) NOT NULL ,
"expired" bool DEFAULT false NOT NULL ,
"newtok" bool DEFAULT false NOT NULL
);
请创建一些用户,方便调试:
这是我的ftp表,这些记录名字都是随便起的。但请注意只有expired为f(假)的可以成功登陆。
代码:
ID | usr | pass | expired | newtok 上一页12 下一页 阅读全文
蝙蝠岛资源网 Design By www.hbtsch.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
蝙蝠岛资源网 Design By www.hbtsch.com
暂无vsftpd如何配置虚拟用户:PAM + PgSQL + FreeBSD-4的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年12月24日
2024年12月24日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]