做業06

一、詳細描述一次加密通信的過程,結合圖示最佳。html

答:mysql

1.    拓撲圖linux


 wKiom1jqPjGApIriAABDQ-y78E0971.jpg

2.    加密通信的過程nginx

     客戶端須要先獲取並信任CA機構的證書web

     客戶端向Web服務器發送https請求sql

     服務器響應並處理請求,向客戶端發送本身的證書數據庫

     客戶端獲取服務器的證書,檢查證書的合法性,具體包括: apache

    1.     該證書是不是由本身所信任的頒發機構頒發ubuntu

    2.     該證書是否過時vim

    3.     該證書是否已被吊銷

    4.     主機名與證書中的是否一致

      證書驗證經過後,從證書中獲取Web服務器的公鑰。客戶端生成一個隨機數做爲加密用密鑰,使用公鑰進行加密,並傳送給Web服務器

      Web服務器獲取客戶端發送來的密文,使用本身的私鑰進行解密,獲取隨機數。以後的通訊過程就使用該隨機數做爲密鑰進行對稱加密

      客戶端獲取到報文後,使用相同的隨機數進行解密

 

 

二、描述建立私有CA的過程,以及爲客戶端發來的證書請求進行辦法證書。

答:

實驗拓撲:

私有CA

192.168.1.101  Centos6

 

webserver

192.168.1.102  Centos6

 

實驗過程:

1.    建立私有CA:

192.168.1.101上操做

檢查私有CA所需的文件和目錄

cat /etc/pki/tls/openssl.cnf              //查看openssl配置文件

wKiom1jqPnuCOfu6AAF4VzDeWXs955.jpg

 

ll /etc/pki/CA/

wKioL1jqPpPgs3tPAABiK6RFdBI340.jpg

touch /etc/pki/CA/index.txt      //建立index.txt

 

echo 01 > /etc/pki/CA/serial    //建立序列號文件,序列號從01開始

wKiom1jqPq3SU-mfAACgZVSZc30682.jpg

 

②CA自簽證書

(umask 077; openssl genrsa -out/etc/pki/CA/private/cakey.pem 2048)

//使用openssl生成CA的私鑰,保存在/etc/pki/CA/private/中,文件後綴必須是.pem,要確保私鑰的文件的權限安全

wKiom1jqPsjQw0twAABnwFkjqXk655.jpg

 

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -days 7300 -out /etc/pki/CA/cacert.pem

//使用私鑰來自簽證書,自簽證書要使用x509,同時指定有效期爲20年(看需求),最後把證書輸出到任意路徑,文件後綴必須是.pem。能夠把該證書發給客戶端,讓客戶端信任自建CA機構

wKioL1jqPuPztVvcAADXuKh8QrU171.jpg

 

2.    向CA申請證書:

192.168.1.102上操做

①安裝nginx用於作測試

yum install -y nginx

 

②建立私鑰

mkdir /etc/nginx/ssl    //建立在webserver配置文件夾中,便於管理

 

(umask 077; openssl genrsa -out /etc/nginx/ssl/nginx.key 2048)

//建立私鑰,要確保文件權限安全

wKiom1jqPwjxfF_6AABxTs9Ilic837.jpg

 

③使用私鑰建立證書申請

openssl req -new -key /etc/nginx/ssl/nginx.key -days 365 -out /etc/nginx/ssl/nginx.csr

//能夠指定申請的證書的有效期爲多少天

wKioL1jqPyWBStPnAAGnGy_W7hc216.jpg

 

scp /etc/nginx/ssl/nginx.csr root@192.168.1.101:/tmp

//把證書申請文件發送給私有CA

 

④私有CA頒發證書

192.168.1.101上操做

openssl ca -in/tmp/nginx.csr -out/etc/pki/CA/certs/nginx.crt -days 700

//審覈證書申請文件,並頒發證書,證書輸出到certs目錄中

