540 likes | 657 Views
課程參與度之評估方式. 上課時必須專心聽講,跟上進度,參與討論 扣分項目 玩線上遊戲一次扣 1 分 玩手機一次扣 1 分 睡覺一次扣 1 分 聊天一次扣 1 分 無法回答老師提出的問題一次扣 1 分 加分項目 主動回答老師的問題一次加 2 分 找出老師程式中的錯誤一次加 1 分 修正老師程式中的錯誤一次加 4 分. 作業系統實務 Linux Web Server 管理. 鄧姚文. 學習目標. 認識 HTTP 通訊協定 了解 Linux 對網路服務的防護 安裝與啟動 Apache 網頁伺服器 了解 Apache 基本設定的意義 活用模組功能
E N D
課程參與度之評估方式 • 上課時必須專心聽講,跟上進度,參與討論 • 扣分項目 • 玩線上遊戲一次扣1分 • 玩手機一次扣1分 • 睡覺一次扣1分 • 聊天一次扣1分 • 無法回答老師提出的問題一次扣1分 • 加分項目 • 主動回答老師的問題一次加2分 • 找出老師程式中的錯誤一次加1分 • 修正老師程式中的錯誤一次加4分
學習目標 認識HTTP通訊協定 了解Linux對網路服務的防護 安裝與啟動Apache網頁伺服器 了解Apache基本設定的意義 活用模組功能 建立支援php語言功能的網頁伺服器 熟悉目錄的存取控制與選項功能
大綱 HTTP通訊協定原理 Linux的安全防護機制 安裝Apache 啟動Apache apache的基本設定 存取控制
網頁伺服器架設 實作HTTP通訊協定的伺服器軟體稱為網頁伺服器 Web Server Apache軟體基金會(Apache software Foundation),主要提供有關Apache伺服器法律、商業與組織方面的支援
Apache提供的功能 具網頁功能的伺服器 SSL提供網頁伺服器與瀏覽器之間以加解密方式溝通的安全技術標準 php模組提供PHP動態網頁處理語言 網頁目錄帳號驗證功能
架設Apache應具備能力 • HTTP通訊協定原理 • 瞭解HTTP通訊協定的概念,如TCP/IP知識與網頁的要求(Request)與回應(Response)。 • 套件安裝 • 使用yum或rpm指令進行RPM套件安裝。 • 修改設定檔 • 使用vi或nano文字編輯器,編輯文字檔與儲存檔案。
架設Apache應具備能力 • 服務啟動與停止 • 需使用service或Apache提供指令啟動、停止與重啟Apache服務。 • 驗證伺服器運作正常與否 • 使用瀏覽器或lynx指令連至架設好的Apache網頁伺服器,可以使用Windows的IE或Firefox等瀏覽器。
HTTP通訊協定原理 HTTP(HyperText Transfer Protocol)是網際網路的要素 由網際網路協會與Internet工作小組所制定的通訊協定 提供一個接收與傳送網頁頁面資料的國際標準 基於TCP的的通訊協定 產生要求(request)的客戶端(client) 接收要求而產生回應(response)的伺服器端(server)
HTTP通訊協定原理 由客戶端發起一個HTTP要求封包,伺服器收到HTTP要求後,依照要求的封包內容,將伺服器所負責的資源以HTTP回應的封包格式回傳予客戶端
Ubuntu 安裝 Apache Web Server • 檢查是否已經安裝 apache2 ? • dpkg --list | grep apache2 • 所需套件: • apache2-mpm-prefork • apache2-utils • apache2.*-bin • apache2.*-common
Ubuntu 安裝 Apache Web Server • 搜尋 apache 套件 • apt-get update • apt-cache search apache • 安裝 apache2 套件 • apt-get -y install apache2
Apache 相關目錄與檔案 • 主目錄 /etc/apache2 • apache 主要安裝目錄,目錄下有設定檔目錄conf.d/、模組設定目錄 mods-available, mods-enabled,網站設定目錄 sites-available, sites-enabled等 • *-available 內含全部的設定 • *-enabled 內含目前被啟用的設定 • 設定檔 /etc/apache2/apache2.conf • apache 的主設定檔,所有和伺服器運作有關的設定值都放在這個文字檔中。
Apache 相關目錄與檔案 • 套件有關目錄檔案 • 附加設定檔放置目錄 /etc/apache2/conf.d/ • 細部設定檔案 • 記錄檔 /var/log/apache2/ • 存取記錄 access.log • 錯誤記錄檔 error.log
Apache 相關目錄與檔案 • 網頁根目錄 /var/www/ • 在 /etc/apache2/sites-enabled/000-default 裡設定 • 網址 http://localhost/index.html 對應到檔案 /var/www/index.html
啟動 Apache • 利用 service 指令 • 啟動:sudo service apache2 start • 停止:sudo service apache2 stop • 重新啟動:sudo service apache2 restart • 另一種重新啟動apache 的方式sudo apache2ctl restart
檢查 Apache 是否運作正常? • 使用瀏覽器,在網址列打入主機的 IP 位址或 localhost測試 • http://127.0.0.1 • http://localhost • 先以 ifconfig查 IP,然後輸入 http://myip • 若運作正常,應看到:
Apache 的基本設定 • 檢視下列檔案 • /etc/apache2/apache2.conf • /etc/apache2/envvars • /etc/apache2/magic • /etc/apache2/ports.conf • 重要設定 • mpm_event • User, Group • AccessFileName • ErrorLog • Include
Apache 的基本設定 • 檢視下列目錄 • /etc/apache2/sites-enabled • /etc/apache2/sites-available • /etc/apache2/mods-available • /etc/apache2/mods-enabled
userdir使用者個人網站 • 模組設定 • mod_userdir • Linux 系統內的每一個使用者自己一個網站
userdir使用者個人網站 • 啟用個人網站功能 • 檢視下列檔案 • /etc/apache2/mods-available/userdir.* • 在 mods-enabled 內建立 LINK • 重新啟動 apache
userdir使用者個人網站 • 測試個人網站 • 在使用者家目錄內建立目錄:cd ~chmod 711 .mkdirpublic_html • 建立簡易網頁cd ~/public_htmlecho "<h1>你好:)</h1>" > index.html • 瀏覽網址 http://localhost/~帳號
練習:個人網站 修改 Apache 的設定,啟動個人網站功能 建立使用者帳號 student 在 student 的家目錄之中建立 public_html目錄,並在其中放置一個網頁名稱為index.php 修改 /etc/apache2/mods-enabled/php5.conf 讓使用者個人網站也能使用 PHP 功能 以 http://127.0.0.1/~student/ 檢視之
開啟使用者個人網站使用PHP功能sudo vi /etc/apache2/mods-enabled/php5.conf 在這一行前面加一個 # 令這個指令變成註解,失去效用。
個人網站裡的 index.php <?php phpinfo(); ?>
Aliases 別名/虛擬目錄 網頁位址上的目錄不一定要在 Apache 所設定的網頁根目錄 /var/www/下 別名 Alias 指令能夠建立網頁位址上的別名,並對應到系統目錄
Aliases 別名/虛擬目錄 • 觀察 /etc/apache2/sites-available/default 裡的設定 • ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ • Alias /doc/ "/usr/share/doc/" • 觀察 phpMyAdmin的設定: • /etc/apache2/conf.d/phpmyadmin.conf
存取控制 Access Control 可以為特定範圍訂定存取控制的選項 如限定IP 位址可存取 列出目錄內的檔案清單等 以「< 標籤>」方式指 定功能的對象或範圍,如特定目錄、網址或檔案名稱 可使用<Directory>、<Location>、<Files> 等標籤
存取控制 Access Control 目錄標籤規格
存取控制 Access Control • apache 提供一個細部的調整功能,能讓某特定目錄或檔案成為有存取控制的功能 • 讓某個IP 無法讀取、允許連結作用或以帳號密碼驗證後才能存取目錄內容 • IP 存取功能處理順序- Order 指令 • 判斷准許(Allow)或拒絕(Deny)的順序 • 先 Allow 再 Deny:負面表列,基本上准許,除了…之外 • 先 Deny 再 Allow:正面表列,一律不准,除了…之外
存取控制 Access Control • 限定IP 位址存取選項功能 • 讓某個IP 無法讀取、允許連結作用或以帳號密碼驗證後才能存取目錄內容 • IP 存取功能處理順序- Order 指令
存取控制 Access Control • IP 存取功能處理順序 • Allow 指令 • 指定允許存取的IP 或IP 範圍,可用「all」代表所有的IP • Allow from all:允許所有IP 存取此目錄。 • Allow from 192.168.1.:允許開頭為 192.168.1. 的 IP 存取 • Allow from 172.17.1.35:允許該 IP 存取目錄內容 • Allow from 10.0.0.0/8:允許該子網存取目錄內容
存取控制 Access Control • IP 存取功能處理順序 • Deny 指令 • 指定拒絕存取的IP 或IP 範圍,可用「all」代表所有的IP • Deny from all:拒絕所有 IP 存取此目錄。 • Deny from 192.168.1.15:拒絕該 IP 存取目錄內容。 • Deny from 192.168.0.0/24:拒絕子網存取目錄內容。
存取控制 Access Control • 實務範例一 • 網頁目錄想要公開 • 給所有的外部IP 存取,但有一個 • IP:172.17.1.35,我們想拒絕它存取網頁資料
存取控制 Access Control • 實務範例二 • 公司內部專用的網頁伺服器, 希望能夠只將專案文件目錄/var/www/html/project/ 開放給192.168.2.x 的IP 存取,其餘IP 皆拒絕存取
存取控制 Access Control • 存取選項- Options 指令 • 特定目錄的有預設的「自動檔案清單」與「允許符號連結」等選項功能 • None • 代表不使用所有選項。 • Indexes • 啟用自動檔案清單,客戶端要求某個目錄內容,而該目錄內又沒有如index.html 等預設文件時,Indexes 選項會列出該目錄的檔案清單
存取控制 Access Control • 存取選項- Options 指令 • 特定目錄的有預設的「自動檔案清單」與「允許符號連結」等選項功能 • FollowSymLinks • 當目錄內有符號連結時,允許網頁端連結至該符號連結的目的地目錄,這個選項有安全性的問題,在實務上儘可能不使用它
存取控制 Access Control • 允許推翻選項設定- AllowOverride • AllowOverride 選項只適用在Directory 目錄標籤 • 設定該目錄下的子目錄是否可以推翻其上層已訂定的選項設定值 • 自訂權限設定檔是在目錄中 • 新增一個文字檔並設定該目錄的自訂選項值
存取控制 Access Control • 允許推翻選項設定- AllowOverride • AllowOverride All • 允許子目錄可自訂所有選項。 • None • 不允許子目錄自訂任何選項(子目錄無法使用自訂選項功能)。 • AllowOverride選項清單 • 只允許子目錄自訂列出清單的選項,如:AllowOverride Indexes FollowSymLinks
存取控制 Access Control • 驗證帳號與密碼 AuthConfig • 定義目錄帳號驗證規則可讓特定目錄在網頁觀看者讀取時,要求輸入帳號與密碼 • 驗證設定檔,預設的檔案名稱是「.htaccess」 • 設定/var/www/html/files/ 可使用自訂權限
存取控制 Access Control • 驗證帳號與密碼 • 為使用者設定密碼 • 使用 htpasswd指令建立帳號與密碼 • 產生「.htpasswd」密碼檔
存取控制 Access Control • 驗證帳號與密碼 • 編輯目錄驗證設定檔 • 新增自訂目錄權限設定檔「.htaccess」
存取控制 Access Control • 驗證設定檔參數說明 • AuthType • AuthType 為Basic 代表使用由htpasswd 指令產生的密碼檔為驗證依據。 • AuthName • 本項驗證的名稱,顯示在對話框上的文字。 • AuthUserFile • 驗證使用的密碼檔,必需包括所在目錄 • Require • 可通過驗證的帳號,valid-user 代表所有的帳號
存取控制 Access Control • 驗證設定檔參數說明 • 使用IE 或firefox 瀏覽器測試網址http://127.0.0.1/files/
練習:虛擬目錄與安全防護-1 公司想在新年度更換新的首頁,請網站設計師先進行設計,等確認後再正式上線 MIS 為協助新網站的開發,將開發中的新網站放在http://www.[我的學號].com.tw/2012/並加上一組帳號密碼加以控管,這一組帳號密碼只有公司主管與網站設計師知道 等到新網站確認之後,令新網站正式上線
練習:虛擬目錄與安全防護-2 • 建立帳號 web2012 # adduser web2012 # passwd web2012 • 建立目錄 /home/web2012/html $ su - web2012 $ mkdir html
練習:虛擬目錄與安全防護-3 • 建立 Apache 設定檔 /etc/apache2/sites-available/web2012 • 建立 link 於 /etc/apache2/sites-enabled
練習:虛擬目錄與安全防護-4 • 建立 .htaccess與 .htpasswd • 在/home/web2012/html/目錄內建立.htaccess檔案,內如如次頁 • 以下列指令建立.htpasswd檔案以及驗證用的帳號密碼: • $ htpasswd –c .htpasswd web2012