Chinaunix首页 | 论坛 | 博客
  • 博客访问: 109101
  • 博文数量: 55
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 630
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-13 10:59
文章分类
文章存档

2011年(1)

2009年(37)

2008年(17)

我的朋友

分类:

2008-12-12 14:01:33

今天回顾了一下以前学的服务,如题,配置很简单,就是时间长了,有点陌生了。呵呵
我的OS是 Asianux 3.0 自带的 mysql 5.0.22 和 vsftp 2.0.5

首先我们要编译 出 pam_mysql.so 这个模块,一会儿会用到.
tar xvf pam_mysql-0.7RC1.tar.gz
cd pam_mysql-0.7RC1
./configure --with-openssl
make && make instll

之后 把这个模块
        cp /usr/lib/security/pam_mysql.so /lib/security/

再之后,我们要在 vsftpd.conf 末尾加入如下几行:
   
chroot_local_user=YES #将本地用户限制在自己的家目录,这样可避免FTP用户访问到其他的系统目录
pam_service_name=ftp  #pam 论证文件,随便起,只要你记得就成
guest_enable=YES      #开启虚拟用户访问
guest_username=vsftp  #虚拟用户名字(需本地存在,都靠他来与mysql 连接)
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/user #虚拟用户的配置文件所在地
pasv_enable=YES
pasv_min_port=30000
pasv_max_port=30999
userlist_enable=YES
tcp_wrappers=YES   #限制登录vsftpd的客户端的IP地址,结合hosts.deny与hosts.allow 来使用,本文暂不提供此功能。

要注意的是,vsftp 这个帐号要存在本地系统中,起其它的名字也无妨。还要注意权限问题:

ll /etc/vsftpd/user -d
drwxr-xr-x 3 root root 4096 12-08 04:08 /etc/vsftpd/user

下面加入 pam 论证文件,有pam 模块的位置,用户及密码,数据库名及表,用户栏及密码栏,及加密方式
   
[root@max vsftpd]# cat /etc/pam.d/ftp
auth required /lib/security/pam_mysql.so user=vsftp passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0
account required /lib/security/pam_mysql.so user=vsftp passwd=123456 host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0
[root@max vsftpd]#


这里面的相关信息一定要与 Mysql 里 的一致。
     启动 mysql
   
create database vsftp;
use vsftp;
create table users(name char(20) binary,passwd char(20) binary);
insert into users() values('admin','admin');
insert into users() values('can','can');
grant select on vsftp.users to vsftp@localhost identified by '123456';
quit

配置虚拟用户 admin 与 can 的权限

[root@max vsftpd]# cat /etc/vsftpd/user/admin
local_root=/home/vsftp/user/admin #admin 的家目录
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
[root@max vsftpd]#

root@max vsftpd]# cat /etc/vsftpd/user/can
local_root=/home/vsftp/can
anon_world_readable_only=NO
write_enable=NO
anon_mkdir_write_enable=YES
[root@max vsftpd]#

关闭 vsftp ,并重新启动;

来验证一下。
[root@max vsftpd]# lftp admin@192.168.228.238
口令:
lftp admin@192.168.228.238:~> ls
drwxr-xr-x    2 1002     1002         4096 Dec 07 20:02 cccccc
lftp admin@192.168.228.238:/> pwd
ftp://admin@192.168.228.238/
lftp admin@192.168.228.238:/> mkdir admin
mkdir 成功, 建立 `admin'
lftp admin@192.168.228.238:/> ls
drwxr-xr-x    2 1002     1002         4096 Dec 07 20:43 admin
drwxr-xr-x    2 1002     1002         4096 Dec 07 20:02 cccccc

[root@max vsftpd]# lftp can@192.168.228.238
口令:
lftp can@192.168.228.238:~> ls
drwxr-xr-x    2 1002     1002         4096 Dec 07 19:45 as
drwxr-xr-x    2 1002     1002         4096 Dec 07 20:06 ass
lftp can@192.168.228.238:/> pwd
ftp://can@192.168.228.238/
lftp can@192.168.228.238:/> mkdir asasasas
mkdir: 访问失败: 550 Permission denied. (asasasas)
lftp can@192.168.228.238:/> ls
drwxr-xr-x    2 1002     1002         4096 Dec 07 19:45 as
drwxr-xr-x    2 1002     1002         4096 Dec 07 20:06 ass

完全符合我刚才对它们俩附于的权限。
敲完收工,若想知道还有哪些权限,Google一下,你就知道。







阅读(542) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~