wKiom1jqP0ewJUxhAAGLgPRtFwY069.jpg

 

wKioL1jqP2HweO6mAABQLJOf0So768.jpg

 

scp /etc/pki/CA/certs/nginx.crt root@192.168.1.102:/etc/nginx/ssl

//把證書發給申請者

rm -rf /tmp/nginx.csr   //頒發證書後能夠把申請文件刪了

 

3.    使用證書建立https網站:

192.168.1.101上操做

①檢查私鑰和證書

rm -rf /etc/nginx/ssl/nginx.csr  //得到證書後,就能夠把證書申請文件刪了

wKiom1jqP3-DoLrPAAB6VtcqGqM124.jpg

 

②建立網站

vim /etc/nginx/conf.d/test.conf      //建立一個https站點

wKioL1jqP5rib2cqAACAq00BMho891.jpg

 

mkdir /www      //建立網站目錄

 

vim /www/index.html  //建立首頁

wKiom1jqP6-hyzvgAAAM1IouDI0084.jpg

 

service nginx restart         //重啓nginx服務

wKioL1jqP8WgduzuAABamFQyeG8584.jpg

 

4.    測試:

配置hosts,使客戶端可使用www.test.com訪問到192.168.1.102

wKioL1jqP-fxyj2AAAAoy3NyQvU124.jpgwKioL1jqP__B37P7AACp3S1y4L4896.jpg


 

②使用ie訪問https://www.test.com

wKioL1jqQFCQyZJtAAE8LqSqvQ8654.jpg

 

wKiom1jqQGzQ-8ChAACZW979H-0675.jpg

 

③客戶端信任CA的證書

wKiom1jqQH_A9uMPAAAYCjxzVQQ267.jpg

wKiom1jqQJWxvqUvAACyWP7squM973.jpg

wKioL1jqQKuxwNljAAFUoCnIqjQ006.jpg

 

④從新訪問https://www.test.com

wKiom1jqQMOAK46RAABysRbzmRY762.jpg

 

 

三、搭建一套DNS服務器,負責解析magedu.com域名(自行設定主機名及IP)

  (1)、可以對一些主機名進行正向解析和逆向解析;

  (2)、對子域cdn.magedu.com進行子域受權,子域負責解析對應子域中的主機名;

  (3)、爲了保證DNS服務系統的高可用性,請設計一套方案,並寫出詳細的實施過程

答:

DNS高可用方案:

使用區域複製的方式部署兩臺DNS服務器(一主一從),客戶端同時添加這兩臺DNS服務器地址,實現高可用

 

實驗拓撲:

主DNS服務器

192.168.1.101  Centos6

 

輔DNS服務器

192.168.1.102  Centos6

 

子域DNS服務器

192.168.1.103  Centos6

 

實驗過程:

  1. 1.    部署主DNS服務器:

  2. 192.168.1.101上操做

   安裝bind

yum install -y bind

 

   修改主配置文件

cp /etc/named.conf{,.back}              //先作備份

 

vim /etc/named.conf

wKiom1jqQObzj40kAAEOOID8b2s013.jpg

 

   配置解析域

cp /etc/named.rfc1912.zones{,.back}       //先備份

 

vim /etc/named.rfc1912.zones

wKioL1jqQQKjQqJRAAC0jevuXIU521.jpg

 

named-checkconf              //檢查是否有語法錯誤

 

    添加正向域的資源記錄

vim /var/named/magedu.com.zone   

//在/var/named/路徑下建立文件,文件名要與配置文件中的一致

wKiom1jqQRrT8SPJAADqh5yFb78046.jpg

 

named-checkzone "magedu.com"/var/named/magedu.com.zone

//檢查是否有語法錯誤

wKiom1jqQTHQVJI6AABENju4pmg344.jpg

 

chown :named /var/named/magedu.com.zone       

//爲了安全,修改文件屬組爲named

 

