成人在线你懂的-成人在线免费小视频-成人在线免费网站-成人在线免费视频观看-日韩精品国产一区二区-日韩精品国产一区

掃一掃
關(guān)注微信公眾號(hào)

MySQL下數(shù)據(jù)備份系統(tǒng)解決方案
2007-11-09   IT168

隨著計(jì)算機(jī)網(wǎng)絡(luò)的普及,計(jì)算機(jī)病毒有了快速傳播的機(jī)會(huì),并且對(duì)數(shù)據(jù)文件的破壞日益嚴(yán)重,用戶需要經(jīng)常對(duì)個(gè)人重要數(shù)據(jù)做異地備份。基于多用戶和數(shù)據(jù)隱私的考慮,提出了個(gè)人數(shù)據(jù)備份系統(tǒng)解決方案。它利用網(wǎng)絡(luò)存儲(chǔ)設(shè)備具有的大容量、高可靠性、高安全性特點(diǎn),為用戶提供一定容量的空間來保存?zhèn)€人數(shù)據(jù),同時(shí)利用軟件的權(quán)限管理很好地實(shí)現(xiàn)個(gè)人數(shù)據(jù)的保密性。

目前Linux下FTP服務(wù)器軟件主要有Wu-FTP和ProFTPD兩種。Wu-FTP是Red Hat Linux預(yù)裝軟件,但安全漏洞很多。ProFTPD針對(duì)Wu-FTP的弱項(xiàng)而開發(fā),除改進(jìn)了安全性外,還具備許多特點(diǎn),如設(shè)置簡單、能以Stand-alone模式運(yùn)行等。ProFTPD已經(jīng)成為繼Wu-FTP之后最為流行的FTP服務(wù)器軟件之一。

ProFTPD在1.2版本之前使用Linux用戶賬號(hào)來管理用戶,即使用口令文件。該方式存在很多不足,與數(shù)據(jù)庫操作相比,用戶賬號(hào)的增加、口令的修改及賬號(hào)的刪除顯得十分復(fù)雜,并且文件無法支持并發(fā)讀寫;在Linux中用戶賬號(hào)具有Telnet的權(quán)限,安全上存在隱患;口令文件只有root賬號(hào)可以修改,如果使用瀏覽器方式修改此文件,在技術(shù)上有一定難度。

在ProFTPD 1.2.4版中增加了數(shù)據(jù)庫管理用戶的功能,目前只支持MySQL數(shù)據(jù)庫,并且該賬號(hào)只適用于FTP 服務(wù)器,不存在安全上的隱患。本文使用的開發(fā)平臺(tái)是Linux + ProFTPD + MySQL組合。

總體設(shè)計(jì)

系統(tǒng)后臺(tái)采用FTP服務(wù)器來為用戶提供管理文件功能,可使用支持FTP 功能的各種軟件來操作數(shù)據(jù)文件。解決方案實(shí)現(xiàn)用戶賬號(hào)自動(dòng)申請(qǐng)受理、密碼修改,網(wǎng)絡(luò)管理人員可以使用瀏覽器來管理賬號(hào)修改空間限量、修改口令及刪除賬號(hào)等功能。

系統(tǒng)的核心是如何使用開發(fā)語言來動(dòng)態(tài)地配置ProFTPD,實(shí)現(xiàn)對(duì)數(shù)量眾多用戶的賬號(hào)管理。

解決方案詳細(xì)內(nèi)容

有關(guān)ProFTPD的安裝和配置文件內(nèi)容的資料可以詳見系統(tǒng)文檔,本文重點(diǎn)介紹和數(shù)據(jù)庫有關(guān)的部分。

1. 安裝ProFTPD

(1)安裝MySQL數(shù)據(jù)庫,創(chuàng)建MySQL的安裝目錄的符號(hào),連接到/usr/local/mysql。

(2)編譯前的配置,將MySQL和空間限量模塊增加到編譯的選項(xiàng)中,代碼如下:

# ./configure --with-includes = /usr/local/mysql/include --with-libraries=/usr/local/mysql/lib/mysql --with- modules=mod_sql:mod_sql_mysql:mod_quota

2. 增加用戶

在MySQL中創(chuàng)建FTPusers數(shù)據(jù)庫和users表用來保存FTP賬號(hào)信息,代碼如下:

CREATE TABLE users (
            userid varchar(50) NOT NULL,
            //用戶的FTP 賬號(hào)名稱
            password varchar(50),
            // 用戶的FTP賬號(hào)密碼
            uid int(5) DEFAULT '0' NOT NULL,
            //用戶主目錄的 uid
            gid int(5) DEFAULT '65533' NOT NULL,
            //用戶主目錄的 gid
            homedir varchar(255),
            //用戶主目錄
            count int(11) DEFAULT '0',
            //登陸次數(shù)
            ftime timestamp(14),
            //最后一次登陸時(shí)間
            shell varchar(255) DEFAULT '  /bin/bash',
            PRIMARY KEY (userid)
            //主關(guān)鍵字
            );


在proftpd.conf中增加有關(guān)MySQL的配置,代碼如下:

SQLConnectInfo ftpusers@MySQL服務(wù)器名 username password
            //數(shù)據(jù)庫連接
            SQLDoGroupAuthoff
            SQLAuthTypesPlaintext
            SQLDoAuthon
            SQLHomedirOnDemandon
            SQLUserTableusers
            //指定使用的表名
            SQLUsernameFielduserid
            //以下信息需要與users表中的字段對(duì)應(yīng)
            SQLPasswordFieldpassword
            SQLHomedirFieldhomedir
            SQLLoginCountFieldcount
            SQLShellFieldshell
            SQLAuthoritativeoff
            SQLLogStatson
            SQLMinUsergid99
            SQLMinUseruid14
            SQLLogDirsfcdir
            SQLDefaultgid99


