[原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
回复
tisswb
帖子: 5
注册时间: 2006-06-16 0:12
联系:

[原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#1

帖子 tisswb » 2008-05-17 13:06

因为工作需要安装一个ftp服务器,需要使用多ftp用户并能够方便的管理ftp用户。于是使用vsftp+mysql+pam的组合,在mysql中进行用户管理。特写了这么一个记录安装过程的文章,提供给大家一起讨论。

1.安装vsftpd

代码: 全选

sudo apt-get install vsftpd
2.创建guest用户

vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除

代码: 全选

sudo useradd virtual
设置virtual的密码为webftp

代码: 全选

sudo passwd virtual
编辑virtual用户的主目录并设置shell

代码: 全选

sudo vim /etc/passwd
我设置的是virtual:x:1001:1001::/var/www:/bin/false

/var/www virtual的主目录

/bin/false 禁止virtual用户终端登陆

3.设置mysql数据库和用户权限

在phpmyadmin中建立vsftp数据库 vsftp用户

建立用户表

代码: 全选

create table users(name char(16) binary,passwd char(20) binary);
并授权vistual用户users表的select权限,并设置密码。

4.设置MySQL的PAM验证

安装libpam-mysql

代码: 全选

sudo apt-get install libpam-mysql
要设置vsftpd的PAM验证文件

代码: 全选

sudo cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
把内容替换为如下:

代码: 全选

auth    required        /lib/security/pam_mysql.so      user=virtual    passwd=webftp   host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0
account required        /lib/security/pam_mysql.so      user=virtual    passwd=webftp   host=localhost db=vsftp table=users usercolumn=name passwdcolumn=passwd crypt=0
这里需要说明一下这个crypt,crypt 密码验证机制;0 代表明文,1 代表DES 加密,2 代表Mysql的password()函数加密,3代表md5算法,4代表sha加密。 这里要注意下密码的长度问题。


5.设置vsftpd.conf

代码: 全选

guest_enable=YES
guest_username=virtual
这两项必须打开,其他配置请查阅vsftpd.conf的配置手册

6.虚拟用户目录的权限改为只能由virtual操作:

代码: 全选

sudo chown virtual.virtual /var/www
sudo chmod 755 /var/www
virtual获得www文件夹的权限,并设置www文件夹权限为755

至此,最基本的虚拟用户已经完成。

代码: 全选

sudo /etc/init.d/vsftpd restart
重启vsftpd服务后即可以用users表中设置的用户名密码进行www文件夹的访问了。

这里没有设置虚拟用户的分目录控制,大家可以参考其他文章中讨论的内容,照着做就可以了。

这里提交我的vsftpd.conf和一个用户的配置文件供大家参考

sftpd.conf配置如下:

代码: 全选

listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=NO
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=20
ftpd_banner=Welcome to TisswbTest FTP server.
chroot_local_user=YES
pam_service_name=/etc/pam.d/vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd_user_conf

listen_port=8888
pasv_min_port=30000
pasv_max_port=30999
webadmin配置如下:

代码: 全选

local_root=/var/www
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
virtual_use_local_privs=YES
上次由 tisswb 在 2008-11-14 16:22,总共编辑 6 次。
angelus
帖子: 445
注册时间: 2007-08-27 17:31

#2

帖子 angelus » 2008-05-17 17:37

实用的帖子,建立高度可扩展web和ftp结合者必学
给楼主赞一个
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
tisswb
帖子: 5
注册时间: 2006-06-16 0:12
联系:

#3

帖子 tisswb » 2008-05-17 20:28

hehe 感谢楼上的朋友 下一步打算把用户配额和分目录管理加上,基本上就可以实现理想的功能了.
还忘多多指导,本人初学不久,多半都是从网上参考学习的
wangzi6hao
帖子: 22
注册时间: 2007-09-05 16:44

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#4

帖子 wangzi6hao » 2008-10-24 16:39

晕,搞了半天还没有结合起来,不知道哪儿被我改错了.
先前用本地用户都是可以登录的,想改成mysql的...没想到,不成功了.
伤心了.
angelus
帖子: 445
注册时间: 2007-08-27 17:31

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#5

帖子 angelus » 2008-10-24 17:13

关于这个帖子的后续帖子我也写个一篇,不过早沉底了,你可以找找看

viewtopic.php?f=54&t=131467
不知道现在还能不能用,一直没更新
你能学会世界上所有语言来叫一种鸟的名字,当你知道所有这些名字叫法后,却对这种鸟一无所知~
理查德-费曼
tisswb
帖子: 5
注册时间: 2006-06-16 0:12
联系:

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#6

帖子 tisswb » 2008-11-14 16:47

今天来更新一下自己的帖子,修补了一下发现的问题
opelia
帖子: 16
注册时间: 2010-09-10 0:19

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#7

帖子 opelia » 2010-09-15 23:03

有成功的吗 :em20
kayangelee
帖子: 13
注册时间: 2010-09-16 11:08

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#8

帖子 kayangelee » 2010-09-16 13:26

:em20 看起来不错 不知道能不能够成功
头像
root127
帖子: 59
注册时间: 2009-06-11 20:12

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#9

帖子 root127 » 2010-09-22 18:19

学习了,,有时间做做验证一下。。
cheng1196
帖子: 19
注册时间: 2010-07-10 19:12

Re: [原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端

#10

帖子 cheng1196 » 2010-09-23 13:11

老掉牙还拿出来显摆 :em06 要专业ftp配置加我qq群 41283906
回复