目前日期文章:201108 (12)

瀏覽方式: 標題列表 簡短摘要

RRDtool 是原 MRTG 作者另外開發的套件,它可將系統吐出來的資料做 logging 並繪製成圖表

而系統所吐出來的資料是 based on SNMP ( Simple Network Management Protocol ),所以只要是支援 SNMP 的設備都可以用 RRDtool 來做記錄與分析

不過仔細看了一下 RRDtool 操作的語法算小複雜,因此本篇教學會再搭配 Cacti 來協助控制 RRDtool 繪製報表

我的安裝環境如下

[ 安裝所需套件 ]

首先我們先安裝 RRDtool

# cd /usr/ports/databases/rrdtool
# make install clean

接下來安裝 Net-SNMP,因為 Cacti 需利用 Net-SNMP 裡的 snmpwalk 和 snmpget 這二個指令進行資料採集,所以這個是必裝的

# cd /usr/ports/net-mgmt/net-snmp
# make install clean

最後安裝 Cacti

# cd /usr/ports/net-mgmt/cacti
# make install clean

上述三個套件安裝完之後,就可以開始來設定囉!

[ 設定 SNMP ]

首先先來設定 SNMP 的部份

# cd /usr/local/share/snmp
# vi snmpd.conf

snmpd.conf 內容如下

rocommunity MySNMP  // 設定 SNMP Read-Only 的 Community
syslocation MyOffice  // 系統所在地
syscontact bojack@gmail.com  // 管理者 E-mail

另外請在 /etc/rc.conf 加入一行 snmpd_enable="YES"

加好了之後就來啟動 SNMP 吧

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

[ 設定 Cacti ]

設定 Cacti 這部份看個人習慣,如果您已經有 phpMyAdmin 的話可以在裡面操作,或是透過指令方式來新建

原則上我們需要新建一個 Database、User 讓 Cacti 可以存放相關資料

指令操作如下,新增一個 Database 名稱為 cacti

# mysqladmin -u root -p create cacti
Enter password: 輸入 Root 的密碼

新增一個 User 名叫 cacti 讓它可以存取 cacti 這個 Database,密碼設定為 justforcacti

