国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

Vsftpd配置詳解之與MySql的結合

運維 系統運維
Vsftpd 配置:Linux是一種開源的而且安全的操作系統,已經深入人心。作為Linux的一種流行發行版本,Ubuntu的使用更為普及。vsftpd作為Linux下一種最為方便的FTP程序,也為人們所推崇。本文講述的是Vsftpd配置詳解之與MySql的結合。

  Vsftpd 配置之結合MySql數據庫

  將vsftpd與MySql相結合,我們可以把用戶和日志信息放到數據庫里面去,如果再結合php來管理數據庫,則可以使vsftpd管理更加方便。下面我們就來討論一下基于MySql的虛擬戶和日志功能。

  使用MySql來實現虛擬用戶

  前面我們介紹了兩類用戶,關于匿名用戶的語句比較多,權限限制比較靈活;而本地用戶的特點是每個用戶對應一個密碼和主文件夾,登錄控制比較靈活。可不可以將兩者的優點結合一下呢?答案是肯定的,這就是虛擬用戶。關于虛擬用戶的啟用,需要使用以下兩條語句:

  1.   guest_enable=yes/no  
  2.  
  3.   guest_username=user_name 
  4.  

  上述guest_enable表示是否開啟虛擬用戶功能,guest_username表示虛擬用戶登錄后映射的本地用戶名。如果開啟虛擬用戶功能,本地用戶登錄后將映射到guest_username參數指定的用戶,主目錄也變成該用戶的主目錄。

  我們修改vsftpd主配置文件,變為下面的樣子:

  1.   listen=yes 
  2.  
  3.   anonymous_enable=yes 
  4.  
  5.   local_enable=yes 
  6.  
  7.   pam_service_name=vsftpd 
  8.  
  9.   write_enable=yes 
  10.  
  11.   dirlist_enable=yes 
  12.  
  13.   download_enable=yes 
  14.  
  15.   anon_upload_enable=yes 
  16.  
  17.   anon_mkdir_write_enable=yes 
  18.  
  19.   anon_other_write_enable=no  
  20.  
  21.   anon_umask=073 
  22.  
  23.   guest_enable=yes 
  24.  
  25.   guest_username=virftp 
  26.  

  再新建一個用戶virftp改變一下其主目錄的權限:

  1.   # useradd -d /var/virftp -s /sbin/nologin virftp  
  2.  
  3.   # chmod 704 /var/virftp  
  4.  

  這時再以/etc/passwd中的用戶登錄ftp,通過查看內容,會發現主目錄已經切換到/var/virftp/,可以下載和上傳文件,但不能改名和刪除。這就是說,限制匿名用戶的參數也同樣適用于本地用戶。

  如果想讓虛擬用戶像本地用戶那樣擁有每個用戶獨立的主目錄、獨立的配置文件和權限,又該怎么辦呢?還記得user_config_dir參數吧!在每個用戶獨立的配置文件里設定不同的權限和local_root參數就可以了。

  再來看看這個參數:

  1.   virtual_use_local_privs=yes/no  
  2.  

  從剛才的實驗可以看到,虛擬用戶登錄后,受到匿名用戶參數的限制。我們可以通將此參數的值改為yes,則虛擬用戶會變得和本地用戶一樣,擁有和本地用戶一樣的特權。由于我們平常都是看中了匿名用戶限制參數比較細致這個特點才啟用虛擬用戶的,所以此參數默認值為no!

  下面我們結合MySql,把用戶登錄信息放到數據庫里面去。首先我們需要安裝MySql。

  到官網下載MySql,為了簡單起見,我們下載在linux下已經編譯好的版本。我下載的版本是mysql-5.1.18-beta-linux-i686-glibc23.tar.gz,然后照下面的步驟來安裝MySql。

  1.   # groupadd mysql  
  2.  
  3.   # useradd -g mysql mysql  
  4.  

  如果系統中已經有了mysql用戶,就可以省掉這步操作。

  1.   # cd /usr/local  
  2.  
  3.   # tar zxvf mysql-5.1.18-beta-linux-i686-glibc23.tar.gz  
  4.  
  5.   # ln -s mysql-5.1.18-beta-linux-i686-glibc23 mysql  
  6.  

  如果原來系統中已經安裝舊版mysql,***將它卸載,除非你有足夠的把握很好地面對系統中的兩個mysql;通常習慣將mysql安裝在/usr/local/mysql中,但為了將來版本升級的需要,建議使用鏈接方式使用mysql。

  1.   # cd mysql  
  2.  
  3.   # chown -R mysql:mysql .  
  4.  
  5.   # scripts/mysql_install_db --user=mysql 
  6.  

  初始化mysql數據庫,這步之前必須保證mysql用戶有權限訪問mysql目錄。

  1.   # chown -R root .  
  2.  
  3.   # chown -R mysql data  
  4.  

  ***做這兩步,至少官方文檔是這么建議的。

  MySql的命令和man文檔并不在PATH和MANPATH中,所以我們要手動加入。打開vi /etc/profile文件,找到export PATH ...那一行,大約在40行左右,在它的前面加上一行:

  1.   PATH=”$PATH”:/usr/local/mysql/bin  
  2.  

  打開/etc/man.config(有的版本為/etc/man.conf),在它的任何地方加入一行:

  1.   MANPATH /usr/local/mysql/man  
  2.  

  到這時mysql就已經安裝好了,通過這個命令啟動mysql:

  /usr/local/mysql/bin/mysqld_safe --user=mysql &

  為了讓mysql支持開機啟動,執行下面的命令:

  1.   # cp support-files/mysql.server /etc/rc.d/init.d/mysqld  
  2.  
  3.   # chkconfig –add mysqld  
  4.  

  這樣就可以讓mysql以服務的方式開機啟動,且還可以使用如下命令管理mysql服務:

  # service mysqld {start|stop|restart|reload|force-reload|status}

  啟動mysql服務,檢測下是否正常運行:

  1.   # netstat -l|grep mysql  
  2.  
  3.   tcp 0 0 *:mysql *:* LISTEN  
  4.  
  5.   unix 2 [ ACC ] STREAM LISTENING 25534 /tmp/mysql.sock  
  6.  

  看到了吧,mysql已經在監聽了,但它的socket file在/tmp/下,郁悶!

  默認情況下,mysql沒有密碼,任何人都可以登入。為了加強安全性,我們給mysql加上root帳號密碼:

  1.   # mysqladmin -u root password 'your_P@ssw0rd'  
  2.  

  這樣以后登錄就需要密碼了:

  1.   # mysql -u root -p  
  2.  
  3.   Enter password:  
  4.  
  5.   Welcome to the MySQL monitor. Commands end with ; or \g.  
  6.  
  7.   Your MySQL connection id is 5  
  8.  
  9.   Server version: 5.1.18-beta MySQL Community Server (GPL)  
  10.  
  11.   Type 'help;' or '\h' for help. Type '\c' to clear the buffer.  
  12.  
  13.   mysql> 
  14.  

  建立數據庫ftpdb:

  1.   mysql> create database ftpdb;  
  2.  

