做業6

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

答:mysql

1.    拓撲圖linux

wKioL1lY6KviGhD1AABPwYxyH_4236.png

 

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配置文件

wKioL1lY6NWjKcE3AACLwEnX8S0250.png

 

ll /etc/pki/CA/

wKioL1lY6OvCE62YAAAkRzFzKYs149.png

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

 

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

wKiom1lY6RSypUgIAAA17iWswtA867.png

 

②CA自簽證書

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

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

wKioL1lY6SbzFYKjAAAl8eH4e28457.png

 

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

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

wKioL1lY6TuwzkitAAC570NfCPE242.png

 

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)

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

wKioL1lY6VWB-ZzjAAAfW4S1ZgY559.png

 

③使用私鑰建立證書申請

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

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

wKioL1lY6Wuy-3IdAADTJy4Gz9E184.png

 

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目錄中

wKioL1lY6YDxO6ArAADcJn2M8JM158.png

 


 wKioL1lY6abw3jh7AABCmMMIIQU864.png

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  //得到證書後,就能夠把證書申請文件刪了

wKioL1lY6byQa1UyAAA4qSI0z70464.png

 

②建立網站

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

wKioL1lY6c7BMM5ZAABCvlksP0k420.png

 

mkdir /www      //建立網站目錄

 

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

wKioL1lY6eShodNFAAAGA7IKGT4375.png

 

service nginx restart         //重啓nginx服務

wKiom1lY6faQ0mmqAAAvjOJo25g191.png

 

4.    測試:

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

wKioL1lY6g2Bo719AAAGzn-lbR8569.png

wKiom1lY6iCTOJvfAAAnJ_LVfQg042.png

 

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

wKioL1lY6jGitPT2AAC_hhSveUY023.png

 

wKiom1lY6kqRzON-AABTwE5o2xQ349.png

 

③客戶端信任CA的證書

wKioL1lY6mCiQpLoAAB7tmSWDuA047.png

wKioL1lY6pHzUldqAAGuSS2I_Cw590.png

wKiom1lY6oKTlY1DAAGuSS2I_Cw052.png

wKiom1lY6qWRQ33WAAEkPIwBJCM586.png

 

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

wKiom1lY6r6Ry7cyAABX2699lMQ397.png

 

 

三、搭建一套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

wKiom1lY6taTK-_jAACrhBiWGXc456.png

 

   配置解析域

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

 

vim /etc/named.rfc1912.zones

wKiom1lY6u_TabScAABRIhDd1BE863.png

 

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

 

    添加正向域的資源記錄

vim /var/named/magedu.com.zone   

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

wKioL1lY6xyyy0EQAABmlXfA2bo686.png

 

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

//檢查是否有語法錯誤

wKiom1lY60uS8LeHAAAcygU16co476.png

 

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

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

 

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

 

   添加反向域的資源記錄

vim /var/named/192.168.1.zone

wKiom1lY62TBCT19AABQJpJ2u4A377.png

 

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

wKiom1lY65nDY2e2AADKI77kVzQ152.png

 

   安裝bind

yum install -y bind

 

   修改主配置文件

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

 

vim /etc/named.conf

wKioL1lY67CgwvkVAACg4D_NWCc093.png

 

   配置解析域

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

 

vim /etc/named.rfc1912.zones

 

wKioL1lY68LxFT41AABhSJCsiME409.png

 

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

 

service named start

chkconfig named on

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

 

wKiom1lY6-WD9_AcAAA9PyjRIgI570.png

 

    測試主從複製

wKioL1lY7AqDIi-XAABi-rZwqI8552.png

rndc reload

//重載配置文件

wKiom1lY7CCS9Fb5AACOcTb_-Bo420.png

 

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

   安裝bind

yum install -y bind

 

   修改主配置文件

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

 

vim /etc/named.conf

wKiom1lY7EqQsns2AACjtZB5qqg915.png

 

   配置解析域

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

 

vim /etc/named.rfc1912.zones

wKiom1lY7HPjT8WrAAAmsQ_vmZ8657.png

 

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

 

   添加正向域的資源記錄

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

wKioL1lY7IbgQ51GAABGxqgu6tM059.png

 

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

//檢查是否有語法錯誤