創(chuàng)建用戶時(shí)需要在表中增加記錄,即完成賬號(hào)的增加。在用戶第一次使用該賬號(hào)登陸時(shí),系統(tǒng)自動(dòng)創(chuàng)建用戶主目錄并依據(jù)uid和gid的值來設(shè)置目錄的用戶和組。根據(jù)配置文件中的缺省空間限量的值生成限量文件。以下是ProFTPD.conf中設(shè)置缺省空間限量的配置:

DefaultQuota204800000 //200MB大小
            QuotaTypehard


3. 刪除用戶

刪除用戶需要完成兩方面工作:一方面需要對(duì)MySQL的users表做相應(yīng)的刪除;另一方面要?jiǎng)h除用戶主目錄。需要注意的是,由于采用瀏覽器方式,開發(fā)系統(tǒng)的執(zhí)行用戶應(yīng)具有對(duì)用戶主目錄的寫權(quán)限。用戶主目錄的用戶和組是由users表中的uid和gid來確定的。

4. 修改空間限量

在用戶主目錄創(chuàng)建后,系統(tǒng)自動(dòng)生成.quota空間限量文件。該文件只能被root修改,文件的格式為“總?cè)萘?使用的容量”,賬號(hào)管理系統(tǒng)只需使用新的限量文件覆蓋即可。對(duì)“使用的容量”,F(xiàn)TP服務(wù)器每次登陸時(shí)會(huì)自動(dòng)計(jì)算。如何使軟件系統(tǒng)具有root權(quán)限,可以參看“sudoers”。

5.日志記錄

從安全角度考慮,日志是很重要的一部分。傳統(tǒng)的日志都是記錄到文件中,而ProFTPD提供了將日志記錄到數(shù)據(jù)庫中的功能。這既方便了日志的查詢,又極大地提高了日志查詢速度。

首先需要在MySQL數(shù)據(jù)庫中創(chuàng)建FTP_log數(shù)據(jù)表,代碼如下:

CREATE TABLE FTP_log (
            id int(12) unsigned DEFAULT '0' NOT NULL auto_increment,
            //主關(guān)鍵字
            filename varchar(255),
            //文件名
            filesize int(10) unsigned,
            //文件大小
            email varchar(20) NOT NULL,
            //用戶的賬號(hào)
            ip varchar(15) NOT NULL,
            //用戶的ip地址
            action varchar(255),
            //用戶操作的內(nèi)容
            ftime datetime,
            //操作的時(shí)間
            PRIMARY KEY (id)
            );


修改ProFTPD.conf文件,將“日志記錄到文件”關(guān)閉,設(shè)置如下:

TransferLognone


增加關(guān)于日志的配置,需要把用戶的上載和下載及刪除操作記錄到日志中,記錄的內(nèi)容用戶可以定置。例如:

SQLLog RETR,STOR,DELE insert FTP_log "null,'%f', %b, '%u','%h','%r',now()"


被記錄的操作有以下幾個(gè):

◆RETR,文件的下載;

◆STOR,文件的上傳;

◆DELE,文件的刪除。

其中日志記錄有以下內(nèi)容:

◆%f,上載或下載的文件名稱包含絕對(duì)路徑;

◆%b,文件的大小,以字節(jié)為單位;

◆%u,用戶使用的FTP賬號(hào);

◆%h,用戶的IP地址;

◆now(),為MySQL提供系統(tǒng)時(shí)間函數(shù)。

結(jié)束語

在詳細(xì)了解系統(tǒng)關(guān)鍵技術(shù)后,開發(fā)語言可以根據(jù)實(shí)際情況來選擇,并可結(jié)合電子郵件服務(wù)器,實(shí)現(xiàn)賬號(hào)和密碼的統(tǒng)一,方便用戶操作。有關(guān)MySQL和ProFTPD的詳細(xì)配置等問題,由于篇幅有限就不一一闡述。

熱詞搜索:

上一篇:新一代中小企業(yè)網(wǎng)絡(luò)運(yùn)行管理標(biāo)準(zhǔn)
下一篇:Juniper強(qiáng)化安全接入SSL VPN安全解決方案

分享到: 收藏
主站蜘蛛池模板: 91天堂| 赖小子电影| 公交车上的那些事| 我的世界 电影| 电影网1905免费版| 许良| 回复者术之重启人生| 插树岭演员表| 红色娘子军歌词| 上锁的房间演员表| 国产精品久久久久精品三级ⅰ | 猎仇者电影| 日韩女同性恋| 芭芭拉·布薛特| 在线观看亚洲免费视频| 什么水果是热性的| 全家福演员表| 康熙王朝多少集| 膨腹爱好者撑肚子视频| 龙虎少年队2| laizi| 格雷的五十道阴影| 美少女战士变身| 模特走秀视频| 山子高科股吧| 张绍荣| 仁爱版九年级英语上册教案| 恐怖托马斯| 铁探粤语版在线观看| 同妻俱乐部| 金珠玛米赞二胡曲简谱| 拔萝卜视频免费播放| 小学五年级下册数学期中试卷| 昭和农村犯罪电影| 即便如此我依然爱着我的老婆| 性感美女动漫| 《万万没想到》电影| 无内裤全透明柔术视频| 清纯女被强行开了处视频| 《美之罪》在线观看| 极寒之城剧情详细介绍|