[CentOS] CentOS for vsftpd with MySQL Virtual user

從ubuntu
12.04的安裝手法拿到CentOS來真的有些很大的不同

絕大部分的語法、概念都是差不多的,只是指令上有些差別,跟ubuntu
有不一樣的地方特別拿出來另外說明

要讓vsftpd與mysql溝通一定要有一個介值,mysql的插件是一定要裝的

在ubuntu
12.04需要 libpam-ldap
CentOS 6.3 需要
pam_mysql

vsftpd主配置檔
/etc/pam.d/vsftpd

crypt=0:
明文密碼
crypt=1:
使用crpyt()函數(對應SQL資料表的encrypt(),encrypt()隨機產生salt)
crypt=2:
使用MySQL中的password()函數加密
crypt=3:表示使用md5函數加密

使用系統與套件
system:CentOS
6.3
software:MySQL 5.1、vsftpd
2.2

一、安裝軟體
1)使用這兩個software就一定要安裝他們
 
# yum install vsftpd mysql-server
2)啟用mysqld後,會提式第一次使用mysql一定要執行
mysqladmin 設定密碼
  # /etc/init.d/mysqld
start
  # mysqladmin -u root password ‘you root sql
password‘

二、設定vsftpd
1)建立與mysql橋接的guest
user,這個帳號只用於跟mysql溝通
  # useradd -G users -s /sbin/nologin
-d /home/vsftpd 
vsftpd

2)備份vsftpd.conf避免設定失敗
 
# cp -v /etc/vsftpd/vsftpd.conf  
/etc/vsftpd/vsftpd.conf-orig
3)清空設定檔
  #
cat /dev/null >
/etc/vsftpd/vsftpd.conf
4)編輯設定檔
  #vi
/etc/vsftpd/vsftpd.conf

5) 內容
#
No ANONYMOUS users allowed
anonymous_enable=NO
#
Allow ‘local‘ users with WRITE permissions
(0755)
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
xferlog_enable=YES

#
if you want to LOG vsftpd activity then uncomment this
log_ftp_protocol
#
log_ftp_protocol=YES

connect_from_port_20=YES

#
uncomment xferlog_file and xferlog_std_format if you DIDN‘T use the line
above 
# with log_ftp_protocol - it must be excluding each
other
# The name of log file when xferlog_enable=YES and
xferlog_std_format=YES
# WARNING - changing this filename
affects
/etc/logrotate.d/vsftpd.log
#xferlog_file=/var/log/xferlog
#
#
xferlog_std_format Switches between logging into vsftpd_log_file and
xferlog_file files.
# NO writes to vsftpd_log_file, YES to
xferlog_file
#
xferlog_std_format=YES

#
# You
may change the default value for timing out an idle session (in
seconds).
#idle_session_timeout=600
#
#
You may change the default value for timing out a data connection (in
seconds).
#data_connection_timeout=120
#
#
define a unique user on your system which the
# ftp server can
use as a totally isolated and unprivileged
user.
nopriv_user=vsftpd

chroot_local_user=YES

listen=YES

#
here we use the authentication module for vsftpd to check users name and
passw
pam_service_name=vsftpd
userlist_enable=YES
tcp_wrappers=YES

#
If userlist_deny=YES (default), never allow users in this file
#
/etc/vsftpd/user_list , and do not even prompt for a password.
#
Note that the default vsftpd pam config also checks
/etc/vsftpd/ftpusers
# for users that are
denied.
userlist_deny=yes

#
here the vsftpd will allow the ‘vsftpd‘ user to login into ‘/home/vsftpd/$USER
directory
guest_enable=YES
guest_username=vsftpd
local_root=/home/vsftpd/$USER
user_sub_token=$USER
virtual_use_local_privs=YES
user_config_dir=/etc/vsftpd/vsftpd_user_conf

force_local_data_ssl=NO
force_local_logins_ssl=NO

#
PASV - passive ports for FTP (range 44000 - 44100 ; 100 PASV ports, OPEN
FIREWALL FOR ALLOWING
CONNECTIONS
pasv_enable=YES
pasv_min_port=44000
pasv_max_port=44100

6)建立vsftpd的virtual
user的個人設定檔目錄
  # mkdir
