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

[经验分享] vsftp+mysql+pam_mysql的搭建

[复制链接]

尚未签到

发表于 2018-10-2 12:41:35 | 显示全部楼层 |阅读模式
  安装配置步骤
  配置环境:
  关闭iptables
  关闭selinux
  [root@CentOS6 ~]# service iptables status
  iptables: Firewall is not running.
  [root@CentOS6 ~]# getenforce
  Permissive
  1、安装vsftpd、mysql-server:(yum方式)
  程序包:vsftpd、mysql-server、mysql-devel、pan_mysql
  步骤:
  [root@CentOS6 ~]# yum -y install vsftpd mysql-server mysql-devel pam_mysql    :yum会自动安装依赖环境;
  Installed:
  mysql-devel.x86_64 0:5.1.73-3.el6_5             mysql-server.x86_64 0:5.1.73-3.el6_5
  vsftpd.x86_64 0:2.2.2-13.el6_6.1
  安装完整之后,发现pam-mysql没有安装上,原因是yum源里面没有这个包,需要epel源才能进行安装(epel是一个第三方的yum源仓库)。
  2、安装epel源仓库和pam-mysql:
  程序包:el-release-6-8.noarch.rpm
  pam-mysql
  注意:epel下载地址:http://rpmfind.net/linux/rpm2html/search.php?query=epel-release (注意下载适合自己linux版本的)
  [root@CentOS6 src]# rpm -ivh epel-release-6-8.noarch.rpm
  [root@CentOS6 src]# yum -y install pam_mysql
  [root@CentOS6 src]# rpm -ql pam_mysql
  /lib64/security/pam_mysql.so            :查看这个关键模块是否安装成功,注意位置是/lib64/下面;
  3、配置mysql:
  创建vsftpd库和授权一个能查询该库的sql用户:
  mysql> create database vsftpd;

  mysql> grant select on vsftpd.* to vsftpd@localhost>
  mysql> grant select on vsftpd.* to vsftpd@127.0.0.1>  mysql> flush privileges;
  创建存放虚拟账号的表:
  mysql> create table users (

  ->>  -> name char(20) binary NOT NULL,
  -> password char(48) binary NOT NULL,
  -> primary key(id)
  -> );
  Query OK, 0 rows affected (0.03 sec)
  添加ftp虚拟账号到表中:
  mysql> insert into users (name,password) values ('tom',password('tom'));
  Query OK, 1 row affected (0.02 sec)
  mysql> insert into users (name,password) values ('test',password('test'));
  Query OK, 1 row affected (0.00 sec)
  mysql> select * from users;
  +----+------+-------------------------------------------+

  |>  +----+------+-------------------------------------------+
  |  1 | tom  | *71FF744436C7EA1B954F6276121DB5D2BF68FC07 |
  |  2 | test | *94BDCEBE19083CE2A1F959FD02F964C7AF4CFC29 |
  +----+------+-------------------------------------------+
  2 rows in set (0.04 sec)
  4、配置vsftp,使它支持mysql:
  1、自定义一个文件,“告知pam_mysql如何去找到数据库中表的字段”
  vim /etc/pam.d/vsftpd.mysql
  auth required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd             table=users usercolumn=name passwdcolumn=password crypt=2
  account required /lib64/security/pam_mysql.so user=vsftpd passwd=vsftpd host=localhost db=vsftpd         table=users usercolumn=name passwdcolumn=password crypt=2
  :此处注意:crypt=2表示使用password()的方式对数据库中创建的ftp账号进行加密存放;
  2、添加系统账号:
  [root@CentOS6 ~]# useradd -s /sbin/nologin -d /var/ftproot vuser
  [root@CentOS6 ~]# chmod -R go+rx /var/ftproot
  3、启用vsftpd的mysql认证:
  vim /etc/vsftpd/vsftpd.conf
  anonymous_enable=YES
  local_enable=YES
  write_enable=YES
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  chroot_local_user=YES
  guest_enable=YES
  guest_username=vuser
  pam_service_name=vsftpd.mysql
  xferlog_enable=YES
  xferlog_file=/var/log/xferlog
  dual_log_enable=YES
  vsftpd_log_file=/var/log/vsftpd.log
  use_localtime=YES           :启用日志记录功能;
  5、启动mysql、vsftpd服务:
  [root@CentOS6 ~]# netstat -tnlp | grep :21
  tcp        0      0 0.0.0.0:21         0.0.0.0:*           LISTEN      2339/vsftpd
  [root@CentOS6 ~]# netstat -tnlp | grep mysqld
  tcp        0      0 0.0.0.0:3306       0.0.0.0:*           LISTEN      2568/mysqld
  6、安装lftp客户端:
  [root@CentOS6 ~]# yum -y install lftp
  [root@CentOS6 var]# lftp -u test 172.16.1.110
  Password:
  lftp test@172.16.1.110:~> pwd
  ftp://test@172.16.1.110
  [root@CentOS6 var]# lftp -u tom 172.16.1.110
  Password:
  lftp tom@172.16.1.110:~> pwd
  ftp://tom@172.16.1.110
  [root@CentOS6 log]# tail -f /var/log/vsftpd.log
  Wed Mar 25 06:28:57 2015 [pid 31287] CONNECT: Client "172.16.1.110"
  Wed Mar 25 06:28:57 2015 [pid 31286] [test] OK LOGIN: Client "172.16.1.110"
  Wed Mar 25 06:31:01 2015 [pid 31308] CONNECT: Client "172.16.1.110"
  Wed Mar 25 06:31:01 2015 [pid 31307] [tom] OK LOGIN: Client "172.16.1.110"
  :登录成功!
  7、虚拟用户账号访问ftp的限制:
  1、实现让tom无权限删除,只有上传、下载权限:
  vim /etc/vsftpd/vsftpd.conf
  anonymous_enable=NO
  anon_upload_enable=NO
  anon_mkdir_write_enable=NO
  user_config_dir=/etc/vsftpd/users_dir   :为虚拟用户指定配置文件目录路径;
  [root@CentOS6 ~]# mkdir /etc/vsftpd/users_dir/
  [root@CentOS6 ~]# touch /etc/vsftpd/users_dir/tom
  [root@CentOS6 ~]# touch /etc/vsftpd/users_dir/test
  :为虚拟用户创建以其名字命令的配置文件;
  [root@CentOS6 ~]# vim /etc/vsftpd/users_dir/tom
  anon_upload_enable=YES
  anon_mkdir_write_enable=YES
  anon_other_write_enable=NO
  2、实现test只有下载的权限:
  [root@CentOS6 ~]# vim /etc/vsftpd/users_dir/test
  anon_upload_enable=NO
  anon_mkdir_write_enable=YES
  anon_other_write_enable=NO
  :注意,账号的最终权限是vsftpd和文件系统权限的交集;
  3、测试一下即可;


运维网声明 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-607567-1-1.html 上篇帖子: mysql查看状态命令总结 下篇帖子: MySQL学习笔记之六:MySQL日志
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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