#p#

  在數據庫ftpdb中建立一個表ftpuser,表中有username和password字段:

  1.   mysql> use ftpdb;  
  2.  
  3.   Database changed  
  4.  
  5.   mysql> create table ftpuser(username char(20) not null, password char(64) not null);  
  6.  
  7.   Query OK, 0 rows affected (0.15 sec)  
  8.  

  這里要注意密碼字段的長度,不同的算法生成的密文長度是不一樣的,建議不要少于50位,否則可能導致密文在存儲時被截短。

  我們插入兩條記錄作為兩個ftp的登錄名和密碼,使用mysql自帶的password函數來加密密碼:

  mysql> insert into ftpuser values('test1',password('abc'));

  Query OK, 1 row affected, 1 warning (0.08 sec)

  mysql> insert into ftpuser values('test2',password('123'));

  Query OK, 1 row affected, 1 warning (0.00 sec)

  mysql> select * from ftpuser;

  ---------- -------------------------------------------

  | username | password |

  ---------- -------------------------------------------

  | test1 | *0D3CED9BEC10A777AEC23CCC353A8C08A633045E |

  | test2 | *23AE809DDACAF96AF0FD78ED04B6A265E0***A257 |

  ---------- -------------------------------------------

  2 rows in set (0.00 sec)

  然后我們再建立一個可以讓ftp服務登陸數據庫的用戶:

  mysql> grant select on ftpdb.ftpuser to ftpdb_query@localhost identified by 'P@ssw0rd';

  這個用戶只能瀏覽 ftpdb 數據庫下的 ftpuser 表中內容,我們如果想以后分配一個可以完全管理 ftpdb 數據庫的用戶,再這樣:

  mysql> grant all on ftpdb.* to ftpdb_all@localhost identified by 'P@ssw0rd';

  到這里MySql的設置就算完了,接下來安裝 PAM 基于 mysql 數據庫的認證插件,我們可以到http: //sourceforge.net/projects/pam-mysql/下載得到。我下載的文件是pam_mysql- 0.7RC1.tar.gz。

  1.   # tar zxvf pam_mysql-0.7RC1.tar.gz  
  2.  
  3.   # cd pam_mysql-0.7RC1  
  4.  
  5.   # ./configure –with-mysql=/usr/local/mysql  
  6.  
  7.   # make  
  8.  
  9.   # make install  
  10.  

  這里要注意兩點,一是我們的mysql是手動安裝在/usr/local/mysql下的,因此./configure命令需要指定mysql安裝目錄;二是安裝好之后,pam_mysql.so被安裝到了/usr/lib/security. 如果make過程出現錯誤,不要理會,只要產生pam_mysql.so文件即可,我們可以直接將此文件考入/lib/security/目錄。

  然后來編寫PAM認證文件:

  1.   # vi /etc/pam.d/ftpdb  
  2.  
  3.   auth required /usr/lib/security/pam_mysql.so user=ftpdb_query passwd=P@ssw0rd host=localhost db=ftpdb table=ftpuser usercolumn=username passwdcolumn=password crypt=2 
  4.  
  5.   account required /usr/lib/security/pam_mysql.so user=ftpdb_query passwd=P@ssw0rd host=localhost db=ftpdb table=ftpuser usercolumn=username passwdcolumn=password crypt=2 
  6.  

  注意,整個這個文件中只有auth和account兩行內容,中途不要加回車換行;文件中不要再有包含其它pam模塊的行;如果pam_mysql.so文件沒有在/lib/security目錄,就需要指定文件路徑。文件中其它字段的意思是:

  user 訪問數據庫用戶名

  passwd 訪問數據庫用戶密碼

  host 數據庫主機

  db 數據庫名

  table 表名

  usercolumn 用戶列名

  passwdcolumn 密碼列名

  crypt 密碼驗證機制;0 代表明文,1 代表DES 加密,2 代表Mysql的password()函數加密,3代表md5算法,4代表sha加密。

  現在我們修改vsftpd主配置文件/etc/vsftpd/vsftpd.conf,把pam_service_name的值改為ftpdb,也就是我們剛才建立的那個PAM認證文件的名字。再登錄服務器測試,可以發現/etc/passwd中的用戶已經無法登錄到服務器了,而數據庫中存儲的用戶名是可以登錄的。我們還可以按前面所述的方法為每個虛擬用戶建立獨立的配置文件,指定獨立的主目錄;還可以結合apache服務建立php頁面,然后實現讓用戶在web界面注冊帳號、修改密碼,這要比原來的認證方式靈活得多。

  在MySql中記錄日志

  接下來我們看一下如何利用剛才的PAM 模塊來結合mysql 數據庫記錄vsftpd 服務的日志。在介紹之前,我們來看看vsftp中關于日志記錄的參數。

  1.   xferlog_enable=yes/no //是否啟用 xferlog 日志格式  
  2.  
  3.   xferlog_std_format=yes/no //是否采用標準格式記錄日志  
  4.  
  5.   xferlog_file=/path/to/logfile //xferlog 日志文件所在位置,默認為/var/log/xferlog  
  6.  

  上面的參數設置記錄xferlog日志的格式。這是早期Wu-ftpd服務的日志格式,它會記錄上傳和下載的動作。vsftpd也有專有的日志格式,用下列參數設置:

  1.   dual_log_enable=yes/no //是否采用Vsftpd自己的日志記錄方式  
  2.  
  3.   log_ftp_protocol=yes/no //是否記錄所有的ftp命令日志  
  4.  
  5.   vsftpd_log_file=/path/to/logfile //指定vsftpd 日志文件位置,默認為/var/log/vsftpd.log  
  6.  

  xferlog_enable的默認值為no(vsftpd提供的配置文件模版將其值改為了yes),dual_log_enable的默認值也為no,就是說默認情況下vsftpd是不記錄日志的。我們也可以將日志信息寫入系統日志/var/log/messages中,使用如下參數:

  syslog_enable=yes/no

  還是建議大家把日志記錄為單獨的文件,以便瀏覽和管理。實驗比較簡單,我們就不做了。

  對于使用文件來記錄日志的方式來說,我們必須登錄到服務器之后,才能查看日志。這樣做不方便,不靈活。我們可以把日志放到數據庫中,結合www服務建立一個瀏覽日志的頁面,這樣就非常舒服的看到web方式的日志了。下面來看看如何將日志寫入數據庫中去。

  首先必須使用虛擬用戶所在的同一個數據庫,新建立存儲日志的表:

  mysql> create table ftplog

  -> (log char(100),

  -> user char(20),

  -> host char(20),

  -> time datetime,

  -> pid int);

  修改 PAM 配置文件,在原來的基礎上我們改動一下:

  1.   # vi /etc/pam.d/ftpdb  
  2.  
  3.   auth required /usr/lib/security/pam_mysql.so user=ftpdb_all passwd=P@ssw0rd host=localhost db=ftpdb table=ftpuser usercolumn=username passwdcolumn=password crypt=2 sqllog=yes logtable=ftplog loglogmsgcolumn=log logusercolumn=user loghostcolumn=host logtimecolumn=time logpidcolumn=pid  
  4.  
  5.   account required /usr/lib/security/pam_mysql.so user=ftpdb_all passwd=P@ssw0rd host=localhost db=ftpdb table=ftpuser usercolumn=username passwdcolumn=password crypt=2 sqllog=yes logtable=ftplog loglogmsgcolumn=log logusercolumn=user loghostcolumn=host logtimecolumn=time logpidcolumn=pid  
  6.  

  注意在這個文件中依然就是原來的兩行,其中加入的內容分別對應如下:

  sqllog 表示是否將日志記錄到數據庫中

  logtable 記錄日志的表名

  logmsgcolumn 記錄日志信息的列

  logusercolumn 登錄用戶

  loghostcolumn 登錄主機

  logtimecolumn 登錄時間

  logpidcolumn 處理該用戶連接的進程pid

  這次我換了一個登陸數據庫用戶,使用先前建立的有完全權限的用戶ftpdb_all,這個用戶才有在數據庫中使用insert命令的權限。