/etc/vsftpd/vsftpd_user_conf

7)編輯個人設定檔
 
# vi
/etc/vsftpd/vsftpd_user_conf/user1

8)編輯內容
dirlist_enable=YES
download_enable=YES
#
full path to the directory where ‘user1‘ will have access, change to your
needs
local_root=/home/vsftpd/user1
write_enable=YES

11)備份於pam.d下的vsftpf設定檔
  
# cp /etc/pam.d/vsftpd
/etc/pam.d/vsftpd-orig

12)清空設定檔
  
# echo >
/etc/pam.d/vsftpd
13)編輯設定檔,寫入內容
   #
vi /etc/pam.d/vsftpd
  
內容
#%PAM-1.0
session    
optional     pam_keyinit.so     force
revoke
auth required pam_mysql.so user=vsftpd
passwd=vsftpdpasswd host=localhost db=vsftpd table=accounts usercolumn=username
passwdcolumn=pass crypt=3
account required pam_mysql.so
user=vsftpd passwd=vsftpdpasswd host=localhost db=vsftpd table=accounts
usercolumn=username passwdcolumn=pass
crypt=3

三、建立管理虛擬使用者db與table
1)設定資料庫名稱,這裡設定是vsftpd
 
mysql> CREATE DATABASE
vsftpd;

2)設定"使用者"與"密碼"能夠管理"vsftpd"這個資料庫,在本機端
 
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON vsftpd.* TO
‘username‘@‘localhost‘ IDENTIFIED BY
‘password‘;

3)更新資料庫資料
 
mysql> FLUSH PRIVILEGES;
4)建立資料表各欄位
 
mysql> USE vsftpd;

  mysql> CREATE
