Archive for the ‘ Server ’ Category

iptables 防火牆的一些基本用法

  • 列出目前的規則
  • iptables -L -n
  • 刪除 “INPUT” 的第 1 條規則
  • iptables -D INPUT 1
  • 丟棄來自 192.168.1.203 的封包
  • iptables -A INPUT -p all -s 192.168.1.203 -j DROP
  • 禁止 192.168.1.203 的用戶以 SSH 登入(Port:22)
  • iptables -A INPUT -p tcp -s 192.168.1.203 --dport 22 -j DROP
  • 儲存防火牆的設定到 filename
  • iptables-save > filename
  • 從 filename 讀取防火牆的設定
  • iptables-restore < filename

    .htaccess 簡易的網頁帳號認證

    .htaccess 讓你不用寫程式,就可以用最簡單的方式做出「網頁登入」的功能,限制哪些用戶能進到網頁的某一層目錄。

    建立用戶驗證資料

    建立用戶驗證檔

    建立用戶驗證檔,並新增一組帳號及密碼:

    htpasswd -c /path/to/.htusers UserName1

    這裡所產生的 .htusers 是一個文字檔,裡面會有用戶名稱及編碼過的密碼。第一次建立檔案時,必須加 -c 參數。同時,請找一個安全的地方放置 .htusers 這個檔案,所謂的「安全」是指至少不要在公開網頁可以被下載到的路徑,例如放在 public_html 的上一層。

    繼續增加第二組帳號及密碼到驗證檔時,就不用加 -c 參數:

    htpasswd /path/to/.htusers UserName2

    建立群組資料檔

    如果用戶比較多,你可能會想要用群組的方式來做管理。群組資料檔的目的是要將多個用戶設為一個群組,請新增或編輯 /path/to/.htgroups,依需求增加類似如下的設定:

    Group1:UserName1 UserName2

    代表 Group1 包含 UserName1UserName2 這兩個用戶。

    驗證登入

    在欲執行用戶驗證的網頁目錄下,建立一個 .htaccess 檔案,驗證的方式可針對用戶或群組,差別在於 require 這個參數。

    針對用戶:

    AuthName "Restricted Area" # 名稱必須用英文
    AuthType Basic
    AuthUserFile /path/to/.htusers
    require user UserName1 # 僅針對特定用戶,以空白分隔多個用戶

    上述的最後一行是只有 UserName1 允許進入,你也可以改成:

    require valid-user # 針對全部用戶

    表示針對 .htusers 裡的所有用戶。

    針對群組:

    AuthName "Restricted Area" # 名稱必須用英文
    AuthType Basic
    AuthUserFile /path/to/.htusers
    AuthGroupFile /path/to/.htgroups
    require group Group1 # 僅針對特定群組的用戶,以空白分隔多個群組

    表示針對 .htgroups 裡,歸屬於 Group1 下的用戶。

    針對特定檔案:

    若你只想針對特定檔案做保護,那可以與 <Files>~</Files> 一起使用:

    <Files FileName>
         require valid-user
    </Files>

    <Files>~</Files> 一次只能填寫一個檔案,但支援正規表示式。以下是使用正規表示式限制圖檔存取的範例:

    <Files ~ "\.(gif|jpe?g|png)$">
         require valid-user
    </Files>

    或是:

    <FilesMatch "\.(gif|jpe?g|png)$">
         require valid-user
    </FilesMatch>

    設定好之後,當用戶要存取該目錄 (或檔案),就會跳出叫你登入的對話框:


    另外,你也可以在網址中直接輸入你的帳號、密碼,格式:

     http://UserName:Password@www.example.com/directory/

    問題排除

    如果在設定 htaccess 認證方式之後,在進入網頁時,仍然沒有跳出驗證的對話框,則請編輯 /etc/httpd/conf/httpd.conf,搜尋相關的「AllowOverride」設定,改成:

    AllowOverride All

    安全性問題

    雖然用戶儲存在 Server 端的密碼有經過加密,但因為是採用 Basic 方式驗證,當要存取網頁時,用戶輸入的帳號與密碼僅是以 Base64 編碼,包裹在 Headers 裡進行傳輸,有機會被竊聽之後解碼、盜用! 網站必須導入 SSL 才能完全在傳輸的過程中加密。

    參考網頁

    IP 位址區段計算程式 *

    檔案下載

    有時候 MIS 需要計算區段 IP 的啟始位置和終點 IP,使用這個程式,只需要填入目標 IP,就會幫您算出:

    • IP 數
    • 開始的 IP(Network IP)
    • 結束的 IP(Brocase IP)
    • 網路遮罩(Subnet Mask)

    而且不用安裝就可以使用了。

    在 Linux 上建立虛擬主機最快速的方法 *

    本篇的目的,是說明如何使用最簡單的方式在你的網頁伺服器 (Apache) 上新增一個虛擬主機 (Virtual Host),讓你只要建一個目錄,或新增一個本機用戶,就可以建立虛擬主機,並且可自動分割 Log 檔 (以下之設定牽涉到 Apache 及 DNS 的觀念,最好也有自行架設 DNS 服務)。
    Read more

    Redhat Linux 9.0 中文手冊 *

    檔案下載

    內含 Redhat Linux 9.0 的安裝手冊、使用手冊及用戶自訂手冊,HTML 格式。

    你也可以到這裡讀取:

    相關網頁

    HTTP 回應的代碼含義

    當我們在瀏覽網頁的時候,經常會看到諸如 500 錯誤之類的訊息,這些錯誤代碼所代表的含義作為網站的開發人員,應該必須瞭解的。

    HTTP 的回應代碼是三位數字,其中第一個數字定義了代碼的類別:

    範圍 類別 含義
    100~199 訊息 請求被接收,正在處理
    200~299 成功 動作被成功接收、理解和接受
    300~399 重新導向 必須採取其他動作才能完成請求
    400~499 用戶錯誤 請求包含不良語法或無法完成
    500~599 伺服器錯誤 伺服器無法處理的請求

    其中較常見的 HTTP 回應代碼有:

    • 200: 請求成功
    • 400: 語法錯誤
    • 401: 未經授權
    • 403: 禁止訪問
    • 404: 請求的網頁不存在
    • 500: 伺服器錯誤

    Read more

    [Perl]格式化系統 LOG 分析 *

    本文件是參考鳥哥寫的 logfile.sh,我把它改成符合我自己系統的 LOG 分析程式,全面以 Perl 重寫。我自己用了一段時間 (其實也半年了),覺得勉強還可以用,所以公開給大家用看看…
    Read more

    Cookie 是什麼?

    很多網站在你瀏覽網頁之後,會在你的瀏覽器中留下一些小小的資料,這就是所謂的「Cookie」。當你再次瀏覽這些網站時,系統便會去讀取這些 Cookie,找回與你曾經有過的片刻記憶。

    「Cookie」不是餅乾,Cookie 是伺服器暫存在你電腦上的一筆資料,好讓伺服器用來辨認你的電腦。就好比是格林童話故事中,沿途撒下麵包屑避免在森林中迷路的小孩。

    為什麼需要 Cookie?

    HTTP 的協議本身是「無記憶狀態 (Stateless) 」的,無論是用戶端還是網頁伺服器,每一個頁面都沒有關聯,每一次的請求都是單獨的請求。伺服器藉由 Cookie 來讓同一個用戶的各項操作都可以產生關聯。

    當你在瀏覽網站的時候,伺服器會先送一些小小的資料放在你的瀏覽器上,Cookie 會幫你在網站上所打的文字或是一些選擇都紀錄下來。當下次你再光臨同一個網站,網頁伺服器會先查看有沒有上次留下的 Cookie,有的話,就會依據 Cookie 裡的內容來判斷用戶,送出特定的網頁內容給你。

    Cookie 的使用很普遍,許多有提供個人化服務的網站,都是利用 Cookie 來識別用戶,以方便送出為用戶量身而做的內容,像是 Web 介面的免費 email 網站,都有用到 Cookie。

    Cookie 會不會有危險?其實 Cookie 中記載的資料有限,Cookie 是安全的。網站不可能經由 Cookie 獲得你的 email 地址或是其他私人資料,更沒有辦法透過 Cookie 來存取你的電腦。

    但是如果你實在不喜歡網頁伺服器亂丟 Cookie 到你家,當然可以讓瀏覽器拒絕網站存放 Cookie 到你的瀏覽器。

    IE 瀏覽器從「工具」選單 → Intertnet 選項 → 安全性,按「自訂層級」,到 Cookie 的部分,全都設為「關閉」,再重新啟動瀏覽器即可。

    當你關閉 Cookie 之後,很多網站的個人化服務功能很可能就不能再使用了。

    IE 的 Cookie 預設存放位置是在: C:\WINDOWS\Temporary Internet Files

    你可以直接刪掉這裡面的東西或是利用「Internet 選項」裡的清除檔案按鈕來清除。

    Cookie 的內容

    大家想不想知道哪個網站有設 Cookie?你的 Cookie 資料又為何?其實,用一行簡單的 JavaScript 指令就可以一清二楚了。

    首先,開啟一個網站,例如 http://www.google.com ,一旦網站開啟後,在瀏覽器的位址列中輸入以下的 JavaScript 指令:

    javascript:alert("Cookie:"+document.cookie)

    javascript:document.write(document.cookie)

    按下 Enter 後,你會見到跳出一個小警告視窗,上面便會標明你的 Cookie 資料,試試看吧!

    比較新的瀏覽器,如 Chrome 與 Firefox 都有內建「開發人員工具」,只要按 F12 開啟「開發人員工具」,可以在「Application」或「儲存空間」頁籤看到網站所儲存的 Cookie 內容。

    什麼是 Session?

    講到 Cookie 就會有人提到 Session。

    Session 的資料是存放在 Web 伺服器端。用解釋的不好解釋,我們先來舉個例子...

    有一家咖啡店要舉辦咖啡買三送一的活動,若以「Cookie」或「Session」的作法來看:

    • Cookie:
      相當於是店家發給你一張「小卡片」,每次你來買一杯咖啡就在卡片上蓋個印章,集滿三個印章,那咖啡店就會送你一杯免費的咖啡。
      其中,購買咖啡的記錄是留在你攜帶的卡片上,如果卡片遺失你的記錄就不存在了。
    • Session:
      相當於是店家請你加入他們的會員,然後發給你一張「會員卡」(Session ID)。每次你拿會員卡來買咖啡都會在店家的電腦裡留下記錄,買了三杯咖啡就會送你一杯免費的咖啡。
      其中,購買咖啡的記錄是儲存在店家的電腦裡,如果會員卡遺失了可以透過核對會員的資料來重新取得會員卡,未來這張會員卡甚至可能在它的連鎖店使用。

    可以說,Cookie 只做一件事,就是存取伺服器暫存在客戶端的資料。而 Session 則是一個涵蓋範圍比較廣、比較完整的保存機制。並且 Session 仍需藉由 Cookie、網址或表單...等三種方式來識別用戶的 Session ID,才能接續之後伺服器要做的事情。

    只要「網站是將任何用戶的資料儲存在伺服器,並且用 Cookie、網址或表單來識別單一用戶」,這樣就已經是在實作 Session 了。由於「識別用戶」是很普遍的功能,你所使用的程式框架 (Framework) 有可能在無聲無息之中就已經幫你完成整個機制了,你只要把心思用在程式的其它部份即可。

    參考網頁

    [Perl]安裝 ImageMagick 相關模組 *

    ImageMagick 是個功能強大的圖片工具,讓你讀取、寫入、操作任何熱門的圖片格式,如 GIF、JPEG、PNG、PDF… 等。使用 ImageMagick 可以即時的建立 GIF 的圖片檔案,讓圖形可以更融入網頁等應用介面。你也可以更改圖片的大小、反轉圖形、增強亮度、減少顏色對比、加入額外特殊的效果。圖片可以儲存不同的格式依你的工作需求。
    Read more

    Redhat Linux 7.3 快速安裝指引 *

    教你快速安裝 Redhat Linux 7.3…

    特點及功能如下

    • 使用單純的結構,以提供主流服務,系統將不安裝 X-Window 介面。
    • 具備 ProFtp、Sendmail、Webmail、web 及資料庫 (MySQL) 的服務。
    • 可使用瀏覽器在線上做系統管理 (WebMin)、資料庫維護 (phpMyAdmin) 及流量監控 (Mrtg)。
    • 每天與時間伺服器對時。
    • 每週自動更新系統的套件。

    Read more

    return top