【編輯推薦】

  1. vsftpd配置詳解之簡介篇
  2. vsftpd配置詳解之軟件安裝和卸載
  3. vsftpd配置詳解之配置vsftpd服務
  4. Vsftpd配置詳解之配置文件詳解
  5. Vsftpd配置詳解之Vsftpd配置下高級操作
  6. Vsftpd配置詳解之與MySql的結合
  7. vsftpd配置詳解之實現加密數據傳輸
責任編輯:zhaolei 來源: CSDN
相關推薦

2011-03-02 11:32:55

vsftpd配置

2011-03-02 13:23:42

Vsftpd配置

2011-03-02 13:12:37

vsftpd配置

2011-03-02 11:25:10

vsftpd配置

2011-03-02 11:28:28

vsftpd配置

2011-03-04 12:41:53

VsftpdTCP_wrapper

2011-03-04 16:34:03

vsFTPd

2010-08-12 13:15:26

MySQL集群

2017-05-23 14:56:49

MySQLvsftpd虛擬用戶

2011-02-22 13:28:43

Linuxvsftpd配置

2011-03-02 10:19:44

2010-01-13 13:27:07

CentOS vsft

2011-03-03 16:18:29

VSFTPD啟動停止

2010-01-13 14:45:25

CentOS配置

2011-03-04 14:04:43

