分页: 1 / 1

vsftpd-and -mysql配置笔记

发表于 : 2008-06-18 19:39
angelus
这是根据tisswb文章与网上的结合测试的
tisswb文章地址:
viewtopic.php?t=124658
vsftpd与数据库结合是非常必要的,文本存储用户适合仅提供ftp服务的小型企业
联系紧密的有ftp与web的结合,比如,只提供给注册用户一定的ftp权限
就需要ftp与数据库配合运行,另外ftp的日志仅用文本看,将会是件很头疼的事情,但把ftp日志写入数据库,然后使用web页面组织输出,或软件处理输出将会把事情变的更简单容易,需要的来试试吧!个人认为很必要!!!
这里给大家一个测试地址
http://apt-get.vicp.net/itweb
在里边注册,然后实验去登录vsftpd或是查看日志记录
ftp://apt-get.vicp.net

vsftpd安装配置略过
一:准备工作
------------------
安装mysql
sudo apt-get install mysql

安装pam-mysql认证库
sudo apt-get install libpam-mysql

建立虚拟用户的替身,virtual用户
sudo useradd virtual

修改virtual的密码
sudo passwd virtual

加强virtual用户安全
sudo vim /etc/passwd
在最后边找到virtual用户定义,修改成不允许登录 /bin/false
------------------
二:配置mysql数据库
这里有两个分支,为有gui界面与只有纯终端
1,有gui界面,建立数据库vsftpd,表user
建立字段name与passwd,并写入简单数据
建立数据库用户,virtual并给予给user表的查询权限
(记得连接实验下,这里不说具体步骤是因为gui界面操作都不一样,具体可以查资料)
2,纯终端(最实用,也最难掌握,全是命令)
这里就不多说了,有条件可以在第二台机子上使用基于web的phpmyadmin工具编辑
------------------
三:处理pam-mysql认证文件
使用命令复制并重新命名认证文件
sudo cp /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpd.pam /etc/pam.d/vsftpd
(把例子复制出来,并改名为vsftpd)
修改认证文件内容,使vsftpd可以连接上mysql,编辑/etc/pam.d/vsftpd文件
sudo vim /etc/pam.d/vsftpd
修改内容为:
auth required /lib/security/pam_mysql.so user=virtual passwd=“virtual对应数据库的密码” host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=passwd crypt=2
account required /lib/security/pam_mysql.so user=virtual passwd=“virtual对应数据库的密码” host=localhost db=vsftpd table=user usercolumn=name passwdcolumn=passwd crypt=2
user 访问数据库用户名
passwd 访问数据库用户密码
host 数据库主机
db 数据库名
table 表名
usercolumn 用户列名
passwdcolumn 密码列名
crypt 密码验证机制;0 代表明文,1 代表DES 加密,2 代表Mysql的password()函数加密,
3代表md5算法,4代表sha加密。
-------------------------
四:(终于到跟配置文件有关的地方了)vsftpd.conf
需要虚拟用户登录有关的配置为:
local_enable=YES (这个不要忽略了,虚拟用本质还是本地用的投影)
guest_enable=YES (允许虚拟用户登录)
guest_username=virtual (定义虚拟用户用那个本地用户投影)
virtual_use_local_privs=yes/no (定义虚拟用户使用那种约束,本地还是匿名)
pam_service_name=vsftpd (这个是验证在/etc/pam.d文件中需要使用文件的名字)
user_config_dir=/etc/vsftpd (每一个用户单独配置文件存放地)
local_umask=xxx (最好在主配置文件中去掉)
-------------------------
五:在/etc/vsftpd中建立一个和mysql中user表name字段一样的一个用户单独配置文件
比如,sky用户,在/etc/vsftpd中建立文件sky
sudo vim /etc/vsftpd/sky (没有vsftpd目录就需要建立)
输入内容:
local_root=/home/ftp
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anno_other_writer_enable=YES
anon_umask=022
(上边的意思:单独的配置sky的权限,通过这种配置,可以设定特定用户的权限)
---------------------------
好了,说的很多,下边就自己实验下吧

发表于 : 2008-06-20 14:47
jerrroy
lftp :~> open xubuntu.vicp.net
open: xubuntu.vicp.net: Name or service not known
ftp关了吗? :D

发表于 : 2008-06-20 14:56
jinsaiuser
学习
收藏了!

发表于 : 2008-06-20 20:32
angelus
系统重新作了,自己也肚子不舒服加发烧,就拖了点时间,
现在已经恢复了,加了注册和查看log,因为身体还很难受,功能很简单,大家将就看下吧!

Re: vsftpd-and -mysql配置笔记

发表于 : 2008-11-14 15:34
tisswb
帖子相当好,最近又来研究了一番,看了不少楼主的帖子,发现以前自己写的内容还是太不仔细了

Re: vsftpd-and -mysql配置笔记

发表于 : 2009-03-19 0:50
Jarson
学习,写得比较清晰易懂 :em11

Re: vsftpd-and -mysql配置笔记

发表于 : 2010-09-15 23:04
opelia
有成功的吗

Re: vsftpd-and -mysql配置笔记

发表于 : 2010-09-16 12:02
newnetexr
看着就觉得麻烦啊,还是pure-ftpd+mysql方便