wKioL1lY7LXT0puKAAAlaHREWE0590.png

 

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

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

//修改文件權限

 

service named start

chkconfig named on

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

 

4.    驗證:

wKioL1lY7ObCAg7DAABTlc1MTQU430.png

 

wKiom1lY7Pjgmp6MAAAbMJyH5OI777.png

 

wKioL1lY7Qnzhi6uAAAYPfrZLec231.png

 

wKioL1lY7RuCpdAyAAAhGoUiyYM008.png

 

模擬主DNS服務器宕機:

wKioL1lY7S_QtwO1AAArOkHl9C0073.png

 

 

 

 

四、請描述一次完整的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

wKiom1lY7XDCyQhDAABIK8Bex0c341.png

 

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

wKioL1lY7ZnxnpaqAABJ-YU3x0s738.png

 

wKiom1lY7cHgpgzGAABc91tWB_Y456.png

 

./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

wKiom1lY7e2Azp44AAAzGE2RZQc935.png

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      //修改服務腳本

wKiom1lY7hXQmjltAABVj-CTynQ535.png

 

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

chkconfig httpd24 on           //設置開機啓動

wKioL1lY7izAEIjpAAAlq0QT4tg584.png

 

2.配置www1.stuX.com

mkdir /etc/httpd24/hosts

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

 

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

vim /etc/httpd24/httpd.conf

//修改主配置文件

wKiom1lY7kOjWt5eAABJVZupv84740.png

 

vim/etc/httpd24/hosts/www1_stuX_com.conf 

 wKiom1lY7mrSt6SlAABVy4Ui0xQ256.png

mkdir -p /web/vhosts/www1

vim /web/vhosts/www1/index.html

//編輯網頁文件

wKiom1lY7nvDoiabAAAkOfdDVYs942.png

 

 

3.     配置www2.stuX.com

vim /etc/httpd24/hosts/www2_stuX_com.conf

wKioL1lY7pSSbgcdAABRVpqKpfs833.png

 

mkdir -p /web/vhosts/www2

vim /web/vhosts/www2/index.html

//編輯網頁文件

wKiom1lY7rCTyoTrAAAfIoUUK6I209.png

 

4. 配置httpd狀態頁面

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

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

wKioL1lY7saQ_NRcAAAtDRIXGhU594.png

 

vim/etc/httpd24/hosts/www1_stuX_com.conf

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

wKiom1lY7urQAn_2AACVGU_qyHI198.png

 

service httpd24 start

//啓動httpd服務

 

效果:

wKioL1lY7xnQ8Ey_AACiD3KR0d0463.png

 

wKioL1lY7y6hjTCTAAGDkwKvTKg832.png

 

wKioL1lY70aj6WptAAE-IhLwU0I168.png

 

wKiom1lY74PDqBucAACaG5iS5Qg985.png

 

wKiom1lY76CD6CdbAAAsZJwakB4607.png

 

 

七、爲第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

wKioL1lY782wtzrtAABciBIQ79I954.png

 

   私有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天

wKiom1lY7-fSGBbaAACe6RWznrE532.png

 

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

//獲取CA證書

 

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

//證書申請文件可刪除

wKioL1lY8B7gzEZhAAA0GtakqBA510.png

 

 

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

wKiom1lY8Inzhjf-AABDXfxctAo270.png

 wKiom1lY8KnwzIiGAACcVHUkPGc440.png


 

vim /etc/httpd24/httpd.conf

//修改主配置文件

 

wKioL1lY8NeCijYsAAClgfjFgQw656.png

 

wKiom1lY8PKDlTFGAAD4_8kOdWs144.png

 

service httpd24 restart

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

 

效果:

wKioL1lY8SvTrI3YAANVayo7GJ0493.png

 

wKiom1lY8VDB7a0oAAD0ExzVDQs056.png

 

wKioL1lY8YnDFq96AADZzrG44VU472.png

 

 

八、創建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組讀寫權限

wKioL1lY8cXAfkOaAAAy9ah3i_8013.png

 

3. 安裝並配置samba

①安裝samba

yum install -y samba

service nmb start; service smb start

//啓動samba服務

 

②添加samba用戶

smbpasswd -a gentoo

smbpasswd -a centos

