Vsftpd FTP服務器-虛擬用戶(mysql)和本地用戶同時驗證

Vsftpd FTP服務器-虛擬用戶(mysql)和本地用戶同時驗證

時間:2010-10-10 17:14 來源: 做者: 點擊: 35次
所需軟件:
1.vsftpd-2.0.6.tar.gz
2.pam_mysql-0.7RC1.tar.gz
3.Mysql5.0.27 1、安裝vsftpd
[root@ganwenliang soft]# tar xzfv vsftpd-2.0.6.tar.gz
[root@ganwenliang vsftpd-2.0.6]# make
[root@ganwenliang vsftpd-2.0.6]# make install
[root@ganwenliang vsftpd-2.0.6]# cp vsftpd.conf /etc
在系統中添加用戶soft,做爲guest用戶
[root@ganwenliang vsftpd-2.0.6]# adduser soft
編輯vsftpd.conf在最下面加入下面三行:
guest_enable=YES
guest_username=soft
listen=YES 啓運vsftpd:
[root@ganwenliang vsftpd-2.0.6]# /usr/local/sbin/vsftpd &
若是你們遇到諸如「vsftpd:500 OOPS: bad bool value in config file for: anonymous_enable」的報錯的話,能夠看一下我這篇文章,
2、安裝MySQL
[root@ganwenliang soft]# tar -zvxf mysql-max-5.0.27.tar.gz
[root@ganwenliang soft]# cd mysql-max-5.0.27
[root@ganwenliang mysql-max-5.0.27]# ./configure --prefix=/usr/local/mysql
[root@ganwenliang mysql-max-5.0.27]# make
[root@ganwenliang mysql-max-5.0.27]# make install
[root@ganwenliang mysql-max-5.0.27]# cp support-files/my-medium.cnf /etc/my.cnf 添加mysql用戶及用戶組
[root@ganwenliang soft]# groupadd mysql
[root@ganwenliang soft]# useradd -g mysql mysql
修改mysql目錄權限
[root@ganwenliang soft]# chown -R root /usr/local/mysql
[root@ganwenliang soft]# chgrp -R mysql /usr/local/mysql
[root@ganwenliang soft]# chown -R mysql /usr/local/mysql/var
生成mysql系統數據庫
[root@ganwenliang soft]# /usr/local/mysql/bin/mysql_install_db --user=mysql
啓動mysql服務
[root@ganwenliang soft]# /usr/local/mysql/bin/mysqld_safe --user=mysql &
如出現 Starting mysqld daemon with databases from /usr/local/mysql/var
表明正常啓動mysql服務了, 按Ctrl + C 跳出
修改 mysql 的 root 密碼
[root@ganwenliang soft]# /usr/local/mysql/bin/mysqladmin -u root -p password "123456"
創建相應的數據庫、表來存放FTP用戶數據:
create database ftp;
CREATE TABLE `logs` (
`msg` varchar(255) default NULL,
`user` char(16) default NULL,
`pid` int(11) default NULL,
`host` char(32) default NULL,
`rhost` char(32) default NULL,
`logtime` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
) ENGINE=MyISAM DEFAULT CHARSET=gb2312; #
# Table structure for table users
# DROP TABLE IF EXISTS `users`;
CREATE TABLE `users` (
`name` char(16) character set gb2312 collate gb2312_bin default NULL,
`passwd` char(48) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=gb2312; 若是你們遇到說找不到gb2312的錯誤提示的話,能夠從新編譯mysql,讓其支持gbk。還有一個方法是將上面sql語句中的「 DEFAULT CHARSET=gb2312」去掉 3、安裝Pam_mysql
[root@ganwenliang soft]# tar xzfv pam_mysql-0.7pre3
[root@ganwenliang soft]# cd pam_mysql-0.7pre3
由於我這人是本身安裝的Mysql,因此要設置兩個軟連接,不然pam_mysql編譯會通不過
[root@ganwenliang pam_mysql-0.7pre3]# ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql
[root@ganwenliang pam_mysql-0.7pre3]# ln -s /usr/local/mysql/include/mysql /usr/include/mysql
如今開始編譯:
[root@ganwenliang pam_mysql-0.7pre3]# ./configure --with-openssl
[root@ganwenliang pam_mysql-0.7pre3]# make
[root@ganwenliang pam_mysql-0.7pre3]# make install
[root@ganwenliang security]# ls
classpath.security libgcj.security pam_mysql.la pam_mysql.so
[root@ganwenliang security]# pwd
/usr/lib/security
[root@ganwenliang security]#
完成後,咱們須要的pam_mysql.so就在這個目錄了4、配置pam文件
要想實現虛擬用戶和本地用戶同時可以驗證pam文件必須使用這兩個參數sufficient和required
這是個人vsftpd.mysql文件,你們能夠參考:
前面2行用於虛擬用戶認證,當認證不經過時,自動驗證本地用戶(後面5行)
auth sufficient     /usr/lib/security/pam_mysql.so user=root passwd=mysql_password host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid log
hostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1
account sufficient      /usr/lib/security/pam_mysql.so user=root passwd=mysql_password host=localhost db=ftp table=users usercolumn=name passwdcolumn=passwd crypt=2 sqllog=1 logtable=logs logmsgcolumn=msg logusercolumn=user logpidcolumn=pid
loghostcolumn=host logrhostcolumn=rhost logtimecolumn=logtime verbose=1 auth       required     pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
auth       required     pam_stack.so service=system-auth
auth       required     pam_shells.so
account    required     pam_stack.so service=system-auth
session    required     pam_stack.so service=system-auth 其中 user=root passwd=mysql_password 爲你mysql的用戶名和密碼,請注意修改一下 個人vsftpd.conf部份內容給你們參考:
guest_enable=YES
guest_username=soft
pam_service_name=/etc/pam.d/vsftpd.mysql
user_config_dir=/etc/vsftpd/vsftpd_user userlist_enable=YES
listen=YES
tcp_wrappers=YES 如需給用戶設置單獨的權限,在/etc/vsftpd/vsftpd_user 創建以用戶命名的文件,如test, 而後 vi /etc/vsftpd/vsftpd_user/test,將下面代碼複製進去

#anon_world_readable_only=NO
local_root=/home/dong
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
anon_mkdir_write_enable=YES
virtual_use_local_privs=YES
chmod_enable=YES
file_open_mode=0775
mysql

之後過程在RHEL AS5 中驗證經過,你們有什麼問題能夠給我留言,也歡迎你們訪問個人網站, sql

 
相關文章
相關標籤/搜索