最近在研究防火牆的東東,其中防火牆的運作模式吸引了我的注意,有看到幾個名詞

  1. Bridge / Transparent Mode
  2. NAT Mode
  3. Routed Mode

Bridge / Transparent Mode,示意圖如下

( 內部網路 IP ) ---- ( L3 Switch or Router ) ---- ( 防火牆 ) ---- ( 封包 Source IP : 內部網路 IP ) ---- ( Internet )

這種運作模式是最簡單的,把防火牆放進去時不太需要去變動既有的網路設定,它所做的就是橋接二個不同的網路,也稱之為透通模式 ( Transparent )

而防火牆本身也只要設定一個 IP 就可以了,對防火牆來說,它只要做看封包再進而做阻擋或放行的工作就好,不做找路由這件工作

 

NAT Mode,示意圖如下

( 內部網路 Private IP ) ---- ( L3 Switch or Router ) ---- ( 防火牆 ) ---- ( 封包 Source IP : 防火牆代轉 Public IP ) ---- ( Internet )

NAT ( Network Address Translation ) 是大家常聽到的名詞,通常在網路 IP 不夠用的時候,內部的網路就會先使用虛擬 IP

當要連上 Internet 時,就透過防火牆代轉為外部 Public IP,也得負責找路由看下一站要往哪個節點扔

而防火牆本身需要二個 IP,一個介面的 IP 是對內,另一個介面就是對外 IP

 

Routed Mode示意圖如下

( 內部網路 Public IP ) ---- ( L3 Switch or Router ) ---- ( 防火牆 ) ---- ( 封包 Source IP :內部網路 Public IP ) ---- ( Internet )

其實跟 NAT Mode 很像,也很多人常分不清楚跟 NAT Mode 有什麼不同,其實還蠻簡單的

Route Mode 不會協助做 NAT 代轉的動作,等於說內部主機的封包經過防火牆出去時,封包還是保留原來內部主機的 Public IP,也得負責找路由看下一站要往哪個節點扔

而防火牆本身也是需要二個 IP,一個介面的 IP 是對內,另一個介面就是對外 IP

 

有些防火牆只會有 Transparent Mode 跟 NAT Mode,所以 Transparent Mode 一般來說也視為 Bridge Mode

而 NAT Mode 也視為 Routed Mode,但我覺得還是有些許差異啦,所以當防火牆只有 NAT Mode 時也可當作 Routed Mode 來用

可是如果同時有 NAT Mode 跟 Routed Mode 出現時,就得視您的網路狀態選擇適合的運作模式了

 

以上文章內的觀念若有錯誤還請多多指教 : )

Bojack 發表在 痞客邦 留言(0) 人氣()

無意間搜尋到的 UTM 產品,看了一些介紹,簡單來說部份功能都是免費的,如果要使用一些較進階的功能就要額外付費

可以參考下列這二個網站

Network01 - DIY打造超豪華UTM防火牆完全攻略

Mark IT Weblog - Untangle 試用 - Free Multi-function Gateway

Bojack 發表在 痞客邦 留言(0) 人氣()

先把架構圖放上來,今天的研究是沿續昨天的 VLAN 應用 :p

原本我在 HP 1810G-24 已經切好了 6 個 VLAN,Port 23-24 為 Trunk Port,設定帶 6 個 VLAN Tag

自己的筆電就視情況設定 IP 及接到所需 VLAN 的 Port 就可以用不同網段的 IP 了

不過實際上,我們可以在網卡上直接設定 VLAN ID,而所接的 Port 只要設定為 Trunk Mode,也就是所需 VLAN 的 Tag,這樣就可以不用拔線又可以使用不同網段的 IP

我的作業系統是 Windows Vista,安裝的網卡是 Realtek 8168,若原本的網卡不支援 VLAN 的設定,請先更新網卡的 Driver

請到 Realtek 下載相關驅動 以及等會要用到的程式 Windows Diagnostic Program

驅動可以從我的電腦 -> 右鍵 -> 管理 -> 電腦管理 -> 系統工具 -> 裝置管理員 -> 網路介面卡,找到網卡後按右鍵「更新驅動程式軟體」即可

另外也請安裝 Windows Diagnostic Program,安裝好之後應該會出現在右下方,啟動它點選你的網卡後

