古云“蜀道之難,難于上青天~”在我這個剛入門不就得來說,想要維護一個網站的安全還真的挺不容易的,我們要時刻關注最新的安全動態,關注系統的漏洞,并積極的做好應對,對于一個網管,網站的維護,是比較重要的一個工程,先不論一些高層次的安全保護措施,對于httpd服務的基本安全措施,我們是應該好好掌握的,否則好不容易架起來一個網站,分分鐘被一些電腦愛好者們給攻破了---------------》那那那就尷尬了。。。
那么當我們架好一個網站之后,怎樣去配置他的安全性呢??
在linux中,我們有這樣三種方法:
1.身份驗證:對要在網頁上執行操作的用戶,進行身份驗證,驗證其合法性,真實性。
2.來源控制:某些東西比如公司的機密,我們是不能讓外來人登錄并查看的,假設:單位團隊好不容易研發出了科技成果,一個外界用戶一個”另存為“,或者“復制,粘貼”給考走了,那真是。。。。。
3.ssl套接層:也就是我們常常發現的網頁上url的http變成了https,在有關金錢交易的購物網站上用的很多很多。
那下面我們就來看看如何走好這三部曲?。?!
第一部曲:身份驗證
要實現身份驗證大致的流程:
A.在站點的主目錄下寫說明文件.htacess,說明的內容當然就是要進行身份驗證了,這里有四個部分。
authuserfile /var/www/.htpasswd說明對用戶身份驗證,但是要創建用戶驗證賬號庫,但這里的與系統的賬號庫不是一個。
authname “please input youusername and passwd??!”彈出驗證的端口,要求用戶輸入口令
authtype 驗證的類型
required 要求什么樣的用戶可以訪問
B.產生賬號文件
htpasswd –c .htpasswd 賬號名;使用該命令新建用戶賬號【注意-c 參數只用添加一次就好】
1.修改配置文件,httpd.conf
在 AllowOverride 設置為 None 時, .htaccess 文件將被完全忽略。當此指令設置為 All 時,所有具有 ".htaccess" 作用域的指令都允許出現在 .htaccess 文件中。
2.創建站點的首頁
[root@localhost html]# echo"welcome to lining's web" >> index.html
開啟httpd服務,然后登陸,顯示我們的測試頁面。
3.配置身份驗證
在網站根目錄下 /var/www/html 建立 .htacss文件
4.在/var/www目錄下,創建賬號庫文件,創建用戶 lining
[root@localhostwww]# htpasswd -c .htpasswd lining
New password:
Re-type new password:
測試:
第二部曲------》來源控制
直接配置httpd.conf文件。
重啟httpd服務,測試。
在這里我們進入到了其他的頁面,而不是我們的主頁面,因為我被拒絕訪問了。
第二部曲-----》網站的加密訪問【https】
在訪問網站的時候我們通常,使用的是http開頭的網站,http提供的是明碼的傳送方式,十分不安全。所以我們需要讓他進行密文的傳輸,來提供安全性。
但是當我們瀏覽銀行網站的時候,就變成https的網站。那么https是怎么實現的呢???
答:它是通過安全套階層協議 ssl 實現的。
那么我們在linux中又怎么實現安全套階層呢??
答:在linux要實現安全套接層時間加密訪問我們就需要知道兩樣東西。
1.openssl命令的使用
2.PKI公鑰基礎設施
首先我們來了解一下openssl命令的使用。
1.查看openssl的文件目錄,使用rpm -ql openssl命令。
查看openssl的功能,包括對稱加密,非對稱加密,校驗等等功能?。?!
2.摘要的做法【使用md5】。摘要的用途,可以用來檢驗內容的完整性,當我們使用MD5算法對內容進行運算,產生一個定長的摘要,我們可以將摘要和內容發給接收方,接收方通過再次計算摘要,對比兩份摘要來確定內容是否被更改過。
【小例子】
復制inittab到以我的名字命名的文件夾,并做一個摘要。
[root@localhostlining]# openssl md5 inittab
MD5(inittab)=9d49303d50eb59151fc24eb0e3802232
更改inittab文件中的內容,再次做一個摘要。
[root@localhostlining]# openssl md5 inittab
MD5(inittab)=a30c76ea4096ab1eddf06657d4e9a590
3.加密 passwd【引入salt概念,當我們查看/etc/shadow文件時,你可能會發現,用戶設置的密碼在顯示中是不一樣的亂碼,這些亂碼就是由系統加密過得密碼。系統通過添加一組字符串,然后混入輸入的密碼中,進行加密?!?/span>
4.對稱加密/解密文件 des/des3
[root@localhost lining]# openssldes3 -a -in inittab -out f1 //用3倍des算法加密inittab文件,并將加密后的內容輸出為f1文件。
enter des-ede3-cbcencryption password: lining //加密時所用的密碼。解密是要用到。
Verifying -enter des-ede3-cbc encryption password: lining
[root@localhostlining]# openssl des3 -a -d -in f1 -out inittab2 //在此之前我刪除inittab文件,將f1文件解密為inittab2 文件
enterdes-ede3-cbc decryption password:
[root@localhostlining]# ll
total 20
-rw-r--r-- 1root root 2288 Jul 11 03:44 f1
-rw-r--r-- 1root root 1665 Jul 11 04:11 inittab2
5.非對稱加密 rsa【非對稱算法中要用到公鑰和私鑰,私鑰我們可以使用命令創建出來,公鑰是從私鑰中提取的】
首先產生公鑰秘鑰對~ 使用genrsa 1024 產生1024位的私鑰,然后從私鑰中提取公鑰。
[root@localhostlining]# openssl rsa -in key.pem -pubout -out public.k //從私鑰中導出公鑰
writing RSA key
其次我們需要了解一下HTTPS在PKI上的運用:
由于PKI內容比較多所以暫不在本篇幅說明。。。。
那么現在我們就著手實現一個https的站點:
1.CA認證中心的實現,先修改openssl的配置文件【CA中心來對客戶端進行驗證并發放證書】
2.對于外部的客戶端,他們需要請求證書,對于根CA,只需要 私鑰----》請求文件
https默認使用端口443.所以要加裝另外的模塊。
[root@localhost~]# rpm -qa mod_ssl
mod_ssl-2.2.3-31.el5 //我的已經安裝了這個模塊我們之前說過,模塊式動態加載的,也就是當你使用的時候,它自動加載,所以并沒有什么操作。
然后再創建httpd的私鑰請求文件以及證書
[root@localhosthttpd]# mkdir certs
[root@localhostcerts]# openssl genrsa 1024 > httpd.key //私鑰文件
GeneratingRSA private key, 1024 bit long modulus
...++++++
...........................++++++
eis 65537 (0x10001)
[root@localhostcerts]# openssl req -new -in httpd.key -out httpd.req //請求文件
Generatinga 1024 bit RSA private key
...............................................................++++++
.......++++++
發放證書
[root@localhostCA]# cat index.txt //在證書數據庫中更新了httpd證書的信息
V 140711013035Z 01 unknown /C=CN/ST=HENAN/O=MyCompany Ltd
httpd 和 證書捆綁:
[root@localhost CA]# vim /etc/httpd/conf.d/ssl.conf
112SSLCertificateFile /etc/httpd/certs/httpd.cert //指明站點的證書文件,用戶也是要通過它來確定是否訪問到了正確站點,而不是釣魚網站
119SSLCertificateKeyFile /etc/httpd/certs/httpd.key //指明網站的公鑰
登陸測試:
112SSLCertificateFile /etc/httpd/certs/httpd.cert
119SSLCertificateKeyFile /etc/httpd/certs/httpd.key
128SSLCertificateChainFile /etc/pki/CA/cacert.pem
繼續修改配置文件ssl.conf,我們可以通過查看站點的證書鏈然后將證書導出安裝到自己的計算機上面。從而實現客戶端與服務器的加密訪問。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。