设为首页 收藏本站
查看: 1985|回复: 0

[经验分享] 邁向 RHCE 之路 (Day26)

[复制链接]

尚未签到

发表于 2015-4-18 10:23:11 | 显示全部楼层 |阅读模式
  本篇將在 SELinux 安全機制及 IPTables 防火牆開啟的環境下實作,分別實作簡單網頁服務及虛擬主機 Virtual Host 設定,最後則是實作網頁中需要保護網頁時可以透過 .htaccess 機制進行保護,關於 Apache 網頁伺服器內容及更詳細設定參數可以參考官方文件 RedHat - Deployment Guide Chapter 14. Web Servers。以下為 Apache 網頁伺服器實作環境:(若執行 semanage 指令發現系統中沒有此一指令請安裝 policycoreutils-python 套件即可(yum -y install policycoreutils-python)。
* OS: CentOS 6.0 (32 bit)
* Apache 套件資訊: httpd-2.2.15-5.el6.centos.i686
* Apache 設定檔: /etc/httpd/conf/httpd.conf
* IPTables 防火牆: TCP 協定 Port 80
* SELinux 權限: httpd_sys_content_t
* Apache 根目錄預設路徑: /var/www/html
* Apache 根目錄變更後路徑: /home/web
----- 安裝 Apache 網頁伺服器套件 -----
請使用 yum 指令搭配 Apache 套件名稱 httpd 即可進行套件安裝。



檢視原始檔複製到剪貼簿列印關於

  • #yum -y install httpd              //安裝 Apache 套件  
  • #rpm -qa httpd                     //查詢 Apache 套件版本  
  • httpd-2.2.15-5.el6.centos.i686  
  • #rpm -qc httpd | grep httpd.conf$  //查詢 Apache 設定檔路徑  
  • /etc/httpd/conf/httpd.conf  
  
----- 設定 IPTables 防火牆規則 -----
Apache 網頁服務屆時啟動會 Listen TCP 協定 Port 80(HTTP)、443(HTTPs),因此必須修改 IPTables 防火牆規則以便網頁服務啟動後可進行測試,請修改 IPTables 防火牆規則設定檔「/etc/sysconfig/iptables」加上允許 TCP Port 80、443 規則,修改防火牆規則後請使用指令「service iptables restart」重新啟動防火牆服務,以便防火牆規則套用生效,並且使用「service iptables status」指令確定目前防火牆規則是否允許 TCP Port 80。



檢視原始檔複製到剪貼簿列印關於

    • #vi /etc/sysconfig/iptables         //修改防火牆規則(加入如下二行)  
    • -A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT  
    • -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT  
    • #service iptables restart           //重新啟動防火牆服務  
    • #service iptables status | grep -E '80|443'    //查看防火牆規則是否套用生效  
    • 5    ACCEPT  tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:80  
    • 6    ACCEPT  tcp  --  0.0.0.0/0  0.0.0.0/0   state NEW tcp dpt:443  
    • #chkconfig httpd on                 //開機自動啟動 Apache 服務  

  ----- 修改 Apache 設定檔 -----
修改 Apache 設定檔「/etc/httpd/conf/httpd.conf」,主要為修改網頁根目錄「DocumentRoot」設定,將根目錄路徑由預設「/var/www/html」修改至「/home/web」 掛載點,下列僅列出 Apache 設定檔中需要修改的地方其預設值及修改後內容。



檢視原始檔複製到剪貼簿列印關於

  • #cd /etc/httpd/conf               //切換至 Apache 設定檔資料夾  
  • #cp httpd.conf httpd.conf.bak     //備份 Apache 設定檔  
  • #vi httpd.conf                    //修改 Apache 設定檔  
  • DocumentRoot "/var/www/html"     //預設值,網頁根目錄  
  • DocumentRoot "/home/web"         //修改後  
  •        //預設值,網頁根目錄設定  
  •            //修改後  
  
接著建立屆時 Apache 網頁伺服器測試首頁「/home/web/index.html」,利用「echo」指令將字串「Apache Work!!」送入測試首頁檔案內



檢視原始檔複製到剪貼簿列印關於

  • #echo 'Apache Work!!' > /home/web/index.html  
  
----- 修改 SELinux 設定值 -----
修改 SELinux 安全機制設定值,因為將 Apahe 網頁伺服器網頁根目錄由 「/var/www/html」 修改至 「/home/web」,因此資料夾其 SELinux 安全機制的權限勢必與原來不同,若不修改屆時啟動 Apache 服務時便可能會因為 SELinux 權限問題造成無法啟動 Apache 服務的狀況。



檢視原始檔複製到剪貼簿列印關於

  • #ls -dZ /var/www/html /home/web  
  • drwxr-xr-x. root root unconfined_u:object_r:home_root_t:s0 /home/web  
  • drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html  
  
接著透過「semanage fcontext -a -t」指令配合 SELinux 權限「httpd_sys_content_t」,指定「/home/web」資料夾及所有子資料夾及檔案都設定此權限為「SELinux預設權限」,之後使用「restorecon -Rv」指令把 /home/web 資料夾還原至剛才設定的 SELinux 預設權限,完成套用權限動作後再次查看二個資料夾 SELinux 權限便一模一樣。



檢視原始檔複製到剪貼簿列印關於

  • #semanage fcontext -a -t httpd_sys_content_t "/home/web(/.*)?"  //設定 SELinux 預設權限  
  • #restorecon -Rv /home/web          //還原 SELinux 權限         
  • #ls -dZ /var/www/html /home/web    //查看資料夾 SELinux 權限  
  • drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /home/web  
  • drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html  
  
----- 啟動 Apache 服務 -----
修改 SELinux 安全機制權限設定後,可以放心啟動 Apache 網頁服務,請使用指令「service httpd start」啟動 Apache 服務,並且於服務啟動後使用「netstat」指令查看系統是否開啟了 TCP Port 80,以及「ps」指令查看 Apache 執行序(httpd)是否運作。



檢視原始檔複製到剪貼簿列印關於

  • #service httpd start        //啟動 Apache 服務  
  • Starting httpd:                                            [  OK  ]  
  • #netstat -tunpl | grep :80  //查看是否開啟 Port 80  
  • tcp  0  0 :::80  :::*    LISTEN     904/httpd  
  • #ps aux |grep httpd         //查看 httpd 執行序  
  • apache     906  0.0  0.2  12680  2132 ?        S    15:58   0:00 /usr/sbin/httpd  
  • apache     907  0.0  0.2  12680  2132 ?        S    15:58   0:00 /usr/sbin/httpd  
  • ...略...  
  
啟動 Apache 網頁服務成功後,開啟瀏覽器測試 Apache 網頁服務是否真的運作以及看到剛才建立的測試首頁。
http://ithelp.ithome.com.tw/upload/images/20111101/201111011022254eaf57e1a50e8_resize.jpg

----- 虛擬主機 Virtual Host 設定 -----
簡單說虛擬主機 Virtual Host 為讓 Apache 網頁伺服器可以同時運作多個網站的機制,若伺服器只有一個 IP 位址即可依靠 DNS 名稱解析機制來達成,請注意!! 當設定 Virtual Host 之後原本的設定將被覆蓋。



檢視原始檔複製到剪貼簿列印關於

  • #vi /etc/httpd/conf/httpd.conf   //修改設定檔內容如下  
  •    
  •     ServerAdmin webmaster@weithenn.org  
  •     DocumentRoot /home/web/colo-a  
  •     ServerName colo-a.weithenn.org  
  •     ErrorLog logs/colo-a.weithenn.org-error_log  
  •     CustomLog logs/colo-a.weithenn.org-access_log common  
  •    
  • #mkdir /home/web/colo-a          //建立 Virtual Host 資料夾  
  • #echo 'Colocation-A work!!' > /home/web/colo-a/index.html  //建立測試首頁  
  • #service httpd reload            //重新載入 Apache 服務(套用生效)  
  • Reloading httpd:  
  
重新載入 Apache 網頁服務成功後,測試是否可以看到測試首頁。
http://ithelp.ithome.com.tw/upload/images/20111101/201111011023584eaf583eee616_resize.jpg
----- 設定 Apache 支援 .htaccess 保護功能 -----
當您網站上有某些網頁不想讓人可以隨便瀏覽 (例如:管理介面、程式後台.....),此時可利用 Apache 內的 .htaccess 功能來替網頁進行管制保護,以下為利用 .htaccess 來保護指定網頁其設定注意事項:
* AllowOverride AuthConfig: 使用 帳號/密碼 進行管制保護
* AllowOverride Limit: 使用 管制來源 IP 進行管制保護
* AllowOverride None: .htaccess 功能失效



檢視原始檔複製到剪貼簿列印關於

  • #vi /etc/httpd/conf/httpd.conf //修改設定檔內容  
  • AllowOverride None             //預設值  
  • AllowOverride Authconfig       //修改後  
  • #mkdir /home/web/colo-a/admin   //建立後台資料夾  
  • #echo 'Web Site Admin Page!!' > /home/web/colo-a/admin/index.html   //建立測試首頁  
  • #vi /home/web/colo-a/admin/.htaccess  //修改 .htaccess 檔案內容如下  
  • AuthType Basic  
  • AuthName "Admin Page Login"  
  • AuthUserFile /home/web/colo-a/admin/.htpasswd  
  • require valid-user  
  • #htpasswd -mc /home/web/admin/.htpasswd weithenn  //第二筆帳號使用 -m 即可  
  • New password:             //輸入登入密碼  
  • Re-type new password:     //再次輸入密碼以確認  
  • Adding password for user weithenn  
  • #chgrp apache home/web/colo-a/admin/.htpasswd     //設定檔案權限  
  • #chmod 640 /home/web/colo-a/admin/.htpasswd       //設定檔案權限  
  • #service httpd reload                             //重新載入服務套用生效  
  • Reloading httpd:  
  
設定完成後若成功運作則要瀏覽 admin 資料夾時便會彈跳出使用者帳號密碼驗證視窗,通過驗證即可看到網頁內容。
http://ithelp.ithome.com.tw/upload/images/20111101/201111011024224eaf5856b248e_resize.jpg
http://ithelp.ithome.com.tw/upload/images/20111101/201111011024274eaf585bf04b7_resize.jpg
  
  http://ithelp.ithome.com.tw/question/10080681

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-58392-1-1.html 上篇帖子: 我的RHCE之路——RedHat 6 破解grub 恢复grub方法 下篇帖子: 架设RHCE考试服务器
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表