點選「虛擬區域網路」,按右邊的增加直接填入你的 VLAN ID 後,稍等一會兒後就會多出一張虛擬網卡了

最後只要填入該 VLAN 內可用的 IP 後就可以使用囉!

參考資料

不自量力的 Weithenn - Windows 7-Realtek 網卡支援 VLAN Tag

Bojack 發表在 痞客邦 留言(0) 人氣()

說來慚愧,一直以來學習東西總是用跳躍式的學習方式,往往都是倒過來學習

在一些基礎的理論上反而就沒有那麼清楚,特別是在網路管理這一塊

今天拿了一台 HP 1810G-24 的 L2 網管交換器來摸,配合機房那一端 2950G 設定 Trunk 讓多個 VLAN 可以在 1810G 運作

設定 VLAN 時碰到了一些關鍵字「802.1Q」、「Tag」及「Untagged」

實際上這些東西我在 D-Link DES 3526 已經摸過了,那時只是傻傻跟著文件操作打指令

對於 Tag 跟 Untagged 該設定在哪個介面是不會弄錯,但卻不懂其真正的原理

今天花了一點時間研究了相關文章,如果你對 VLAN 的封包交換原理有興趣的話,可以參考看看這些文章

維基百科 - IEEE 802.1Q

The Will Will Web - 釐清網管型 Switch 裡與 VLAN + Tag + Untag 之間的觀念

酷學園 - 請問VLAN的tagged&untagged觀念?

使用 3Com Switch 採 802.1Q 標準來設定 VLAN

臺中市光明國中 教務處 - CLI Switch Layer3 VLAN 設定

Bojack 發表在 痞客邦 留言(0) 人氣()

有要常常切換 IP 的人就會需要這東西

假設我的環境是這樣

網卡名稱:區域連線

IP:192.168.1.1

網路遮罩:255.255.255.0

Gateway:192.168.1.254

DNS:168.95.1.1 跟 168.95.192.1

把下面這四行複製起來貼到記事本後,副檔名存為 bat 就可以了

netsh interface ip set address "區域連線" static 192.168.1.1 255.255.255.0 192.168.1.254 1

netsh interface ip set dns "區域連線" static 168.95.1.1

netsh interface ip add dns name="區域連線" addr=168.95.192.1 index=2

pause

Bojack 發表在 痞客邦 留言(0) 人氣()

如果個人電腦或系統被塞了惡意程式該怎麼查出來呢?

在 Windows 可以用系統內建的 netstat 來簡單查看一下網路連接狀況

打開命令提示字元後輸入 netstat -anb 後就可以看到目前程式與網路連結的情況

參數說明如下

-a 顯示所有連線和聽候連接埠

-b 顯示涉及建立每個連線或聽候連接埠的執行檔。在某些情況下,已知執行檔可主控多個獨立元件,在這些情況下,便會顯示涉及建立連線或聽候連接埠的元件順序。

    如此,執行檔名稱位於底部的 [] 中,上方便是它呼叫的元件等,直到已達 TCP/IP。請注意,此選項相當耗時,而且如果您沒有足夠的權限,便會失敗。

-n 以數字格式顯示位址和連接埠號碼

如果有發現異常的程式後可以配合指令 dir /a/s 檔案名稱 找出來這個檔案的路徑在哪兒,再用清除程式刪除掉即可

若清不掉的話可以用 費爾強力木馬清除程式 或 unlocker  之類的程式即可

那 Unix-likes 系統可以用 top 這個指令,進入畫面後再按一個 a  就可以看到程序完整的執行路徑了,通常有被塞人家寫的惡意程式就很好找出來了

參考資料

Pank's Blog - 解決Windows開機後約20-30分鐘就不能上網

Bojack 發表在 痞客邦 留言(0) 人氣()


Bandwidthd 是個流量監控並可產出報表的系統,可針對 TCP/IP 的網段及個別 IP 的使用情況做分析

目前可以看到 HTTP, TCP, UDP, ICMP, VPN, and P2P 等細部情況,這是官方所提供的 Demo URL,可以先嚐鮮看看

Bandwidthd 可以在很多平台安裝,包含 Windows,不過建議的還是在 Unix 上安裝,所需的函式庫為 libpcap、libgl 和 libpng