chmod 640 /var/named/magedu.com.zone           //修改文件權限

 

   添加反向域的資源記錄

vim /var/named/192.168.1.zone

wKioL1jqQUyRtVtfAAC-qPrsZVY843.jpg

 

named-checkzone "1.168.192.in-addr.arpa"/var/named/192.168.1.zone

//檢查是否有語法錯誤

 

chown :named /var/named/192.168.1.zone

chmod 640 /var/named/192.168.1.zone

//修改文件權限

 

service named start

//啓動服務

 

chkconfig named on

//設置爲開機啓動

 

2.    部署輔DNS服務器:

192.168.1.102上操做

   模擬一次區域複製

dig -t axfr magedu.com @192.168.1.101

wKioL1jqQWjSpmwmAADy6_x6T2E844.jpg

 

   安裝bind

yum install -y bind

 

   修改主配置文件

cp /etc/named.conf{,.back}              //先作備份

 

vim /etc/named.conf

wKioL1jqQYDAvf9mAAEfRrDQvlw513.jpg

 

   配置解析域

cp /etc/named.rfc1912.zones{,.back}       //先備份

 

vim /etc/named.rfc1912.zones

 

wKiom1jqQZqw7oZ4AAC5vjRS3P8157.jpg

 

named-checkconf          //檢查配置文件是否有語法錯誤

 

service named start

chkconfig named on

//啓動服務並配置爲開機啓動

 

wKioL1jqQbGS8B-pAACeYbWq_WY327.jpg

 

    測試主從複製

wKiom1jqQcric5hyAADPvor4KM0496.jpg

rndc reload

//重載配置文件

wKioL1jqQePj0B4iAAENSxn-QCw304.jpg

 

3.    部署輔子域DNS服務器:

   安裝bind

yum install -y bind

 

   修改主配置文件

cp /etc/named.conf{,.back}              //先作備份

 

vim /etc/named.conf

wKiom1jqQgPh7S_XAAEkE1bGUCU752.jpg

 

   配置解析域

cp /etc/named.rfc1912.zones{,.back}       //先備份

 

vim /etc/named.rfc1912.zones

wKioL1jqQh3BLkbpAABC7MmSpWc703.jpg

 

named-checkconf              //檢查是否有語法錯誤

 

   添加正向域的資源記錄

vim /var/named/cdn.magedu.com.zone

wKiom1jqQjST3HeEAABsFt_fb3Q072.jpg

 

named-checkzone "cdn.magedu.com" /var/named/cdn.magedu.com.zone

//檢查是否有語法錯誤

wKioL1jqQk2SkMg0AABAflOUDXU239.jpg

 

chown :named /var/named/cdn.magedu.com.zone

chmod 640 /var/named/cdn.magedu.com.zone

//修改文件權限

 

service named start

chkconfig named on

//啓動服務並設置爲開機啓動

 

4.    驗證:

wKiom1jqQmvC0RjgAAEpX6uXq20148.jpg

 


 

wKiom1jqQz6Qe-y9AABgJnIG_9U584.jpg

 

wKioL1jqQ1Xx917uAAB5LvGN6VA765.jpg

 

模擬主DNS服務器宕機:

wKiom1jqQ7zipLQVAAC346AixZI785.jpg

 

 

 

 

四、請描述一次完整的http請求處理過程;

答:

    客戶端發起http請求,一般包含請求方法(GET | POST | PUT | HEAD),主機名host,請求資源記錄url,HTTP版本號,以及其餘請求首部

    web服務器根據本身的配置,接收請求或處理請求

    web服務器處理請求,對請求報文進行解析,並獲取請求的資源及請求方法等相關信息

    訪問資源,依次獲取請求報文中請求的全部資源

   構建響應報文

   發送響應報文

    最終記錄訪問日誌

 

 

五、httpd所支持的處理模型有哪些,他們的分別使用於哪些環境。

答:

    prefork模型

