三月 02
2008
ming
|
Linux
|
Regular Expression 正則表達式,有些人也稱作正規表示式;是許多寫程式或是作系統管理的人,一定會遇到的情況。
網路上可以搜尋到非常多關於 Regular Expression 的教學文章,我比較常拿來做小抄式備忘的簡明網頁是 Wikipedia 的。然而都是單方面的介紹與指導,看完後除非有實際可用的指令工具或是程式編譯開發環境,才能親自觀察比對式和目標文字之間的匹配結果。
有時,僅由指令或程式也只能直接獲得結果,不能瞭解中間的匹配過程。這時候,我們需要一個能預先測試的小環境。
介紹一個免費好用,也能使用中文字匹配(我作了簡單的比對,可以)的德國互動軟體: Regex Coach 。我們在沒有開發程式沒有線上環境的情形下,仍然可以藉由它來測試正則表達式與目標文字之間的匹配關係,進而增加自己對正則表達式的熟練。

這裡是軟體操作的教學,跟著網頁一步一步走,應該可以初步掌握這個簡單軟體的使用。
一月 12
2008
ming
|
Linux
|
Portknocking 可以用來,當我們需要保護一台公開的伺服器對任意ip公開ssh或ftp等服務埠時,又同時需要對抗惡意人士的tcp port掃瞄或是暴力連接測試。其實後者是多講的,以一位負責的管理者而言,責任內的每一台公開伺服器,他就必需盡最大的能力,將它保護起來,同時又保持對善意人士的開放服務。
這個 Portknocking 觀念,我是上個月才知道的,但就我所看到的網頁資料,它的觀念到少已經出來5年了。我卻很少查到中文網頁有介紹這項觀念與技術。
問題是它在網路安全的防範上,又相當的強固。實在搞不懂為什麼沒有人介紹它。我想原因應該是,知道的人自己看國外網站資料就行了,不需要靠中文網站資料,不知道的人永遠不會知道,所以完全用不著,加上這名詞太生澀,中譯名可能不統一。
ok,回到主題。先介紹觀念:
一言以蔽之,就是芝麻.開門-芝麻.開門技術。瞭解了嗎?不瞭解?好,大陸有很專業的人士,翻譯做「端口碰撞技術」。這麼專業的詞彙,聰明的你就瞭解了吧?
大陸有那麼多看得懂英語的人,卻說不好中文,經常把英文詞彙翻得怪裡怪氣。我想他們看台灣翻的,一樣也覺得怪裡怪氣吧。
哇又離題了。什麼叫芝麻開門?就是當不知道口令的陌生人來到我們家門口時,門神永遠讓它吃閉門羹。但若來人以正確的順序及文字說出:芝麻.開門! 的時候,門就晃郎郎地打開了,金銀財寶隨便你進去拿。
這看過阿里巴巴卡通的小學生都知道,那跟我的網路安全保護有什麼關係?有,當惡意的陌生人,如果做不到芝麻開門的暗號動作時,那我們的重要服務埠(如SSH的 22)就不會對他開放。如果我們在連到真正的重要服務之前,有先設定做一些連線敲門動作(即芝麻開門暗號),讓公開伺服器察覺到,這是主人來了,才自動開22的門,於是我們就可以連進去了。
通常這類芝麻開門的暗號動作,是主人以「先嘗試連65535個埠中某一個埠」,「再嘗試連65535個埠中的另一個埠」,這種類似保險箱的密碼組合,為開門暗號。惡意人士,很難從65535個埠中選2個為組合(高中機率基礎計算 C-6萬5千取2),找出正確的開門暗號。因此它相當強固。若要更強固,我們可以 C-6萬5千取4,就如左圖的說明,要先經過正確的先敲1號門、再敲2號門、再敲3號門,再敲4號門,真正的 n 號蓬門始為君開。這是幾乎不可能被猜出來的埠號組合。
什麼?這不就是搞老式保險箱轉盤號碼鎖嗎?對啊。不過「端口碰撞技術」感覺高深多了,可以讓你的老闆和同事對你肅然起敬,整個FU就是不一樣;要是跟他們說「我使用芝麻開門技術」來保護伺服器,顯得多麼沒有水準呢!(大陸稱為技術含量 呵呵)
繼續閱讀…
十二月 10
2007
ming
|
Linux
|
新版的 iptables 有個好用簡單又有效率的功能,可以設定它阻止瞬間連線太多的來源 IP。至於是新到多少版我實在懶得查文件,看到有一說是紅帽企業三版和 Centos 三版是不行的,都要4版以上。
這種阻擋功能在某些很受歡迎的站台,特別像是大型討論區網站,每個網頁都是重型運算負荷時,又遭到「無知卻故意」的人士,使用像是 HTTrack 或 Teleport 之類的軟體砍站。一瞬間太多的連線需求,每個需求又是重負荷的運算,導致伺服器呈現呆滯狀態。
這個時候,無辜的網站管理員和其他循規蹈矩的網友,就需要下列的三行指令來拯救了:
iptables -I INPUT -p tcp --dport 80 -d SERVER_IP -m state --state NEW -m recent --name httpuser --set
iptables -A INPUT -m recent --update --name httpuser --seconds 60 --hitcount 9 -j LOG --log-prefix 'HTTP attack: '
iptables -A INPUT -m recent --update --name httpuser --seconds 60 --hitcount 9 -j DROP
其中 SERVER_IP 換上被攻擊的伺服器 IP。
繼續閱讀…
最新回應