這篇是簡單介紹一下怎麼在 FreeBSD 把它給架設起來

首先您至少要有一個 WebServer,可以直接裝 Apache 進來

# cd /usr/ports/www/apache22

# make install clean

裝好之後請在 /etc/rc.conf 加入一行 apache22_enable="YES"

接下來安裝 Bandwidthd,一樣也是透過 Ports 安裝

# cd /usr/ports/net-mgmt/bandwidthd

# make install clean

接下來開始設定 Bandwidthd,把預設的 Config copy 一份出來

# cd /usr/local/bandwidthd/etc

# cp bandwidthd.conf-dist bandwidthd.conf

接下來編輯它,原則上要改的東西很少

subnet 192.168.100.0/24  <- 要監控的網段

dev "em0"  <-  監聽的網卡

接下來將 Bandwidthd 的網址連結至網頁根目錄下

# cd /usr/local/www/apache22/data

# ln -s /usr/local/bandwidthd/htdocs/ bandwidthd

最後我們來啟動 Bandwidthd

# /usr/local/etc/rc.d/apache22 start

# cp /usr/local/etc/rc.d/bandwidthd.sh.sample /usr/local/etc/rc.d/bandwidthd.sh

# /usr/local/etc/rc.d/bandwidthd.sh start

等個幾分鐘後就可以來看 Bandwidthd 產生出來的報表了

http://Your_URL/bandwidthd/

補充說明,若想要看到公司或企業內所有網段的話,可以用 Port Mirror 的方式接到有裝架 Bandwidthd 的機器即可

Bojack 發表在 痞客邦 留言(0) 人氣()

今天找資料時看到的東西,記錄一下

WikiMedia - Smoothwall

Smoothwall is a Linux distribution designed to be used as an open source firewall. Designed for ease of use, Smoothwall is configured via a web-based GUI, and requires little or no knowledge of Linux to install or use.

Smoothwall is also a private software company based in the UK that develops firewall and web content filtering software, and which also maintains the SmoothWall open source project.

<- 官網在這兒,另外它還有企業版唷

Bojack 發表在 痞客邦 留言(0) 人氣()

海芋小站看到這篇Facebook Sidebar Chat Reversion~ 將Facebook聊天室改為舊版介面,Firefox、Chrome、Opera、Safari 通通可用!

實際在我的 Firefox 5 上試了一下,果然把舊的聊天室介面弄回來了

首先如果是 Firefox 的用戶要先安裝 GreaseMonkey 這個外掛,安裝好之後重開 Firefox,重開後就會在右上角看到一隻可愛的猴子臉

( 如果是 ChromeSafariOpera 這些用戶就不必安裝啦,直接往下做即可 )

接下來安裝 Facebook Sidebar Chat Reversion 這個腳本,在右上角按 install 即可

最後再開一個 Facebook 的網頁,舊的聊天室就回來了唷!

Bojack 發表在 痞客邦 留言(0) 人氣()

剛研究 PHP 跟 OpenLDAP 驗證的東西,建議是用 MD5 or SSHA 加密比較安全,這篇是在說明怎麼用 SSHA 來驗證

howforge.com - How to create and verify SSHA hash using PHP

There are so many hash. SHA1 is one of them which is widely used in recent years even though it is not safe to use right now. By the way, it is still the default hash function for storing password in LDAP especially OpenLDAP. In order to develop a website with LDAP authentication manually against POSIX account, SSHA hash function or SHA1 is the easiest solution.

function ssha_encode($text) {
  for ($i=1;$i<=10;$i++) {
    $salt .= substr('0123456789abcdef',rand(0,15),1);
  }
  $hash = "{SSHA}".base64_encode(pack("H*",sha1($text.$salt)).$salt);
  return $hash;
}
 
function ssha_check($text,$hash) {
  $ohash = base64_decode(substr($hash,6));
  $osalt = substr($ohash,20);
  $ohash = substr($ohash,0,20);
  $nhash = pack("H*",sha1($text.$osalt));
  return $ohash == $nhash;
}

$password = "test";
$hash = ssha_encode($password);
print "$hash\n";
print var_export(ssha_check($password,$hash),true);

Bojack 發表在 痞客邦 留言(0) 人氣()