[原创]无错配置ubuntu8.04+vsftpd+mysql+pam的ftp服务器端
发表于 : 2008-05-17 13:06
因为工作需要安装一个ftp服务器,需要使用多ftp用户并能够方便的管理ftp用户。于是使用vsftp+mysql+pam的组合,在mysql中进行用户管理。特写了这么一个记录安装过程的文章,提供给大家一起讨论。
1.安装vsftpd
2.创建guest用户
vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除
设置virtual的密码为webftp
编辑virtual用户的主目录并设置shell
我设置的是virtual1001:1001::/var/www:/bin/false
/var/www virtual的主目录
/bin/false 禁止virtual用户终端登陆
3.设置mysql数据库和用户权限
在phpmyadmin中建立vsftp数据库 vsftp用户
建立用户表
并授权vistual用户users表的select权限,并设置密码。
4.设置MySQL的PAM验证
安装libpam-mysql
要设置vsftpd的PAM验证文件
把内容替换为如下:
这里需要说明一下这个crypt,crypt 密码验证机制;0 代表明文,1 代表DES 加密,2 代表Mysql的password()函数加密,3代表md5算法,4代表sha加密。 这里要注意下密码的长度问题。
5.设置vsftpd.conf
这两项必须打开,其他配置请查阅vsftpd.conf的配置手册
6.虚拟用户目录的权限改为只能由virtual操作:
virtual获得www文件夹的权限,并设置www文件夹权限为755
至此,最基本的虚拟用户已经完成。
重启vsftpd服务后即可以用users表中设置的用户名密码进行www文件夹的访问了。
这里没有设置虚拟用户的分目录控制,大家可以参考其他文章中讨论的内容,照着做就可以了。
这里提交我的vsftpd.conf和一个用户的配置文件供大家参考
sftpd.conf配置如下:
webadmin配置如下:
1.安装vsftpd
代码: 全选
sudo apt-get install vsftpd
vsftpd安装的时候会自动安转一个ftp用户,在passwd中删除
代码: 全选
sudo useradd virtual
代码: 全选
sudo passwd virtual
代码: 全选
sudo vim /etc/passwd
/var/www virtual的主目录
/bin/false 禁止virtual用户终端登陆
3.设置mysql数据库和用户权限
在phpmyadmin中建立vsftp数据库 vsftp用户
建立用户表
代码: 全选
create table users(name char(16) binary,passwd char(20) binary);
4.设置MySQL的PAM验证
安装libpam-mysql
代码: 全选
sudo apt-get install libpam-mysql
代码: 全选
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
5.设置vsftpd.conf
代码: 全选
guest_enable=YES
guest_username=virtual
6.虚拟用户目录的权限改为只能由virtual操作:
代码: 全选
sudo chown virtual.virtual /var/www
sudo chmod 755 /var/www
至此,最基本的虚拟用户已经完成。
代码: 全选
sudo /etc/init.d/vsftpd restart
这里没有设置虚拟用户的分目录控制,大家可以参考其他文章中讨论的内容,照着做就可以了。
这里提交我的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
代码: 全选
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