工做特性:

  一個主進程,負責生成n個子進程(被稱爲工做進程),每一個子進程處理一個請求,即便沒有請求,也會預先生成多個空閒進程以隨時等待請求到達

 

適用場景:

  適用於沒有線程安全庫,須要避免線程兼容性問題的系統。若一個請求出現問題,不會影響到其餘請求

 

   worker模型

工做特性:

  一個主進程,生成多個子進程,每一個子進程負責生成多個線程,每一個線程響應一個請求

 

適用場景:

  線程一般會共享父進程的內存空間,所以,內存的佔用會減小一些。在高併發的場景下,由於比起prefork有更多的可用線程,表現會更優秀一些

 

   event模型

工做特性:

  一個主進程,生成m個子進程,每一個進程響應n個請求。該模型在httpd2.4版本中可做爲生產使用,httpd2.2版本中爲測試用

 

適用場景:

  它解決了keep-alive場景下,長期被佔用的線程的資源浪費問題(某些線程由於被keep-alive,空掛在哪裏等待,中間幾乎沒有請求過來,甚至等到超時)。在event模型中,會有一個專門的線程來管理這些keep-alive類型的線程,當有真實請求過來的時候,將請求傳遞給服務線程,執行完畢後,又容許它釋放。這樣加強了高併發場景下的請求處理能力。

 

 

六、創建httpd服務器(基於編譯的方式進行),要求:

     提供兩個基於名稱的虛擬主機:

   (a)www1.stuX.com,頁面文件目錄爲/web/vhosts/www1;錯誤日誌爲/var/log/httpd/www1.err,訪問日誌爲/var/log/httpd/www1.access;

   (b)www2.stuX.com,頁面文件目錄爲/web/vhosts/www2;錯誤日誌爲/var/log/httpd/www2.err,訪問日誌爲/var/log/httpd/www2.access;

   (c)爲兩個虛擬主機創建各自的主頁文件index.html,內容分別爲其對應的主機名;

(d)經過www1.stuX.com/server-status輸出httpd工做狀態相關信息,且只容許提供賬號密碼才能訪問(status:status);

答:

實驗拓撲:

webserver

ip:           192.168.1.102

httpd版本:   2.4

系統版本:      Centos 6.8

 

實驗過程:

1. 編譯安裝httpd2.4:

① 安裝編譯環境

yum groupinstall -y "Developmenttools" "Server Platform Development"

 

② 安裝新版本apr

wKioL1jqQ9jyYcu2AACQWig5koQ399.jpg

 

cd apr-1.5.0

./configure--prefix=/usr/local/apr         //指定apr安裝路徑,避免覆蓋舊版本

make && make install

//編譯安裝apr

 

cd apr-util-1.5.3

./configure--prefix=/usr/local/apr-util --with-apr=/usr/local/apr

//指定本身安裝的apr的路徑

make && make install

//編譯安裝apr-util

 

③ 安裝pcre-devel

yum install -y pcre-devel

 

   安裝httpd2.4

wKiom1jqRH2yAvUJAAB8phgY4J4345.jpg

 

wKioL1jqRJTwJQ5xAAChPbxUyTk344.jpg

 

./configure --prefix=/usr/local/apache--sysconf=/etc/httpd24 --enable-so--enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util/--enable-modules=most--enable-mpms-shared=all --with-mpm=prefork

//指定安裝路徑和配置文件路徑,使用本身裝的apr和apr-util,啓用大多數模塊(選擇all爲全部模塊),指定默認的工做模式爲prefork(可選擇worker和event)

 

make && make install

 

    後續工做

vim /etc/profile.d/http24.sh

wKioL1jqRLCCo4_3AABFrzGB2ck905.jpg

source /etc/profile.d/http24.sh      //使環境變量當即生效

 

echo "MANPATH/usr/local/apache/man/" >> /etc/man.config     //添加man路徑

 

