Monthly Archive for 一月, 2009

在Tomato firmware下直接連線到ADSL Modem

Tomato Firmware支援許多搭載broadcom晶片的無線網路分享器,在網路上廣受好評,我也是他的愛用者之一。一般家庭擁有無線網路的家庭最常見的網路配置方式應該如下圖所示:

home wirelss architecture

home wirelss architecture

如此的架構下,無線網路分享器下面的機器便無法直接連線進去ADSL modem中去看一些資訊(圖中192.168.1.1乃中華電信modem預設的IP),要解決這個問題只需幾個簡單的動作。

  1. 使用瀏覽器進入Tomato管理介面
  2. 到Administration -> Scripts -> Init標籤頁面,輸入:
    ifconfig vlan1:0 192.168.1.2 netmask 255.255.255.0
  3. 接著到Administration -> Scripts ->Firewall標籤頁面,輸入:
    /usr/sbin/iptables -I POSTROUTING -t nat -o vlan1 -d 192.168.1.0/24 -j MASQUERADE

最後使用瀏覽器,看看是否能成功連線至Modem設定頁面。

    每日自動彙整Plurk至BBS及信箱

    我是一個重度的BBS使用者,之前在Vexed大神的引薦下開始使用Plurk,每天在plurk上面亂撲後,總是希望能夠每天plurk後整理一份到BBS上面記錄(我承認我還蠻無聊的,想要備份每天的胡言亂語)。所以就著手寫了一份自娛娛人,跑了快一個月看起來應該沒甚麼問題,於是就放出來跟各位分享。(因為一開始沒打算丟出來,所以code寫得有點亂,還請見諒) Continue reading ‘每日自動彙整Plurk至BBS及信箱’

    使用iptables來抵擋brute force ssh攻擊

    每天都會有script kids到處亂掃機器,嘗試使用一些簡單常見的組合,看看能不能瞎貓碰到死號子,成功矇進去機器裡面,相信這是手邊有機器的朋友們共同的遭遇,打開log應該都是一整片try and error的紀錄。雖然透過這種方式成功的機會實在不高,但是機器三不五時就讓人家這樣try還是很不爽,有時候遇到機車一點的,還用個超長字典檔來嘗試,導致系統loading增高,感覺實在不好受。

    網路上有許多現成的script或是套件來幫忙阻擋,雖然多了一些比較彈性的設定以及美美的統計,但是對我來說,只要能達到阻擋目的即可,所以我選擇不安裝額外套件的方式,採取已經就存在的iptables中的recent module來抵擋。只要短短兩行就搞定了:

    iptables -A INPUT -p tcp –dport 22 -m state –state NEW -m recent –set  –name SSH -j ACCEPT

    iptables -A INPUT -p tcp –dport 22 -m recent –update –seconds 60 –hitcount 4 –rttl –name SSH -j DROP

    第一行的部分是在INPUT的chain中建立一個叫做SSH(可以隨便換成你愛的)的清單,用來記錄連線的資訊。

    第二行用白話文解釋便是:當同一個來源在60秒內所產生新的連線達到第4次的時候,就把連線給drop掉。使用–update則是要求每次比對後更新SSH這個清單。而–rttl則是檢查source address及ttl是否為相同,避免spoofing的問題。

    短短兩行就搞定收工啦,效果相當讓人滿意。

    如何送command至第n層的Screen

    使用*nix的朋友應該都對screen這個方便的工具相當熟悉。今天一個朋友向我求救他遇到的問題,他在A機器的screen中ssh到了B機器,在B機器上面reattch之前的screen session (使用screen -r),當他工作結束後,打算detach在B機器的screen session,很自然的按了 Ctrl a + d的命令,卻發現竟然是A機器的screen被detach掉而非B機上的!

    解法很簡單:

    Ctrl + a + a + d 即可

    換句話說,你要送給第n個screen指令時,就按幾次』a』就對啦!!希望對遇到相同問題的人有幫助。

    Firefox 3.1如何實作searchplugins

    因為人在澳洲,在逛線上購物的網站時常常會需要做匯率的計算,所以自然而然腦筋就動到firefox的search框框上去了。 之前在firefox 2.x的時候有自己implement過search plugin, 基本上就是寫個簡單的xml檔,然後放到%Firefox安裝目錄%\searchplugins裡面就會動了,但是今天在做的時候卻始終無法出現我自製的searchplugins。

    到網路上找了一下,發現一個簡單的解決方法:

    刪除 C:\Documents and Settings\你的使用者名稱\Application Data\Mozilla\Firefox\Profiles\一組亂碼.default\search.json

    重開firefox後就出現啦。

    最後,順便分享一下我製作的匯率轉匯程式,你可以輕易的將相關幣別修改轉匯換成你所需的。

    <SearchPlugin xmlns="http://www.mozilla.org/2006/browser/search/">
    <ShortName>Yahoo Ex!</ShortName>
    <Description>Yahoo Exchange</Description>
    <InputEncoding>UTF-8</InputEncoding>
    <Image width="16" height="16">data:image/x-icon;base64,R0lGODlhEAAQAJECAP8AAAAAAP///wAAACH5BAEAAAIALAAAAAAQABAAAAIplI+py+0NogQuyBDEnEd2kHkfFWUamEzmpZSfmaIHPHrRguUm/fT+UwAAOw==</Image>
    <Url type="text/html" method="GET" template="http://tw.money.yahoo.com/currency_exc_result">
      <Param name="amt" value="{searchTerms}"/>
      <Param name="from" value="AUD"/>
      <Param name="to" value="TWD"/>
    </Url>
    <SearchForm>http://tw.money.yahoo.com/</SearchForm>
    </SearchPlugin>
    

    Debian Multi-WAN QoS Howto

    [注意]

    引用本文請完整引用並須於引用文章中列上本文章的完整連結

    [前言]

    某個的vpn設置的時候是希望滿足兩個條件: 1) 隨時可以使用內部ip存取經過ip認證的服務。(如: IEL) 2) 利用固定制ADSL的路由優勢存取原本需要繞遠路的網域 (如:連往對岸),增快存取速度。

    [架構]

    vpn structure

    vpn structure

    Continue reading ‘Debian Multi-WAN QoS Howto’

    How to use rtgui with PHP4

    rtorrent是unix下面一個lightweight but powerful的BT Client. 跟許多console mode軟體不同的是, 他提供完整的xmlrpc api讓developer可以開發自己的interface來管理使用rtorrent.

    我選用了rtgui, 本來以為只要幾分鐘就可以設定好, 沒想到卻遇到不能預期的錯誤, trace一下才發現原來是 file_get_contents這個function在PHP 5.0.0以後才support $context這個參數.

    所以只好自己用curl hack一個給PHP < 5.0.0可以動的版本. (需要有curl extension) 目前用起來是沒遇到任何問題, 搞定收工.

    Here is the hack (把functions.php裡面的do_xmlrpc整段換成):

    
    function do_xmlrpc($request) {
       global $rpc_connect;
       if (version_compare(PHP_VERSION, '5.0.0', '>=')) {
          $file = file_get_contents($rpc_connect, false, $context);
       }else if(version_compare(PHP_VERSION, '5.0.0', '<') &amp;&amp;
                    extension_loaded('curl')){
          $c = curl_init();
          $post_data = array('content' => $request);
          curl_setopt($c, CURLOPT_URL, $rpc_connect);
          curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
          curl_setopt($c, CURLOPT_POSTFIELDS, $request);
          curl_setopt($c, CURLOPT_TIMEOUT, 5);
          curl_setopt($c, CURLE_OPERATION_TIMEOUTED, 5);
          $file = curl_exec($c);
          curl_close($c);
       }else{
           die ("<h1>Please use PHP 5+ or enable cURL extension :) </h1>");
       }
       $file=str_replace("i8","double",$file);
    
       return xmlrpc_decode($file);
    }
    

    推薦linode VPS 360!

    會興起買vps的念頭主要原因還是因為我現在人在雪梨,但是常用的網頁服務及一些謎樣的檔案都還是放在台灣的機器上。無奈台灣與澳洲之間』似乎』沒有直接的peering(這裡講』似乎』是因為我在twnic上面有看到hinet有一條T3連往澳洲),往台灣一般的ISP的速度還在可以忍受的的範圍內,但是連往謎資源豐富學術殿堂的TAnet卻是慢到可以。在這樣的背景下,只好找一個第三地的機器來幫忙了,搜尋一下發現澳洲主要對外的頻寬還是連往美國居多,所以就往美國的VPS供應商去找。 Continue reading ‘推薦linode VPS 360!’

    測試

    Blog testing

    中文…