TABLE `accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY
,
`username` VARCHAR( 30 ) NOT NULL ,
`pass`
VARCHAR( 50 ) NOT NULL ,
UNIQUE ( `username` )
)
ENGINE = MYISAM ;

5)建立virtual
user 與 password
  mysql> INSERT INTO accounts (username,
pass) VALUES(‘user1‘, md5(‘123456‘));
  mysql> INSERT
INTO accounts (username, pass) VALUES(‘testu‘,
PASSWORD(‘[email protected]‘));
6)查看目前的user
 
mysql> select * from accounts;

7)建立virtual
user 需要的目錄
  # mkdir
/home/vsftpd/user1
  # chown vsftpd:users
/home/vsftpd/user1

四、安裝插件
1)安裝與mysql連接的檔案
http://pkgs.org/centos-6-rhel-6/epel-x86_64/pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm.html
 
# wget
http://dl.fedoraproject.org/pub/epel/6/x86_64/pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm

用rpm安裝,U參數是沒安裝過的software直接安裝,有裝過舊版的自動更新為新版
 
# rpm -Uvh
pam_mysql-0.7-0.12.rc1.el6.x86_64.rpm

一般安裝於/lib/security/
這目錄下,如果是x64就會在 /lib64/serurity/


2)安裝mysql需要插件
  # 
yum install
mysql-devel

重啟服務
service mysqld
vsftpd restart

http://rewriterdark.blogspot.tw/2013/01/centos-for-vsftpd-with-mysql-virtual.html

时间: 2024-10-18 15:48:57

[CentOS] CentOS for vsftpd with MySQL Virtual user的相关文章

WEB服务器搭建(centos+lnmp+svn+vsftpd)

一.LNMP 1.安装 wget -c http://soft.vpser.net/lnmp/lnmp1.1-full.tar.gz && tar zxf lnmp1.1-full.tar.gz && cd lnmp1.1-full && ./centos.sh 2.根据需求升级 ./upgrade_nginx.sh #nginx ./upgrade_php.sh #php ./upgrade_mysql.sh #mysql 二.SVN 1.安装 yum i

CentOS 6.5 环境安装 MySQL 5.1

[环境介绍] 操作系统:     CentOS 6.5 i686 i386 MySQL版本: MySQL-community-5.1.73-1.rhel5.i386.rpm-bundle.tar [安装步骤] 1.创建mysql用户和组 # groupadd mysql # useradd -g mysql mysql 2.解压安装包 #进入安装包目录 $ cd /Software/MySQL_Install $ tar -xvf MySQL-community-5.1.73-1.rhel5.i

CentOS上配置Cacti监控MySQL

防伪码:即使没有辉煌的未来.如果能有无悔的往昔.   第九章 CentOS上配置Cacti监控MySQL 前言:在企业网络运维过程中,管理员必须随时关注服务器和网络的运行状况.以便及时发现问题,尽可能减少故障的发生.当网络中的设备.服务器等数量较多时,为了更加方便.快捷的获得各种监控信息,通常会借助于一些集中检测软件.本章将以著名的Cacti套件为例,介绍服务器集中监控体系的构建和使用. 一.Cacti官方简介: 1.Cacti是通过 snmpget来获取数据,使用 RRDtool绘画图形,而且

CentOS 6 下升级安装Mysql 5.5 完整步骤

使用系统CentOS 6.2本来已经系统自带安装了mysql 5.1,但是奈何5.1不支持utf8mb4字符集(详见:http://blog.csdn.net/shootyou/article/details/8236024 ),只能想办法将Mysql升级到5.5. 这果然是一次蛋疼的升级过程. 完整步骤: 1.首先备份数据,虽说成功的升级数据不会丢失,但是保险起见备份下. mysqldump -u xxx -h xxx -P 3306 -p --all-databases > database

centos 6.5 安装pure-ftpd + mysql

centos 6.5 安装pure-ftpd + mysql  一.自己到官网下载pure-ftp的tar.gz 的包,数据库我之前安装好了,这里就不写了,不会的自己百度 [email protected]:[/home/soft] % ll [email protected]:[/home/soft] % tar xf pure-ftpd-1.0.41.tar.gz 二.编译安装 [email protected]:[/home/soft] % cd pure-ftpd-1.0.41 [ema

CentOS源码编译安装MySQL 5.5.15

CentOS源码编译安装MySQL 5.5.15 文章目录 [隐藏] 安装编译工具 下载源码 安装cmake和bison 编译安装MySQL 一些相关设置 安装编译工具 yum install gcc gcc-c++ yum install ncurses-devel 下载源码 mkdir -p /tmp cd /tmp wget http://dev.mysql.com/get/Downloads/MySQL-5.5/mysql-5.5.15.tar.gz/from/http://mysql.

Linux CentOS下安装、配置mysql数据库

如果要在Linux上做j2ee开发,首先得搭建好j2ee的开发环境,包括了jdk.tomcat.eclipse的安装(这个在之前的一篇随笔中已经有详细讲解了Linux学习之CentOS(七)--CentOS下j2ee环境搭建),如果要开发web项目,我们当然可以安装一个myeclipse到Linux系统上去,这个安装方法和安装eclipse完全相同,就没有记录下来了,有了jdk.tomcat.eclipse我们就已经能进行我们的程序开发了,但是如果要做一个项目,哪怕是小的不能再小的项目都离不开数

Centos | Linux 下安装启动 mysql 出现 8618 [ERROR] Aborting,查看日志:Plugin 'FEDERATED' is disabled.

1.试试启动时指定配置文件 ./bin/mysqld_safe --defaults-file=mysql.cnf 或 ./bin/mysqld_safe --defaults-file=mysql.cnf $ 2.试试修改 mysql.cnf(也可能是my.cnf) 在 [mysqld]下指定tmpdir tmpdir = youTmpdir Centos | Linux 下安装启动 mysql 出现 8618 [ERROR] Aborting,查看日志:Plugin 'FEDERATED'

在CentOS 6 中安装 Apache,Mysql, PHP

1.安装Apache 在终端中输入下面的命令就可以安装Apache了: sudo yum install httpd sudo的意思是用root用户做什么操作.要点击y就确认下载安装了,非常方便. 然后用下面的命令来启动服务 sudo service httpd start 现在不用着急往下弄,直接在浏览器中输入DigitalOcean给你的IP地址,应该就可以访问到Apache的欢迎页面了.类似下面的样子: 是不是很酷?如果你的域名已经成功解析到你主机的IP地址上的话,用你的域名应该也可以访问