ln -s/usr/local/apache/include/ /usr/include/httpd24       //連接頭文件

 

cp /etc/rc.d/init.d/httpd/etc/rc.d/init.d/httpd24    //以服務動腳本爲模板編輯服務腳本

 

vim /etc/rc.d/init.d/httpd24      //修改服務腳本

wKiom1jqRMijXiqNAACoktVWmIY582.jpg

 

chkconfig --add httpd24        //添加爲服務腳本

chkconfig httpd24 on           //設置開機啓動

wKioL1jqRQKC4t81AABTz4_p_Ws447.jpg

 

2.配置www1.stuX.com

mkdir /etc/httpd24/hosts

//建立文件夾,存放虛擬主機配置文件

 

cp/etc/httpd24/httpd.conf{,.bak}

vim /etc/httpd24/httpd.conf

//修改主配置文件

wKiom1jqRRix3SBIAACgWO65JX8244.jpg

 

vim/etc/httpd24/hosts/www1_stuX_com.conf 

 wKiom1jqRTuB01U8AACjgsqiyYw832.jpg

mkdir -p /web/vhosts/www1

vim /web/vhosts/www1/index.html

//編輯網頁文件

wKiom1jqRVGwnSpjAAAzTThwMbw205.jpg

 

 

3.     配置www2.stuX.com

vim /etc/httpd24/hosts/www2_stuX_com.conf

wKioL1jqRWzzAt2WAAC2uApl3EA857.jpg

 

mkdir -p /web/vhosts/www2

vim /web/vhosts/www2/index.html

//編輯網頁文件

wKiom1jqRYKjn_x3AAAvXNXPSsE808.jpg

 

4. 配置httpd狀態頁面

htpasswd -c -m/etc/httpd24/.htpasswd status

//建立用戶帳戶文件,並添加一個用戶

wKioL1jqRZqj5dUKAAB8dLf12VY986.jpg

 

vim/etc/httpd24/hosts/www1_stuX_com.conf

//修改虛擬主機配置文件

wKiom1jqRbPTz7fNAAEdeHDNpoo751.jpg

 

service httpd24 start

//啓動httpd服務

 

效果:

wKioL1jqRcvRu5xcAACNkWtB_Oo617.jpg

 

wKiom1jqRePSxIzkAAEguSUHHd4380.jpg

 

wKioL1jqRfuSrxsRAAExW4aLpuw518.jpg

 


 wKioL1jqRkiSTXFJAACgrZSs_-w304.jpg

wKioL1jqRlyzynq1AAB6K6Y7q6M323.jpg

 

 

七、爲第6題中的第2個虛擬主機提供https服務,使得用戶能夠經過https安全的訪問此web站點;

  (1)要求使用證書認證,證書中要求使用的國家(CN)、州(HA)、城市(ZZ)和組織(MageEdu);

  (2)設置部門爲Ops,主機名爲www2.stuX.com,郵件爲admin@stuX.com

答:

1.    申請CA證書

   建立私鑰

mkdir /etc/httpd24/ssl

(umask 077; openssl genrsa -out/etc/httpd24/ssl/httpd.key 2048)

 

   使用私鑰建立證書申請文件

openssl req -new -key /etc/httpd24/ssl/httpd.key-days 365 -out /etc/httpd24/ssl/httpd.csr

wKioL1jqRnvjs-nMAADPXmqdDzY726.jpg

 

   私有CA頒發證書

scp /etc/httpd24/ssl/httpd.csr root@192.168.1.101:/tmp

//把證書申請發送給私有CA

 

openssl ca -in /tmp/httpd.csr -out/etc/pki/CA/certs/httpd.crt -days 700

//頒發證書,有效期爲700天

wKiom1jqRpXC4TlkAAEHDvxJxPc318.jpg

 

scp root@192.168.1.101:/etc/pki/CA/certs/httpd.crt/etc/httpd24/ssl/

//獲取CA證書

 