2011-03-04 14:01:48

VSFTPD.CONF

2011-03-04 13:58:41

2011-03-02 11:23:48

2011-08-23 17:26:05

2010-02-22 18:27:14

CentOS vsft
點贊
收藏

51CTO技術棧公眾號

高清在线一区二区| 国产精品高潮粉嫩av| 一个色的综合| 精品国产乱码久久久久久果冻传媒 | 天天综合日日夜夜精品| 这里只有精品66| 久久久久久久久99精品大| 亚洲精品国产欧美| 在线免费观看黄色片| 成人av在线影院| 精品无人区一区二区三区竹菊| 国产伦精品一区二区三区在线播放 | 日韩高清不卡在线| 国产精品网站入口| 精品成人18| 精品一区二区亚洲| 麻豆视频网站在线观看| 一区二区成人在线视频| 大j8黑人w巨大888a片| 日韩av中文字幕一区二区| 国产精品久久久久久久久| 国产精品18| 亚洲无限av看| 欧美13videosex性极品| 欧美在线看片a免费观看| 激情婷婷丁香| 久久丝袜美腿综合| 日韩一二区视频| 久久青草久久| 国产精品裸体一区二区三区| 经典一区二区| 性色av一区二区三区红粉影视| 成人影院在线免费观看| 亚洲国产私拍精品国模在线观看| 日本不卡不卡| 欧美日韩精品系列| 国产黄在线观看免费观看不卡| 亚洲高清免费一级二级三级| www.男人的天堂| 亚洲丝袜另类动漫二区| 国产真实伦在线观看| 国产亚洲制服色| 日韩av手机版| 中文字幕欧美国产| 国产一伦一伦一伦| 亚洲欧美在线高清| 久草福利资源站| 一区二区三区四区蜜桃| 亚洲精品第一国产综合野草社区| 亚洲免费资源在线播放| bdsm精品捆绑chinese女| 五月开心婷婷久久| 黄色大片在线看| 精品久久中文字幕久久av| 国产高潮av| 亚洲精品一区中文| 米奇.777.com| 久久久久免费观看| 亚洲欧洲精品在线观看| 国产午夜一区| 成人av资源| 日韩欧美小视频| 91精品欧美福利在线观看| 色婷婷在线播放| 亚洲精品国产电影| 久久不卡日韩美女| 欧美激情小视频| 国产一区不卡| 视色,视色影院,视色影库,视色网 日韩精品福利片午夜免费观看 | 一区二区三区 欧美| 国产精品一区二区果冻传媒| 欧美尤物一区| 国产福利一区二区三区视频在线 | 国产伦子伦对白在线播放观看| 美腿丝袜亚洲综合| 久久av.com| 99亚洲伊人久久精品影院| 国产精品一区二区无线| αv一区二区三区| 天堂俺去俺来也www久久婷婷| 国产啪精品视频网站| 综合激情五月婷婷| 国产精品久久中文| 久久aⅴ国产紧身牛仔裤| 亚洲欧洲99久久| 国产精品电影在线观看| 欧美福利一区| 337p亚洲精品色噜噜狠狠p| 国产日韩视频一区二区三区| 污视频免费在线看| 亚洲精品国产精品久久清纯直播 | 日本不卡1234视频| 欧美精品999| 亚洲免费大片| 日韩av一二三四区| 欧美日韩国产区| 性国裸体高清亚洲| 国产精品av免费在线观看| 可以看av的网站久久看| 上原亚衣加勒比在线播放| 日韩欧美亚洲国产另类| 91成人短视频| 久久精品99| 中文字幕免费不卡在线| 污网站在线免费看| 热re91久久精品国99热蜜臀| 美女诱惑一区二区| 最新av免费在线| 久久久精品国产一区二区| 欧美日韩亚洲一区三区| 国产xxxxx在线观看| 欧美一卡2卡三卡4卡5免费| 欧美日韩夜夜| 艳母动漫在线免费观看| 色综合天天性综合| 91精品国产综合久久男男| 韩国av一区二区三区四区 | 久久精品卡一| 天堂资源av| 免费成人高清在线视频| 成人av在线资源| 午夜视频在线| 日本成人免费在线| 成人中文字幕在线| 老司机福利在线视频| 欧美精品video| 国产福利一区在线| 超碰超碰在线| 亚洲精品免费网站| 1区2区3区精品视频| 主播大秀视频在线观看一区二区| 国产一区二区无遮挡| 亚洲美女淫视频| 91午夜在线播放| 美女呻吟一区| 三上悠亚久久精品| 亚洲精品国产精品乱码不99按摩 | 国产免费一区二区三区四在线播放| 精品久久香蕉国产线看观看亚洲 | 亚洲欧洲在线观看av| 日韩不卡在线| 亚洲欧美丝袜| 欧美人妖巨大在线| 国产精品大片| www在线播放| 99久久一区三区四区免费| 亚洲电影一级黄| 国产aⅴ精品一区二区三区久久| 少妇性l交大片| 欧美国产日产韩国视频| 久久久久久亚洲综合影院红桃| 国产精品高潮久久| 欧洲精品在线播放| 中文字幕av一区二区| 国产不卡一区视频| 成人国产精品入口免费视频| 日本久久久网站| 日韩在线视频播放| 久久久久青草大香线综合精品| 成人日韩视频| 日本在线观看a| 美日韩在线视频| 国产蜜臀97一区二区三区| 欧美日韩黄色| www.com操| 国产91精品最新在线播放| 亚洲日本青草视频在线怡红院| 四虎5151久久欧美毛片| 婷婷综合影院| 亚洲a级在线播放观看| 欧美日韩免费视频| 日本美女一区二区| 欧美极度另类| 青青在线免费观看视频| 国产国语刺激对白av不卡| 一区二区久久久| 亚洲国产日本| 亚洲黄色中文字幕| 91视频免费版污| 国产精品第100页| 欧美日韩在线播放| 日韩伦理精品| 黄色成人在线免费观看| 精品国产依人香蕉在线精品| 久久久99精品免费观看不卡| 欧美男人操女人视频| 免费在线看v| 亚洲成人蜜桃| www.欧美免费| 亚洲影院久久精品| 国产视频一区在线观看一区免费| 51漫画成人app入口| 免费欧美一级视频| 国产z一区二区三区| 欧美日韩国产综合久久| 成人激情综合网站| 希岛爱理一区二区三区| 欧美sm一区| 一本免费视频| 老司机午夜网站|