设为首页 收藏本站
查看: 1338|回复: 0

[经验分享] vsftp配置验证方式mysql和文件虑拟用户

[复制链接]
发表于 2015-11-6 14:07:16 | 显示全部楼层 |阅读模式
  以下内容在ubuntu 9.04 server系统上测试通过
  用apt-get install vsftp安装的时候相关的文件位置:
主配置文件:/etc/vsftpd.conf
验证配置文件/etc/pam.d/vsftpd
重启:/etc/init.d/vsftpd restart
  
vsftp Mysql验证方式:
  MYSQL已经安装在/usr/local/mysql
直接安装vsftp
sudo apt-get install vsftp
  安装pam_mysql
  下载:http://sourceforge.net/projects/pam-mysql/
解压:
tar zxvf pam_mysql....tar.gz
cd pam_mysql...
./configure--with-openssl --with-mysql=/usr/local/mysql/
  如果出现:configure: error: Cannot find pam headers. Please check if your system is ready for pam module development
安装libpam0g-dev:
sudo apt-get install libpam0g-dev
然后编译并安装:
sudo make install
会在/lib/security/创建:pam_mysql.so
  创建数据库:ftp
create database ftp;
创建表:
CREATE TABLE IF NOT EXISTS `users` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  `passwd` char(32) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
  CREATE TABLE `ftp`.`logs` (
  `id` INT(10) NOT NULL AUTO_INCREMENT,
`pid` INT( 10 ) NOT NULL  ,
`content` TEXT NOT NULL ,
`user` VARCHAR( 32 ) NOT NULL ,
`host` VARCHAR( 32 ) NOT NULL ,
`rhost` VARCHAR( 32 ) NOT NULL ,
`logtime` TIMESTAMP NOT NULL ,
PRIMARY KEY ( `id` )
) ENGINE = MYISAM ;
  
创建一个MYSQL用户:ftp
只把ftp库给此用户:
GRANT ALL PRIVILEGES ON `ftp` . * TO 'ftp'@'localhost' WITH GRANT OPTION ;
  增加mysql验证方式:
增加一个文件:/etc/pam.d/vsftpd.mysql内容如下
auth required /lib/security/pam_mysql.so config_file=/srv/ftp/pam_mysql.conf
account required /lib/security/pam_mysql.so config_file=/srv/ftp/pam_mysql.conf
然后新建一个/srv/ftp/pam_mysql.conf
内容如下:
验证部分:
users.host=localhost
users.database=ftp
users.db_user=ftp
users.db_passwd=123456
users.table=users
users.user_column=name
users.password_column=passwd
users.password_crypt=0此处为0时密码为明文,2为password加密,3为md5加密
verbose=1
日志部分:
log.enabled=1
log.table=logs
log.pid_column=pid
log.message_column=msg
log.user_column=user
log.host_column=host
log.rhost_column=rhost
log.time_column=logtime
  
然后在/etc/vsftpd.conf内修改:
pam_service_name=vsftpd.mysql
  
  一切顺利,但就是登录不了--??不知道为什么---后来已解决,
----------------------------------------------------------------------
文件虑拟用户验证成功:
  vi logins.txt
写上用户名和密码,一行用户名,一行密码,然后:
db4.7_load -T -t hash -f ./logins.txt ./vsftpd_login.db
前提是安装了:sudo apt-get install db4.7-util
  增加一个文件:/etc/pam.d/vsftpd.vu内容如下:
auth required /lib/security/pam_userdb.so db=/srv/ftp/vsftpd_login
account required /lib/security/pam_userdb.so db=/srv/ftp/vsftpd_login
  然后在/etc/vsftpd.conf内修改:
  pam_service_name=vsftpd.vu
  user_config_dir=/srv/ftp/user_config
然后在目录:/srv/ftp/user_config内建立对应用户名的文件,然后配置此用户的相关设置
注意:
  虑拟用户的上传目录所有者一定要是ftp 但是mysql方式的好像不受限制,我试过一次,等进一步确认
/srv/ftp/user_config下面的所有者一定要是root.root
  user_config下面对应用户的配置,mysql和文件虑拟用户相似,可以共用,大至内容如下:
local_root=/var/ftp/admin  //用户ftp根目录
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
  
总结一下:
mysql的验证流程如下
  首先从/etc/vsftpd.conf内加载验证方式配置文件:pam_service_name
然后根据vsftpd.mysql的描述,去找/srv/ftp/pam_mysql.conf
确定连接数据库的方式和一些相关配置,然后连接数据库进行验证登录,
  文件以验证流程如下:
同样首先从/etc/vsftpd.conf内加载验证方式配置文件:pam_service_name
然后调用pam_userdb.so(pamDB验证用户)去验证/srv/ftp/vsftpd_login.db的文件内的用户
  所以我的验证方式配置文件没有直接在/etc/pam.d/vsftpd内改,而是增加了两个:
/etc/pam.d/vsftpd.vu和/etc/pam.d/vsftpd.mysql
如果想换成配置文件验证的话,直接改/etc/vsftpd.conf内的pam_service_name = vsftpd.vu即可
  另外:
ftp连接时需要两个端口:默认情况下是20和21,21端口为命令传输通道,20为数据传输通道
vsftp可以提供主动/被动两个连接模式
主动模式就是把20和21端口都开开,而被动模式命令通道还是默认21而数据通道则可以通过以下来指定端口范围:
pasv_min_port=9981
pasv_max_port=9986
  
  附:相关配置文件的说明----有很多可以默认,对相关安全方面设置好了即可。
anonymous_enable=NO            #禁止匿名
local_enable=YES                       #允许本地登录
write_enable=YES                       #允许写,如需上传,则必须
local_umask=027                        #将上传文件的权限设置为:777-local_umask
anon_upload_enable=YES          #允许虚拟用户和匿名用户上传
anon_other_write_enable=YES  #允许虚拟用户和匿名用户修改文件名和删除文件
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=120
ftpd_banner=Welcome to ChinaRise FTP service       #欢迎信息
guest_enable=yes                       #允许虚拟用户------------如果用虑拟用户,此设置一定要设
guest_username=ftp  #虚拟用户使用的系统账号----------------------虑拟用户要用到一个本机的一个实际的物理帐户
virtual_use_local_privs=YES     #虚拟用户拥有本地系统权限
chroot_local_user=NO
chroot_list_enable=YES
#以下两行将虚拟用户限制在其目录下,不能访问其他目录,或者直接用
chroot_local_user=YES
listen=yes                #监听/被动模式
listen_port=21        #监听端口
chroot_list_file=/srv/ftp/vsftpd.chroot_list       #虚拟用户名单保存在文件/srv/ftp/vsftpd.chroot_list 中但好像不保存也可以
user_config_dir=/srv/ftp/user_config   #每个虚拟用户名的更加详细的培植保存在/srv/ftp/user_config 中
  刚开始配mysql方式的时候老配不好,后来看到这里的一个文章终于配起来了:http://bingdian.blog.iyunv.com/94171/233723
  iptables建议加上:
-A INPUT -p tcp --dport 21 -j ACCEPT
  -A INPUT -m state --state NEW -m tcp -p tcp --dport 30000:30999 -j ACCEPT
  -A INPUT -p tcp -m state --state ESTABLISHED,RELATED -j ACCEPT
  -A INPUT -p tcp -m state --state INVALID,NEW -j DROP
  (未验证)
  
             版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-135988-1-1.html 上篇帖子: 如何在Linux下部署web程序(搭建vsftp服务,搭建sshd 服务器,jdk安装步骤,Tomcat安装步骤,MySQL安装步骤) 下篇帖子: vsftp配置文件详解
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表