rm -f /etc/httpd24/ssl/httpd.csr

//證書申請文件可刪除

wKioL1jqRq2RiDFIAABtlFQTNMg051.jpg

 

 

2.    配置https站點

cp /etc/httpd24/extra/httpd-ssl.conf/etc/httpd24/hosts/https_www2_stuX_com.conf

//複製默認配置

 

vim /etc/httpd24/hosts/https_www2_stuX_com.conf

wKiom1jqRsfhbvyZAAB0KKrd3ss441.jpg

 

wKiom1jqRumR1eg3AAFHgwDfcpo629.jpg

 

vim /etc/httpd24/httpd.conf

//修改主配置文件

 

wKioL1jqRwPjQEKcAAFQD7SPgqo889.jpg

 

wKiom1jqRyPjagIJAAKq6L_bKZc150.jpg

 

service httpd24 restart

//因爲須要監聽443端口,須要重啓服務

 

效果:

wKiom1jqRzuT4oJtAAE2YNQQMyM681.jpg

 

wKioL1jqR3TRmQhdAACuywjWZcw916.jpg

 

wKiom1jqR4yh11uGAAFc1NBxDtA217.jpg

 

 

八、創建samba共享,共享目錄爲/data,要求:(描述完整的過程)

  1)共享名爲shared,工做組爲magedu;

  2)添加組develop,添加用戶gentoo,centos和ubuntu,其中gentoo和centos以develop爲附加組,ubuntu不屬於develop組;密碼均爲用戶名;

  3)添加samba用戶gentoo,centos和ubuntu,密碼均爲「mageedu」;

  4)此samba共享shared僅容許develop組具備寫權限,其餘用戶只能以只讀方式訪問;

5)此samba共享服務僅容許來自於172.16.0.0/16網絡的主機訪問;

答:

實驗拓撲:

smbserver

172.16.1.102  Centos6

 

client

172.16.1.52   Win7

 

實驗過程:

1. 建立共享目錄

mkdir /data

 

2. 建立用戶和組,配置目錄權限

groupadd develop

 

useradd gentoo -G develop && echo"gentoo" | passwd --stdin gentoo

useradd centos -G develop && echo"centos" | passwd --stdin centos

useradd ubuntu && echo "ubuntu" |passwd --stdin ubuntu

 

setfacl -m g:develop:rwx /data

//賦予develop組讀寫權限

wKiom1jqR6jxsAwNAABxtD3J1ck368.jpg

 

3. 安裝並配置samba

①安裝samba

yum install -y samba

service nmb start; service smb start

//啓動samba服務

 

②添加samba用戶

smbpasswd -a gentoo

smbpasswd -a centos

smbpasswd -a ubuntu

wKioL1jqR8Ti0vVXAABvS2vOEJY052.jpg

 

配置samba

cp /etc/samba/smb.conf{,.bak}

//先備份

 

vim /etc/samba/smb.conf

wKiom1jqR9vhJfNSAACgOuUttt0881.jpg

 

wKiom1jqR_HB8bSLAACREkQQZh4747.jpg

 

testparm

//檢查配置是否有誤

wKioL1jqSAiAoxJsAABQu9p_wKs947.jpg

 

 

service nmb reload; service smb reload

//重載配置

 

 

效果:

wKioL1jqSBzQqRkiAAC47gKOBh4048.jpg

 

wKioL1jqSDShfWr-AADaIPXd5HA768.jpg

 

wKioL1jqSEjhtpiWAAB9M1ZMqH4413.jpg

 


 

wKioL1jqSIzwAE_EAADnXmbUg1s670.jpg

 

wKioL1jqSKLShuEDAADBKEfG1Zk787.jpg

 


 

wKioL1jqSO-D68mvAAEMyhsidfQ607.jpg

 wKiom1jqSQuSFjCRAACaEhKs56E959.jpg