smbpasswd -a ubuntu

wKiom1lY8d2wAa-mAAAq4PkxtYE555.png

 

配置samba

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

//先備份

 

vim /etc/samba/smb.conf

wKioL1lY8gLgazfjAABkGo7Udmo361.png

 

wKioL1lY8iDzVFQBAABJy6v_iro877.png

 

testparm

//檢查配置是否有誤

wKioL1lY8jOzvQJlAAAbjvEnSFY819.png

 

 

service nmb reload; service smb reload

//重載配置

 

 

效果:

wKioL1lY8k6hwoADAADFugafSlI806.png

 

wKioL1lY8mTBlK6fAADIT3xQV8k981.png

 

wKioL1lY8nzT9kXsAABrrXz6fjU641.png

 

wKiom1lY8o2hBk0rAABF31aOqtc995.png

 

wKioL1lY8qODY_xHAADfNsGYmaU838.png

 

wKiom1lY8sPRUHDGAAD8eAtjHms105.png

 

wKiom1lY8tSwDPmyAAC6B2tGyMs395.png

 

wKioL1lY8uiQVvH6AACkTFuAtRE358.png

 

九、搭建一套文件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服務

wKiom1lY8wjAlrT1AAAWsu9LA10075.png

 

mkdir /share

//建立目錄,用於共享

 

vim /etc/exports

wKioL1lY8ziBAkfLAAAgdHy9hbw344.png

 

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

//建立mysql用戶

 

setfacl -m u:mysql:rwx /share/

//賦予mysql用戶讀寫權限

wKiom1lY83eQnGZBAAAt_1WOdhU607.png

 

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

wKioL1lY84zy2A9LAABX7EqlY8Q967.png

 

 

   添加mysql用戶

groupadd -r -g 306 mysql

 

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

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

 

visudo

//配置sudo權限

wKioL1lY873zOYXtAAA4VXiD0C8744.png

 

   安裝mysql

wKioL1lY9AChQEHiAAAf6CckUJ0334.png

 

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用戶身份進行初始化操做

wKioL1lY9BaR2utIAAAxzDLu4jQ197.png

 

    準備配置文件

mkdir /etc/mysql

 

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

 

vim /etc/mysql/my.cnf

wKiom1lY9CrhGeBOAAAz2Y0zPN4457.png

 

   後續工做

vim  /etc/profile.d/mysqld.sh

//添加環境變量

wKioL1lY9D-Q_XYdAAAbIlzCYKA087.png

 

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

//設置開機啓動

wKioL1lY9FfijqfhAAB4nHz8ZPo457.png

 

systemctl daemon-reload

 

systemctl enable mariadb.service

systemctl start mariadb.service

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

wKiom1lY9GuB_0HeAAAV4AxXBgQ786.png

 

   建立數據庫

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方式

wKiom1lY9IXTltuOAABEWIPFxzI021.png

 

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

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

 

chmod go+rx /ftproot/

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

 

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

//備份vsftpd配置文件

 

vim /etc/vsftpd/vsftpd.conf

wKioL1lY9Jej1RFzAADHo5v_g34162.png

 

wKioL1lY9K7SsceIAABdfRREc2Y526.png

 

mkdir /etc/vsftpd/vusers_config

vim /etc/vsftpd/vusers_config/fuser1

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

wKiom1lY9MDCb2FVAAAWWg5ji8M806.png

 

vim /etc/vsftpd/vusers_config/fuser2

//配置fuser2權限

wKioL1lY9NiC2D59AAAUdnLLDWI275.png

 

service vsftpd start

//啓動vsftpd

 

 

效果:

touch /var/ftp/test.txt

touch /ftproot/test.txt

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

 

ftp 192.168.1.102

//訪問ftp服務器

wKioL1lY9QTS5ziVAABNBbr99gA088.png

 

wKiom1lY9S7xaRQaAABJTvRI_jA608.png

 

wKioL1lY9UOB-nEmAABfJdT577M234.png

 

 

wKiom1lY9WrCMO3bAABTgL26oW8893.png

 

wKioL1lY9X3xTbIhAAA7e5_UlQE185.png

 

wKiom1lY9ZLBxY1mAACO3mBL74g133.png

相關文章
相關標籤/搜索