# mysql -u root -p
Enter password: 輸入 Root 的密碼
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.0.92-log FreeBSD port: mysql-server-5.0.92

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY 'justforcacti';
Query OK, 0 rows affected (0.02 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye

接下來我們要倒入 Database 相關的 Schema

# mysql -u cacti -p cacti < /usr/local/share/cacti/cacti.sql
Enter password: 以本教學為例輸入 justforcacti

Database 的 Schema 建好之後,接下來我們來去設定程式的部份

# cd /usr/local/share/cacti/include/
# vi config.php

config.php 內容如下,原則上要改的地方就只有 username 跟 password 而已

/* make sure these values refect your actual database/host/user/password */
$database_type = "mysql";
$database_default = "cacti";
$database_hostname = "localhost";
$database_username = "cacti";
$database_password = "justforcacti";
$database_port = "3306";

/* Default session name - Session name must contain alpha characters */
#$cacti_session_name = "Cacti";

接下來新增排程設定,固定每 5 分鐘讓 Cacti 去取得資料

# crontab -u cacti -e

加入這一行即可

*/5 * * * * /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1

接下來我們要在 Apache 裡面設定 Cacti 的路徑

# vi /usr/local/etc/apache22/httpd.conf

在 httpd.conf 加入下面這幾行

Alias /cacti "/usr/local/share/cacti/"
<Directory "/usr/local/share/cacti/">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
</Directory>

好了之後要重新啟動 Apache 讓它生效

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

[ 初始化 Cacti ]

網址列請打入 http://您的 IP or Domain/cacti,連結成功後第一次應該會有個初始化的動作,直接 Next

由於我們是新安裝,所以請選 New Install

這一頁原則上請確認相關會用到的程式都是 [OK: FILE FOUND] 的情況就可以按 FINISH 了

最後會到登入的頁面,預設的帳號密碼是 admin,密碼也是 admin

第一次登入時會強制要求改密碼

[ 新增一台監控設備 ]

來為我們的系統新增一台要監看的設備吧,我是選了一台 Cisco 6509 ~ 咱們家的 Core Router

選擇畫面中的 Create devices for network

點選上方 Device 右邊的 Add

這次是新增一台 Cisco Router 6509,依序填入相關的資訊

新增成功後系統就會透過 SNMP 相關指令去截取一些資訊回來,接下來我們點選右邊的 Create Graphs for this Host

要產生的圖片分二種,一種是系統已訂好的樣版,另一種是透過 SNMP 產生的資訊,我想先監看 6509 往防火牆的那個介面

因此選擇下方的 SNMP - Interface Statistics

勾選我想看的 GigabitEthernet Gi7/1  介面,右下角選 In/Out Bytes with Total Bandwidth 後按 Create

新增好之後點選左邊的 Graph Management 就可以看到我們剛才新增的圖表,可以點選進去修改一下

修改一下 Title 的部份為 Cisco 6509 往防火牆,好了之後按 Save

點選上面的 graphs 後可以看到總共有右邊三個類型可選,Tree View、List View及Preview View

點選左上方的圖進去後就可以看到 Cisco 6509 往防火牆的流量

這時應該會發現中文字怎麼都不見了吶!

這問題困擾了我一個下午,原則上解決的問題非常非常簡單,Cacti 或 RRDtool 什麼都不用改

就只是 FreeBSD 裡面沒有中文字型罷了,所以就去 Ports  裡面裝就解決了

# cd /usr/ports/chinese/font-std
# make install clean

至於 Cacti 還有一些外掛可以裝,就請自行連過去看看囉

參考資料

[1]  不自量力的 Weithenn - RRDTool-各項數據流量統計

http://pic.pimg.tw/bojack/1314597229-3861575183_m.png

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

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

  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 發表在 痞客邦 PIXNET 留言(0) 人氣()

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

可以參考下列這二個網站

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

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

bojack 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(0) 人氣()

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

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

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

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

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

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

bojack 發表在 痞客邦 PIXNET 留言(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 發表在 痞客邦 PIXNET 留言(0) 人氣()

單純做個筆記

// Connecting to LDAP
$ldaphost = "ldap://IP:389";
$ldapconn = ldap_connect($ldaphost) or die("Could not connect to $ldaphost");

//要新增的資料
$addperson["objectClass"][0] = "top";
$addperson["objectClass"][1] = "inetOrgPerson";
$addperson["objectClass"][2] = "person";
$addperson["objectClass"][3] = "qmailUser";
$addperson["mailMessageStore"] = "/var/qmail/maildirs/bojack";
$addperson["qmailDotMode"] = "both";
$addperson["sn"] = "Bojack";
//加密方式有 MD5 or SHA
//$newpassword = "{MD5}" . base64_encode(pack("H*",md5($password)));
$newpassword = "{SHA}".base64_encode(pack("H*",sha1($password)));
$addperson["userPassword"] = $newpassword;
$addperson["mailQuotaSize"] = "104857600";
$addperson["mail"] = "bojack@bojack.com";
$addperson["deliveryMode"] = "nolocal";
$addperson["uid"] = "bojack";
$addperson["accountStatus"] = "active";
$addperson["mailHost"] = "smtp.bojack.com";
$addperson["cn"] = "bojack";
$addperson["deliveryProgramPath"] = "/usr/bin/maildrop -w 95";
$addperson["qmailGID"] = "600";
$addperson["qmailUID"] = "600";
$addperson["mailReplyText"] = " ";

if($ldapconn) {
    ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
    ldap_bind($ldapconn,"cn=Manager,dc=bojack,dc=com","Password");
    ldap_add($ldapconn,"uid=bojack,ou=user,dc=bojack,dc=com",$addperson);
}

ldap_close($ldapconn);

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