九、搭建一套文件vsftp文件共享服務,共享目錄爲/ftproot,要求:(描述完整的過程)

  1)基於虛擬用戶的訪問形式;

  2)匿名用戶只容許下載,不容許上傳;

  3)禁錮全部的用戶於其家目錄當中;

  4)限制最大併發鏈接數爲200:;

  5)匿名用戶的最大傳輸速率512KB/s

  6)虛擬用戶的帳號存儲在mysql數據庫當中。

7)數據庫經過NFS進行共享。

答:

實驗拓撲:

nfsServer

192.168.1.101  Centos6

 

mysqlServer

192.168.1.200  Centos7

 

vsftpServer

192.168.1.102  Centos6

 

Client

192.168.1.104  Centos6

 

實驗過程:

1. 配置nfs

在192.168.1.101上操做

rpm -q nfs-utils

//檢查是否安裝nfs服務

wKioL1jq***wBK90AAA0qgBN7RQ162.jpg

 

mkdir /share

//建立目錄,用於共享

 

vim /etc/exports

wKioL1jqST6x8by5AABDTl9DI5s637.jpg

 

useradd -r -u 306 -s /sbin/nologin mysql

//建立mysql用戶

 

setfacl -m u:mysql:rwx /share/

//賦予mysql用戶讀寫權限

wKioL1jqSXnR3A4zAABp34J2SEQ971.jpg

 

service nfs start

//啓動nfs服務

 

 

2. 配置mysql

在192.168.1.200上操做

   掛載nfs

mkdir /data

//建立掛載點

 

echo "192.168.1.101:/share  /data nfs  defaults,_netdev   0 0"  >> /etc/fstab

//設置開機自動掛載

 

mount -a

//掛載nfs

wKiom1jqSZGgc4RpAAC5CCPcVOU835.jpgwKioL1jqSaiBjFStAACI9MrGQHU327.jpg

 

 

   添加mysql用戶

groupadd -r -g 306 mysql

 

useradd -r -u 306 -g 306 -s /sbin/nologin mysql

//uid必須和nfs服務器上的mysql用戶一致

 

visudo

//配置sudo權限


 

   安裝mysql

wKiom1jqScGwQLnoAABCLqtbQpM577.jpg

 

tar -xzvf mariadb-5.5.46-linux-x86_64.tar.gz -C/usr/local/

//解壓

 

ln -s /usr/local/mariadb-5.5.46-linux-x86_64//usr/local/mysql

 

chown -R root:mysql /usr/local/mysql/

//修改權限

 

 

   初始化數據庫

sudo -u mysql mkdir /data/database

//以mysql用戶身份建立數據庫目錄

 

sudo -u mysql/usr/local/mysql/scripts/mysql_install_db --user=mysql--basedir=/usr/local/mysql --datadir=/data/database

//以mysql用戶身份進行初始化操做

wKiom1jqSd2QSI_SAACpHfWFU_c359.jpg

 

    準備配置文件

mkdir /etc/mysql

 

cp /usr/local/mysql/support-files/my-large.cnf/etc/mysql/my.cnf

 

vim /etc/mysql/my.cnf

wKioL1jqSfTwyNECAAB2RUutD_4150.jpg

 

   後續工做

vim  /etc/profile.d/mysqld.sh

//添加環境變量

wKiom1jqShmAIM7AAABFkpvVsoQ427.jpg

 

source /etc/profile.d/mysqld.sh

 

echo '/usr/local/mysql/lib/' >/etc/ld.so.conf.d/mysqld.conf

ldconfig

//添加lib庫路徑

 

ln -s /usr/local/mysql/include/mysql/ /usr/include/mysqld

 

echo 'MANPATH /usr/local/mysql/man/' >>/etc/man.config

 

mkdir /var/log/mariadb

chown mysql:mysql /var/log/mariadb

//建立mysql日誌目錄

 

mkdir /var/run/mariadb/

chown mysql:mysql /var/run/mariadb/

