Posts Tagged ‘ Security

iptables 封鎖的指令與簡單的封鎖程式

安裝了一台新的 Linux Server,有個來自中國的 IP「218.25.253.100」連續好幾天一直在嘗試以 ssh 登入我的 Server,雖然我也裝了 fail2ban,不過只設三個小時的封鎖時間,所以每天會看到 fail2ban 告訴我這個 IP 被封鎖了 n 次!!看了很煩,所以直接用 iptables 把它給封鎖了。
Read more

用 Fail2Ban 防範暴力破解 (SSH、vsftp、dovecot、sendmail)

Fail2Ban 可以用來防護 Linux Server 上的 SSH、vsftp、dovecot...等服務免於遭駭客使用暴力密碼入侵。我以前曾寫過即時封鎖想要入侵 SSH 的程式,不過 Fail2Ban 厲害多了,也完全可以取代我寫的程式。

安裝 Fail2Ban

安裝前可以先用下列指令來查看可安裝的版本:

yum info fail2ban

像我的系統 (CentOS 5.x) 查出來有兩個版本: 0.8.14 與 0.6.0,來自不同的套件庫,但預設卻安裝 0.6.0,所以我必須要指定安裝的版本為 0.8.14,以下的說明也是針對 0.8.*

安裝 Fail2Ban:

yum install fail2ban

yum install fail2ban-版本

啟動 Fail2Ban:

service fail2ban start
chkconfig fail2ban on

Read more

增加 ssh 的安全性設定

編輯 /etc/ssh/sshd_config,加入或修改下列參數:

#禁止 root 以 SSH 登入
PermitRootLogin no

#僅允許特定群組登入
AllowGroups group1 group2

#僅允許特定帳號登入
#(注意,AllowUsers 會覆寫 AllowGroups,若你有群組登入的需求,就不能設 AllowUsers)
AllowUsers user1 user2

#禁止使用空白密碼登入
PermitEmptyPasswords no

#限定只能使用 SSH2 協定
Protocol 2

#限定最多可以同時連線的數目
MaxStartups 5

免費的 Windows 防火牆軟體

免費的 Windows 防火牆軟體,有需要時,可以拿來試用看看:

  1. COMODO Personal Firewall (佔記憶體約 23MB, 教學1, 教學2)
    本產品有繁體中文版,安裝好 CFP 之後,先到「安全性」->「任務」->「定義一個新的可信任網路區域」,新增好之後,就可以啟用「網路上的芳鄰」了,此個人防火牆的評價也不錯,又是終身免費,推薦大家使用。
  2. Online Armor Free Edition (教學)
  3. ZoneAlarm (版本比較)
    在安裝好 ZoneAlarm 之後,只要到「Firewall」裡的「Zones」將相關網卡設為「Trusted」之後,就能讓別人從「網路上的芳鄰」存取這一台電腦所分享的資源。ZoneAlarm 本身俱有一些簡單的防毒能力,不過,我們通常都會把它關掉。(5.5.094 版下載 & 中文化)
  4. Kerio Personal Firewall (佔記憶體約 15MB, 版本比較)
    安裝好 Kerio Personal Firewall 之後,必須先到「Network Security」裡的「Trusted area」將相關網卡設為「Trusted」,然後回到「Applications」,將「Microsoft File and Printer Sharing」裡「Trusted」區域的權限全部設為「permit」之後,才能讓別人從「網路上的芳鄰」存取到這一台電腦所分享的資源。
  5. Sygate Personal Firewall
    Sygate Personal Firewall 是一套評價很高的防火牆軟體,不過,我在它的「網路上的芳鄰」相關設定上試了半天,必須經過一些「奇怪」的步驟,才能讓別人在「網路上的芳鄰」存取到這一台電腦所分享的資源,所以我就不推薦了。
  6. Outpost Free
    Outpost 也是一套評價很高的防火牆軟體,不過它的免費版本似乎比較舊了,所以我就沒有多做測試了。
  7. 費爾個人防火牆 中文版
  8. PC Tools Firewall Plus 免費版本

以上免費的防火牆,我比較推薦 COMODO Personal Firewall,另外,ZoneAlarm也不錯啦。

參考網頁

如何即時封鎖想要用「暴力密碼」破解 SSH 的入侵者

本程式無法處理 IPv6 的問題,請改用功能更強大、更完整的 Fail2Ban,請參考本站文章:


粉久之前寫了一支 Log 分析的程式,可以統計、分析前一天系統的 Log,在這一份報表裡面,總是會看到有一些人使用「暴力法」,嘗試以各種帳號、密碼,藉由 SSH 或 FTP 入侵伺服器! 而我只能看著「前一天」的報表,分析他們用過哪些帳號、統計他們嘗試了幾次…實在有點不是滋味
Read more

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

    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) 有可能在無聲無息之中就已經幫你完成整個機制了,你只要把心思用在程式的其它部份即可。

    參考網頁

    return top