当前位置: 主页 > Linux >

Linux之Vsftp服务器架设(4)

时间:2012-01-21 11:50来源:ITminer.net 作者:eason 点击:

四.实现目标之用虚拟用户访问FTP服务器

1.创建文件/etc/vsftpd/vlogin.txt 往里面添加虚拟账户以及对应的密码 单行账户 双行密码

[root@master vsftpd]# cat /etc/vsftpd/vlogin.txt

itminer_ftp1

123123

itminer_ftp2

123456

 

2.使用指令建立虚拟账户数据库

先确认系统安装有db4软件

[root@master vsftpd]# rpm -qa|grep db4                                         

db4-devel-4.3.29-10.el5

db4-4.3.29-10.el5

db4-utils-4.3.29-10.el5

 

[root@master vsftpd]# db_load -T -t hash -f /etc/vsftpd/vlogin.txt /etc/vsftpd/vlogin.db

[root@master ~]# ls -l /etc/vsftpd/

total 36

-rw-r--r-- 1 root root    13 Jun  8 17:37 chroot_list

-rw------- 1 root root   125 Dec 16  2009 ftpusers

-rw------- 1 root root   361 Dec 16  2009 user_list

-rw-r--r-- 1 root root 12288 Jun  9 15:00 vlogin.db

-rw-r--r-- 1 root root    38 Jun  9 14:47 vlogin.txt

-rw------- 1 root root   825 Jun  8 17:00 vsftpd.conf

-rwxr--r-- 1 root root   338 Dec 16  2009 vsftpd_conf_migrate.sh

可以看到生成了一个数据库文件vlogin.db,另外需要修改权限,设置为止对root用户可读可写 即600权限

 

[root@master ~]# chmod 600 /etc/vsftpd/vlogin.db

[root@master ~]# ls -l /etc/vsftpd/vlogin.db         

-rw------- 1 root root 12288 Jun  9 15:00 /etc/vsftpd/vlogin.db

 

3.编辑认证相关文件/etc/pam.d/vsftpd 设定认证参数

 

[root@master pam.d]# cat /etc/pam.d/vsftpd (默认参数)

#%PAM-1.0

session    optional     pam_keyinit.so    force revoke

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

auth       required     pam_shells.so

auth       include      system-auth

account    include      system-auth

session    include      system-auth

session    required     pam_loginuid.so

 

我们要将/etc/pam.d/vsftpd的默认参数全部用#注释掉 在最后加上2行

auth     required /lib/security/pam_userdb.so  db=/etc/vsftpd/vlogin crypt=hash

account  required /lib/security/pam_userdb.so  db=/etc/vsftpd/vlogin crypt=hash

 

 

注意:如需使用访问控制ftpusers,则不要注释这行

auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

 

[root@master pam.d]# cat /etc/pam.d/vsftpd

#%PAM-1.0

#session    optional     pam_keyinit.so    force revoke

#auth       required    pam_listfile.so item=user sense=deny file=/etc/vsftpd/ftpusers onerr=succeed

#auth       required    pam_shells.so

#auth       include     system-auth

#account    include     system-auth

#session    include     system-auth

#session    required     pam_loginuid.so

auth     required /lib/security/pam_userdb.so  db=/etc/vsftpd/vlogin crypt=hash

account  required /lib/security/pam_userdb.so  db=/etc/vsftpd/vlogin crypt=hash

 

4.添加一个系统账户用来给虚拟账户映射登录用,让所有的虚拟账户对应一个真实的系统账户

  当所有虚拟账户登录ftp后将会进入到系统实际账户的家目录.这样我们可以对虚拟账户分配权限啦

[root@master pam.d]# adduser -g itminer_vsftp -s /sbin/nologin -d /var/share itminer_vsftp

创建了一个itminer_vsftp账户

-g指定用户的组为itminer_vsftp -s指定用户的shell为不可登录系统-d指定用户的家目录/var/share

目录权限是700的哟

[root@master pam.d]# ls -l /var/|grep share

drwx------  3 itminer_vsftp itminer_vsftp 4096 Jun  9 15:38 share

 