//建立pid存放目錄

 

vim /usr/lib/systemd/system/mariadb.service

//設置開機啓動

wKioL1jqSjTCGPsVAADTMfW0L0E546.jpg

 

systemctl daemon-reload

 

systemctl enable mariadb.service

systemctl start mariadb.service

//設置開機啓動,並啓動mysql

wKiom1jqSkryRtCbAABJdRbqWV0307.jpg

 

   建立數據庫

mysql -h 127.0.0.1 –uroot

//登陸Mysql

 

create database vsftpd;

grant select on vsftpd.* to vsftpd@localhost identifiedby '12345';

grant select on vsftpd.* to vsftpd@127.0.0.1 identifiedby '12345';

grant select on vsftpd.* to vsftpd@192.168.1.102identified by '12345';

//建立數據庫,並添加數據庫用戶

 

use vsftpd

create table user ( id int AUTO_INCREMENT NOT NULLPRIMARY KEY, name char(20) binary NOT NULL, password char(48) binary NOT NULL);

//建立vsftpd用戶表,name和password添加binary屬性,比較時區分大小寫

 

insert into user(name,password)values ('fuser1',password('fuser1')),('fuser2',password('fuser2'));

//建立兩個虛擬用戶,密碼以密文方式保存

 

exit

//斷開數據庫鏈接

 

 

3. 配置vsftpd

在192.168.1.102上操做

yum install -y vsftpd pam_mysql

//安裝vsftpd和pam的mysql驅動

 

vim /etc/pam.d/vsftpd.mysql

auth required /lib64/security/pam_mysql.souser=vsftpd passwd=12345 host=192.168.1.200 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=mysql

account required /lib64/security/pam_mysql.souser=vsftpd passwd=12345 host=192.168.1.200 db=vsftpd table=user usercolumn=name passwdcolumn=password crypt=mysql

//定義鏈接mariadb的信息:用戶名,密碼,mariadb的ip,使用哪一個數據庫,使用哪一個表,哪一個字段做爲用戶名,哪一個字段做爲密碼,密碼的加密方式使用mysql方式

wKiom1jqSmOS7cDIAABWjwYayrg302.jpg

 

useradd -s /sbin/nologin -d /ftproot vuser

//建立一個系統用戶,用於給vsftpd的虛擬用戶映射用

 

chmod go+rx /ftproot/

//給其餘用戶添加訪問權限

 

cp /etc/vsftpd/vsftpd.conf{,.bak}

//備份vsftpd配置文件

 

vim /etc/vsftpd/vsftpd.conf

wKioL1jqSn_h0WrRAAFxlFfxQJQ762.jpg

 

wKiom1jqSpXCGh_6AACVmRArAvI130.jpg

 

mkdir /etc/vsftpd/vusers_config

vim /etc/vsftpd/vusers_config/fuser1

//配置虛擬用戶權限,文件名以用戶名來命名

wKioL1jqSqzT-txnAAAx1NrPcmM499.jpg

 

vim /etc/vsftpd/vusers_config/fuser2

//配置fuser2權限

wKiom1jqSsCj92jFAAAvS8risak461.jpg

 

service vsftpd start

//啓動vsftpd

 

 

效果:

touch /var/ftp/test.txt

touch /ftproot/test.txt

//在ftp服務器上建立文件

 

ftp 192.168.1.102

//訪問ftp服務器

wKioL1jqStzTbM_lAACRK-fcJ8s349.jpg

 

wKiom1jqSvTCDo0gAACHZ5RtcyI284.jpg

 

wKioL1jqSxHCVhOfAADKgD-bTtk453.jpg

 

 

wKiom1jqSymxITqqAACXmM2ITgw388.jpg

 

wKiom1jqS0Wz2_isAAB3mJU6R7A080.jpg

 

wKioL1jqS2vxj4sgAAEiiy2T-i8891.jpg

相關文章
相關標籤/搜索