5.编辑/etc/vsftpd/vsftpd.conf文件 添加内容

pam_service_name=vsftpd   ----------------- 配置vsftpd使用的PAM模块为vsftpd

user_config_dir=/etc/vsftpd/vuserconfig --- 设置虚拟账户权限配置的主目录为vuserconfig

guest_enable=yes          ----------------- 允许使用虚拟用户登录FTP

guest_username=itminer_vsftp --------------- 虚拟用户对应的系统用户为itminer_vsftp

max_clients=1             ----------------- 设置FTP服务器最大接入客户端数为1 (实际应用根据自己需求设定))

max_per_ip=1             ------------------ 设置每个ip地址最大链接数为1      (实际应用根据自己需求设定)

userlist_enable=YES     

tcp_wrappers=YES

 

6.承上第5点配置 我们需建立目录/etc/vsftpd/vuserconfig,用于存放用户的权限配置

在/etc/vsftpd/vuserconfig目录下建立虚拟用户的权限配置文件,配置文件名必须要跟虚拟用户名一致

就是跟我们前面在vlogin.txt中定义的用户名一致

 

[root@master vuserconfig]# cat /etc/vsftpd/vlogin.txt

itminer_ftp1

123123

itminer_ftp2

123456

[root@master vuserconfig]# pwd

/etc/vsftpd/vuserconfig

[root@master vuserconfig]# touch itminer_ftp1

[root@master vuserconfig]# touch itminer_ftp2

[root@master vuserconfig]# ll

total 0

-rw-r--r-- 1 root root 0 Jun  9 16:00 itminer_ftp1

-rw-r--r-- 1 root root 0 Jun  9 16:00 itminer_ftp2

 

将权限参数写入配置文件即可 权限参数主要有以下这些:

anon_world_readable_only=no  允许匿名用户浏览器整个服务器的文件系统

write_enable=yes             允许在文件系统写入权限

anon_mkdir_write_enable=yes  允许创建文件夹

anon_other_write_enable=yes  允许用户改名和删除文件的权限

anon_upload_enable=yes       开启匿名帐号的上传功能

anon_max_rate=100000         限定传输速度为100KB/s(以字节为单位的)

 

[root@master vuserconfig]# cat itminer_ftp1

anon_world_readable_only=no

write_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

anon_upload_enable=yes

anon_max_rate=100000

 

[root@master vuserconfig]# cat itminer_ftp2

anon_world_readable_only=no

write_enable=yes

anon_mkdir_write_enable=yes

anon_other_write_enable=yes

anon_upload_enable=yes

anon_max_rate=100000

 

7.重启服务 测试登录

服务端:

[root@master vuserconfig]# service vsftpd restart

Shutting down vsftpd:                                      [  OK  ]

Starting vsftpd for vsftpd:                                [  OK  ]

 

[root@master vuserconfig]# touch /var/share/test.txt

[root@master vuserconfig]# ls -l  /var/share/

total 0

-rw-r--r-- 1 root root 0 Jun  9 16:28 test.txt

 

客户端:

[root@clien ~]# ftp 10.5.9.52

Connected to 10.5.9.52.

220 (vsFTPd 2.0.5)

530 Please login with USER and PASS.

530 Please login with USER and PASS.

KERBEROS_V4 rejected as an authentication type

Name (10.5.9.52:root): itminer_ftp1  (虚拟账户登录)

331 Please specify the password.

Password:

230 Login successful.

Remote system type is UNIX.

Using binary mode to transfer files.

ftp> ls   (看的到服务端的text.txt文件)

227 Entering Passive Mode (10,5,9,52,128,137)

150 Here comes the directory listing.

-rw-r--r--    1 0        0               0 Jun 09 08:28 test.txt

226 Directory send OK.

ftp> pwd

257 "/"

ftp> cd /etc  (不可以切目录)

550 Failed to change directory.

(责任编辑:eason@IT民工 )

 

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名:密码: 验证码:点击我更换图片
加入我们
推荐内容
赞助商
赞助商