網路開展事業或在網路創業賺錢的第一步:【架設24小時賺錢網站主機】比網頁設計更優先!

感謝您造訪 Linux主機伺服器架設技術基地。 你可進入替你架設主機.影片教你維護頁面,詳細瞭解Linux主機架設及相關技術維護影片教學(完整配套措施),有主機馬上可以架設網站營運,完全無限制!

租用不如自有主機!聰明的網站經營者都選擇架設Linux主機伺服器做為網站運作平台,因功能完整又強大,免費架站程式超多!完全沒有版權問題,超強『防駭客攻擊與入侵』及安全防護可以讓你無後顧之憂。

                    架設主機.影片教你維護: http://por.tw/linux/new-E_learning/index.php

Linux主機伺服器架設技術基地  維護團隊  敬上
瀏覽模式: 普通 | 列表
Linux主機防火牆規則(Linux主機伺服器架設技術)

Linux 安裝完畢,便已內建基本的防火牆規則,它是採 IPTABLES 來進行封包過濾的動作。
預設的規則列主要在防止外面主機連線至主機,被阻擋的服務有 FTP, SSH, Samba網芳等。


Linux主機防火牆基本原理:

設定檔

設定規則列位置及套用方式是 Linux 專用的方法,與其他 Debian OS 不同。

    * 使用工具: iptables
    * 規則列位置: /etc/rc.local
    * 修改後套用
      root@dns:~# service rc.local start
    * 註: rc.local 原本設計是為開機後要手動執行特定工作的設定區,Linux 把它借來放置防火牆規則列


Linux主機防火牆基本觀念:

    * IPTABLES = "/sbin/iptables"
      這一行是指:設定 IPTABLES 這個變數,以後只要看到 $IPTABLES 這個字串,就代表 /sbin/iptables 這個指令

    * $IPTABLES -F
      這一行是指:把之前所有已設過的規則清空(flush)


Linux主機防火牆封包進出主機方向:

在 /etc/rc.local 內之「設定 filter table 的預設政策」會看到三行設定值,如下:

###-----------------------------------------------------###
# 設定 filter table 的預設政策
###-----------------------------------------------------###
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT

筆者將其簡化說明如下:

    * INPUT   --> 外面要進入主機的網路封包,主要用於規範外面如何連線至主機上的各種服務,與 NAT 內網無關
    * OUTPUT  --> 從主機出去的網路封包。
    * FORWARD --> 從 B 網卡轉至 A 網卡,規範於有 NAT 主機或透通式防火牆用途時,內轉外網路封包之控管。
    * 依上例,預設所有的封包皆開放,不阻擋


INPUT規則列的寫法


規則列的寫法,是把預設政策擺在最下面一行,例外規則擺上面,如下所例

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP


上面的規則列可以用下面這張圖來表達,預設 22 埠是不被連線的,但有四個綠點例外。
Iptables sample.png



進階處理
取消某個通訊埠的阻擋


只要把所有該 port (--dport)的規則列前面加上 # 變成註解,或直接刪除即可,以 FTP 示例如下:

# 只有本主機所屬網段才能連到這台主機的 FTP SERVER port 21
# $IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 21 -j ACCEPT
# $IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 21 -j ACCEPT
# $IPTABLES -A INPUT -p tcp --dport 21 -j DROP

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP




新增例外連線範圍

若要新增例外連線點,一定要加在相同埠值區塊最後一行之前(建議第一行),假設我們要加中華電信某個網段 59.127.0.0/16 至 Port 22 的例外點上,做法如下:

    * 編輯 /etc/rc.local (紅字為新增部分)
      root@dns:~# vi /etc/rc.local

# 只有本主機所屬網段才能連到這台主機的 ssh port 22
$IPTABLES -A INPUT -p tcp -s 59.127.0.0/16 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 203.68.102.0/24 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 22 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 22 -j DROP


    * 套用新規則
      root@dns:~# service rc.local start



新增某個通訊埠連線限制
以 TCP 1723 為例

假設主機有架 VPN 服務,經由「netstat -nlp」查詢後得知其使用的埠值為 TCP 1723。因此,為避免不具善意的網客隨便亂測密碼,我們可以在 /etc/rc.loal加上其連線限制。

假設允許的網段為

   1. 校內: 163.26.182.0/24
   2. 校外某點: 220.130.230.76

    * 編輯 /etc/rc.local,在 IPv4 的設定區(就是 /sbin/ip6tables -F 之上),依 port 值排序,大約在網芳區塊後面加上。
      root@dns:~# vi /etc/rc.local(紅字為新增部分)

 ......

$IPTABLES -A INPUT -p tcp --dport 139 -j DROP
$IPTABLES -A INPUT -p tcp --dport 445 -j DROP
$IPTABLES -A INPUT -p udp --dport 137 -j DROP
$IPTABLES -A INPUT -p udp --dport 138 -j DROP

$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 220.130.230.76 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 1723 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 1723 -j DROP

/sbin/ip6tables -F
/sbin/ip6tables -A INPUT -p tcp --dport 21 -j DROP
/sbin/ip6tables -A INPUT -p tcp --dport 22 -j DROP
/sbin/ip6tables -A INPUT -p tcp --dport 23 -j DROP
 ......


    * 套用新規則列
      root@dns:~# service rc.local start



以 ICMP 為例

預設不讓外面網路任意點可以 PING 本主機,造就本主機不存在的假象,但選定數點開放偵測。假設允許的網段為

   1. 教網中心:163.26.200.0/24
   2. 校內: 163.26.182.0/24
   3. 校外某點: 220.130.230.76


    * 編輯 /etc/rc.local,在 IPv4 的設定區,Port 21 規則列上方。
      root@dns:~# vi /etc/rc.local(紅字為新增部分)

 ......


$IPTABLES -A INPUT -p icmp -s 163.26.182.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp -s 163.26.200.0/24 -j ACCEPT
$IPTABLES -A INPUT -p icmp -j DROP

# 只有本主機所屬網段才能連到這台主機的 FTP server port 21
$IPTABLES -A INPUT -p tcp -s 163.26.182.0/24 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp -s 127.0.0.1 --dport 21 -j ACCEPT
$IPTABLES -A INPUT -p tcp --dport 21 -j DROP
 ......


    * 套用新規則列
      root@dns:~# service rc.local start



防止 DoS 攻擊

筆者朋友主機最近遭到 DoS 攻擊,我本來以 iptables -m limit 來處理,但發現它會不分來源一律阻擋,這樣無辜的 IP Address 也受到限制,非常不公平,思考並搜尋了一個晚上,後來決定以限制單一 IP 同時連線數(connlimit),來處理此類攻擊,它會把單一 IP 來源同時要求服務(--syn)的連線數,限制在一定的數量以內,正常用人工手動點網頁,就算該網頁有 FrameSet ,應也不致於大過 12(自已用手拼命點得到的結論)才對。因此在設定此限制時,以每一個 IP 同時連線數不得超過 15 為參數,並進行後續的觀察。在設定後,經過一段時間的觀察,CPU 再也不會一直維持在 90-100% 高檔了,大約只會偶而跳至 60-70% ,一般皆在 10 % 以內。重點是它只 tcp-reset 有問題的來源,無辜的人仍可享受應有的速度。

設定方式:

    * 請確認 syslog 有下列參數
          o Linux 在 /etc/syslog.conf
          o Ubuntu 在 /etc/rsyslog.d/50-default.conf

# iptables 的記錄可以寫入 /var/log/kern.log
kern.*                          -/var/log/kern.log

    * 先把可能攻擊的 ip 寫入 /var/log/kern.log ,再把它的封包無聲的丟掉;以同時 15 個連線為限。

$IPTABLES -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j LOG --log-level 4
$IPTABLES -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 15 -j REJECT --reject-with tcp-reset

    * 分析攻擊可能來源
          o 螢幕觀看(以 tab 鍵分隔欄位)
            root@dns:~# cat /var/log/kern.log |awk '{print $1 " " $2 " " $9}'
          o 轉至純文字,以供下載至試算表統計
            root@dns:~# cat /var/log/kern.log |awk '{print $1 " " $2 " " $9}' > /root/dosatt.txt
            呈現的結果部分截取如下:

May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.251.81.94
May    10    SRC=60.250.181.66
May    10    SRC=60.250.181.66

    * 鎖了吧,可疑者!
      若某個 IP 來源您不認識,但每天常常超過,人工點網頁的極限(同時超過 15 個連線數),可以再加以下規則,把它鎖了吧!


$IPTABLES -A INPUT -i eth0 -p tcp -s 60.250.xxx.xx --dport 80 -j DROP

主機伺服器的平台(Linux 與 Windows)有什麼不一樣,該如何選擇?

其實討論的再多,了解的人都會知道,Linux的平台是比較受到歡迎而且市占率最高的一種系統平台。
因此總教頭的建議:如果您的網頁是用微軟的程式語言開發的網站,或是您必須使用微軟開發的資料庫服務(MS SQL),只能使用 Windows系統的平台的話,那您就無從選擇,您就使用 Windows+IIS的虛擬主機服務商吧,
否則建議使用 Linux的虛擬主機平台服務。

attachments/201304/2847872769.jpg

所有由 Linux系統建立起的主機平台,因為 Linux系統本身就是所謂的開放源碼,遵循的是開放源碼的公約,不論任何人使用都是免費的。
虛擬主機服務商如果使用這樣的系統平台,和 Windows NT或是 IIS是以註冊人數的多寡計費,相較起來對虛擬主機服務商所負擔的成本是天壤之別。
不僅如此,Apache網頁伺服器也是免費的,平台上使用的 Email系統(sendmail)本身免費的,FTP伺服器也是免費的,您會了解到 Linux平台的虛擬主機成本比 Windows平台的虛擬主機成本便宜非常多!

不僅如此,Linux最被人稱讚的地方是系統核心簡單而且速度快,並且是一個原本就為了架構於多 CPU運作而生成的系統。
在同樣的硬體條件之下,Linux被認為有更大更快的能力同時處理上千筆不同的需求。
也因為如此,許多免費而且功能強大的軟體也都只適用於 Linux系統。
相對於 Windows系統,Linux平台的虛擬主機可以使用的免費軟體和工具會比 Windows系統更來得多樣。

如果您的網站只是一般的靜態網頁,那總教頭建議使用 Linux系統。
如果您的網站使用 PHP,Perl,mySQL,總教頭建議使用 Linux系統。
如果您的網站使用 ASP,VBScript,MS-SQL,那總教頭建議改成別的程式語言,來用 Linux系統吧,如果不改,那就使用 Windows平台囉!

Linux Server主機與主機的移轉

Linux Server主機與主機的移轉

本文主要在介紹如何把 Linux 上的資料,含使用者帳號、網頁、資料庫移轉至另一台 Linux Server 上頭。
Linux主機的移轉要掌握以下幾點原則:
要注意原網頁應用軟體之安全性
有些舊的軟體,可能已有漏洞,不要再把舊的版本轉移過來。
在移轉資料的同時,必須要注意,該資料的檔案權限。不要在完成資料移轉之後,一般 user 都「看」不到,只剩 root 一個才看得到。
可在兩台 Linux 之間直接使用 gFtp 軟體,以 SFTP2 (SSH2) 協定、 Root 身份,直接把各種資料從舊機器傳送到新機器上。

attachments/201304/4644131352.jpg

Linux主機的MySQL資料庫移轉:
資料庫位置:/var/lib/mysql
/var/lib/mysql/mysql 及 /var/lib/mysql/test 不可搬動
除了上述這兩個資料夾不可搬動外,其餘在 /var/lib/mysql/ 底下的資料夾(資料庫),皆可以搬到新 Linux Server主機的 /var/lib/mysql 底下。
因為 /var/lib/mysql/mysql 是 MySQL 的系統資料庫,它記錄了許許多多 MySQL Server 的設定參數。而且,舊版的 MySQL 與新版的 MySQL ,系統資料庫會有欄位定義上的不同,若您把舊版系統資料庫,直接覆蓋到新版之上,可能會造成 MySQL 啟動失敗。
例外:若是新舊主機的 Linux/LinuxD Server 版本一致,理論上其 MySQL 版本應該也一致,就可以執行以下動作即可
直接把 /var/lib/mysql/ 底下所有資料夾複製到新主機上相同的位置上
不必再動 MySQL 使用者權限的部份
複製到新主機時,要記得把 /var/lib/mysql 底下所有的資料夾(資料庫)權限,改為 mysql.mysql
root@dns:~# chown -R mysql.mysql /var/lib/mysql/*
在 LinuxD 底下可以使用 filezilla 以 SFTP 的協定,直接用 Root 身份進行搬動
root@dns:~# apt-get install filezilla
檢查所有 PHP+MySQL程式碼(如 ANN 公告欄...etc),把所使用到的 MySQL 使用者帳號密碼,新增至新主機的 MySQL 內
使用 phpmyadmin,例: http://Your.ServerName/phpmyadmin
在首頁上點:「權限」 → 「新增使用者」 (新增 MySQL 的使用者)
你要儘快擁有『Linux主機』讓他營運起來幫你賺錢!

自己用體力與時間賺錢太辛苦啦!
每個人一天都是24小時,休息與睡覺就要八小時,更何況不可能一整年都不休假....
用『Linux主機』幫你24小時賺錢(一年365天無修→你要怎樣找到更勤勞的賺錢方式?)
再說,距離是一個難以解決的難題(唯有網路無距離,能把商品賣到任何國家)
就算自己沒有商品,掛Google或聯盟行銷的商品也能賺到佣金與獎金
管他是那裡的人,只要『訪客』有點擊你就能有收入

我時常在想,養一個兒子或女兒就有可以將來養你一輩子嗎?
不!女而會嫁出去,而兒子要養老婆、還要養孫子、還要買房子、買車子、替孫子繳學費......
這就是台語講的『世傳世』一代傳一代(物種繁衍的宿命)不能怪也不能奢望。

我寧願養一台『Linux主機』來當自己後半輩子的依靠。
不管你多老,只要你能打鍵盤,就能賺錢(還怕老了或病了就沒有收入?)

年輕時就投入經營網路,有一台機器幫你賺錢(你一定會比較輕鬆)
經過幾年後你會發現:你的網站累積多少文章、照片、影片(數位內容)
那些(數位內容)都是你的網路資源,你也會發現有多少商機是因為你有網路
所以人家找上你,機會找上你,財富找上你(除非你不去經營他)

attachments/201201/0950512516.jpg

我時常出國,跟我一起出國的朋友都羨慕我,因為不管出國多久,旅遊多少天(我都是:天天有收入)你選擇怎樣的賺錢方式,就決定你要過怎樣的生活!
因為我選擇『網路事業』,只要帶著筆電或平版電腦,走道那裡都能遙控我的事業。


『將軍』你是武藝高強?膽識過人?精通騎射?您生錯時代啦!
『戰馬』你是汗血寶馬?善奔能越?躍馬中原?此戰場沒有你的舞台!
開店因為房屋很貴買不起,所以先租(等賺錢一定買下來!)
網路開店,一台Linux主機才兩萬五千元,誰都買得起!
租虛擬主機繳年租金、限制空間大小、限制語法、限制流量......
如此綁手綁腳的經營網路事業,還能有何大作為?
您的客戶資料庫(哈哈!被人家看光光啦!)
租虛擬主機,無隱密可言(主機管理業者擁有最高權限)
租用者就像『裸體』展示於人家的目光下
『商業機密』一詞,跟你的距離是無限的遙遠!
------------------------------------------------------------
大家都知道網路創業的好處:
1.初期建置網站金額較低,甚至零成本。
2.初期人事、水電成本較低。
3.網路店面比較沒有曝光的地區限制(除非產品、物流、語言的限制)。
4.消費者可以在任何時間瀏覽與選購商品(24小時營業)。
5.初期可採用眾多的網路平台,免費宣傳、曝光方式,之後再採用付費的方式,提高效益。
6.即使沒有成功,成本損失也較低。


想要網路創業自動賺錢,你應該具備那些專業技能呢?

那座而言不如起而行,如何開始您的第一步行動呢?

1.先評估自己會什麼網路技能?不會那些網路技能?
將自己的優勢寫下來,也將自己需要進修的專業技能逐一記錄下來

2.找到您需要的課程(利用下班時間,努力精研)
最好是影片課程,不要只是一般書店的書籍或網路電子書
(因為圖片與文字根本學習效率不好,無法有效迅速學會,學習中有問題要問誰?)
實際網路經營時發生網站語法錯誤或網站被駭客入侵!
那您最好有個專業『會程式語言與架設主機』的老師可以免費技術諮詢
不然,一發生問題,您的網路事業就停擺了,網站一停就無收入!
(就好像上班放無薪假一樣....悽慘!)。
有甚至網站資料全毀,資料庫也出問題,你要在第一時間內就能快速修護!
這一點你可要小心!網路創業絕對要有:技術諮詢!
迅速回覆的專業老師(或專業技術顧問)。
不然,就像大海裡頭的孤鳥,叫天天不應,叫地地也不靈
(自己閉門造車摸索是網路創業者最悲慘的失敗原因!)。


attachments/201208/5398530876.jpg

2.你的網站要自己架設!
(請人設計網站費用貴,小則三四萬高者也有十幾萬元的,往後網站維護也不方便!)

這方面你可以學習:
1.網站架設與網頁設計教學
詳細介紹:
http://por.tw/Website_Design/E_learning/index.php
長期技術支援網站:
http://por.tw/Website_Design

2.購物網站架站教學
詳細介紹:
http://por.tw/sale/cmmerse-4-all/index.php
長期技術支援網站:
http://por.tw/sale

3.部落格架站、行銷、賺錢術教學
詳細介紹:
http://por.tw/blog/E_learning/index.php
長期技術支援網站:
http://por.tw/blog

4.PHP+MySQL+PHPMaker+Dreamweaver整合教學
(PHPMaker運用設計網站教學)

詳細介紹:
http://por.tw/php/new-E_learning/index.php
長期技術支援網站:
http://por.tw/php

5.Flash-動畫製作教學
詳細介紹:
http://por.tw/flash/new-E_learning/index.php
長期技術支援網站:
http://por.tw/flash
-------------------------------------------------------------------------
3.網站圖片非常重要,你如果不會拍照與修圖,那您就要學習:
商業商品攝影教學
詳細介紹:
http://por.tw/design/photographing_Course/index.php
長期技術支援網站:
http://por.tw/design
-------------------------------------------------------------------------
4.影片能讓您的網站更出色,如果您不會錄影
或影片剪接、編輯、上字幕、做特效,那您就要學習:

【錄影影片製作】技術教學
詳細介紹:
http://por.tw/photo-video/video_Course/index.php
長期技術支援網站:
http://por.tw/photo-video
-------------------------------------------------------------------------
5.有了網站,接下來就是『如何將網站經營的有聲有色?』
這就需要專業的網路行銷技術:
A.搜尋引擎排名SEO教學
詳細介紹:
http://por.tw/seo/new-seo/index.php
長期技術支援網站:
http://por.tw/seo

B.EDM電子報製作教學
詳細介紹:
http://por.tw/edm/edm_Marketing/index.php
長期技術支援網站:
http://por.tw/edm

C.電子書製作賺錢密技教學
詳細介紹:
http://por.tw/ebook/new-ebook/index.php
長期技術支援網站:
http://por.tw/ebook

D.【訂單王】超級網路秒殺成交法-A-page 【一頁定江山】行銷賺錢術
詳細介紹:
http://por.tw/page/new-E_learning/index.php
長期技術支援網站:
http://por.tw/page
-------------------------------------------------------------------------
6.如果您想要學習『專案方式』的專業技能,您可以學習:
A.「網路創業賺錢_如何從網路創業賺錢賺到第一個100萬!」課程
詳細介紹:
http://por.tw/soho/new-E_learning/index.php
長期技術支援網站:
http://por.tw/soho

B.藉助『程式』邁向網路自動賺錢術(Auto Rich -自富課程)
詳細介紹:
http://por.tw/Rich/new-E_learning/index.php
長期技術支援網站:
http://por.tw/Rich

C.【正印家族】授權營運專案‧自動印鈔機賺錢術
詳細介紹:
http://por.tw/money/new-E_learning/index.php
長期技術支援網站:
http://por.tw/money
-------------------------------------------------------------------------
7.您的網站可以用兩種方式經營
1.是租用虛擬主機
(創業初期,如果尚無長遠規劃可租虛擬主機空間架設網站)

2.是自己擁有獨立主機!
如果您有此長遠的規劃,那您可以申購此服務:
替你架設Linux主機伺服器+影片教你維護(還有遠端技術協助)讓你自己當家作主!
http://por.tw/linux/new-E_learning/index.php
長期技術支援網站:
http://por.tw/linux
-------------------------------------------------------------------------
8.此外,如果你對國外軟體感覺不好用,那您可以學習:
軟體中文化實戰教學影片
軟體中文化實戰教學影片教學詳細介紹:
http://por.tw/f2blog/new-E_learning/index.php
長期技術支援網站:
http://por.tw/f2blog

不論是英文、日文、大陸簡體或其他軟體,能透過軟體中文化技術變成:繁體中文版
那在網路事業的經營上,所有要用到的軟體,就能通通變成:繁體中文版啦!
那是業經營起來當然是:得心應手!手到擒來!

-------------------------------------------------------------------------

DNS雙向解析服務(Linux主機伺服器架設技術)Domain Name Server

本文並不在介紹從無到有寫出 dns 完整的設定檔,主要還是先利用 Linux/Linux Server 提供的工具,產生基本設定檔,再進一步解釋其中涵義,以及如何修改新增/修改主機名稱對映。

DNS開啟Port

    * TCP anynet 53
    * UDP anynet 53
    * TCP localhost 953 (管理指令用)

全球DNS管理

DNS是 Domain Name Server 的簡稱,它的功能在於把 IP(v4 and v6) 位址與英文網址建立起對照表,以提供雙向解析的服務。
在 InterNet 上,所有的 DNS Server 是以階層的方式,層層授權,層層管理。例如:「edu.tw」是教育部電算中心的網域,電算中心會為其架 DNS Server,管理所有的學術網路。
由此,教育部的 DNS Server 授權縣教育網路中心的 DNS Server 自行管理【tnc.edu.tw】的網域。
最後再由 dns.tnc.edu.tw 授權各校的 DNS Server 自行管理學校網域。更詳細的資料,請參考上面所列兩篇文章。

 Domain Name 皆是由 dns.tnc.edu.tw (163.26.200.1) 授權出去的【網域】,所以務必要建置 DNS Server 啟用該網域。
至於特定用途的網站,才由 dns.tnc.edu.tw 指定網址。如:《 xoops.tnc.edu.tw 》、《 x.tnc.edu.tw 》、《 freesf.tnc.edu.tw 》等,皆在 163.26.200.1 中直接指定網址。

安裝與初步設定
DNS 查詢指令簡介
Client DNS 查詢過程

在介紹查詢指令前,我們要先了解什麼是 DNS Cache,而它又和 Client 的 DNS 有關,因此本文在此做一簡單說明。
Client 端的 IP查詢過程

別台 DNS Server 會 cache 學校 dns 記錄,因此 dns server 若做任何變動,Client 電腦並不會立即知道(被 cache 騙了)。
因此,若有變更 dns 記錄,除了要修改 serial 外,想查詢是否設定成功,只得對自己查,這也是為何 dig 指令後面必須加上 @163.26.xxx.xxx 參數的原因。

在 Linux 上常用的 DNS 查詢指令

    * nslookup dc1es.tnc.edu.tw
      直接查詢 dc1es.tnc.edu.tw 的 IP 位址
    * dig dc1es.tnc.edu.tw
      查詢 dc1es.tnc.edu.tw 網域狀況,詢問的對象視 /etc/resolv.conf 內 nameserver 的設定值而異
    * dig @163.26.200.1 dc1es.tnc.edu.tw
      向 163.26.200.1 查詢 dc1es.tnc.edu.tw 網域狀況
    * dig @163.26.200.1 dns.dc1es.tnc.edu.tw AAAA
      向 163.26.200.1 查詢 dns.dc1es.tnc.edu.tw 的 IPv6 網址
    * dig -x 163.26.182.1
      查詢 163.26.182.1 的反解記錄
    * dig @163.26.200.1 -x 163.26.182.1
      向 163.26.200.1 查詢 163.26.182.1 的反解記錄
    * dig @163.26.200.1 -x 2001:288:75a6::1
      向 163.26.200.1 查詢 IPv6 2001:288:75a6::1 的反解記錄
    * dig @163.26.182.1 dc1es.tnc.edu.tw MX
      向 163.26.182.1 查詢收件人為 xxx@dc1es.tnc.edu.tw 的信件會轉送至何處
    * dig @163.26.182.1 dns.dc1es.tnc.edu.tw MX
      向 163.26.182.1 查詢收件人為 xxx@dns.dc1es.tnc.edu.tw 的信件會轉送至何處
    * dig @168.95.1.1 yahoo.com NS
      向 168.95.1.1(中華電信 DNS Server) 查詢 yahoo.com 網域是由那些 Name Server 來服務



DNS Server套件

Linux/Linux Server 已預設裝妥 Bind9 這一套 DNS Server 套件及其設定工具 ols3dns ,使用其產生器,所製造出的設定檔結構解釋如下:

    * 設定檔位置在 /etc/bind/ 底下


    * 無限制遞迴查詢(預設值)
          主控檔: named.conf
            其功能在於指定各網域(Zones)的設定檔名稱暨位置,以下各設定檔是以 ols3dns 產生器為例來進行說明,實務上,檔名只要在 named.conf 定義清楚即可,不一定要遵循下面的範例

rndc.key     

遠端控制(Remote Name Daemon Control)金鑰

RNDC詳解: http://dns-learning.twnic.net.tw/bind/security.html#two
named.ca     最頂層 dns server 定義,在 named.conf 設定時必須使用 type hint 來指定
db.xxxx.tnc.edu.tw     IPv4/IPv6共用正解檔
db.163.26.xxx     IPv4反解檔
2001.288.75xx.rev     IPv6反解檔
localhost     IPv4/IPv6 localhost 正解檔
rev-127.0.0     IPv4 localhost 反解檔
rev.local6     IPv6 localhost 反解檔


    * 限制遞迴查詢設定檔結構
          主控檔: named.conf + auth_zones.conf
            named.conf 主內容在限制遞迴查詢,而可查詢的網域改放在 auth_zones.conf
          其他檔案與上面一致


    * port 值: TCP/UDP 53 ; localhost: 953
    * 手動啟動 | 停止 DNS 服務: /etc/init.d/bind9 start | stop | restart


設定檔內關鍵用語解說

筆者整理了 Bind9 各設定檔常出現的關鍵用語如下,請參考:
$TTL 86400     對方主機查詢完畢,其值要保留(快取)的秒數,例:86400秒
$ORIGIN     宣告本設定檔所列之所有記錄出自於那個網域,最後必須以「.」做結尾,否則會自動再加上網域名稱
$ORIGIN subnet     授權自己的子網域給另一台 DNS Server
@     代表「Zone」

以 db.xxx.tnc.edu.tw 設定檔為例,【@】指的是 xxx.tnc.edu.tw。
以 localhost 設定檔為例,【@】指的是 localhost
IN SOA     開始授權(Star of Authority),後面接了兩個參數是指「本 zone 的管理主機名」及「本 zone 的管理者」
IN NS     負責的 Name Server 主機名稱為何?
IN A     為主機名稱賦予 IPv4 位址
IN AAAA     為主機名稱賦予 IPv6 位址
IN CNAME --> 別名     例: www,ftp,s1...皆是 dns 的分身
IN PTR --> 反解     某 IP 所代表的主機名稱
IN MX -->Mail eXchange     轉信,例:
    mail.tw IN MX 0 spamgw.tw
    mail.tw IN MX 10 mail.tw

說明如下:

   1. 把【xxx@mail.tw】信件先轉給【spamgw.tw】(註: 有兩筆 MX 記錄時,數值低的有較高的優先權)
   2. 【spamgw.tw】收了信之後(並處理之),發現原來指定收信人是在【mail.tw】,因此再把它轉回給【mail.tw】
   3. 如果 spamgw 故障,理論上會送至第二優先 mail.tw(它自己),但依游戲規則,就算是 mail.tw 它自己,它還是會去問 dns.tw ,信件 xxx@mail.tw 的 MX 為何?結果 dns.tw 說,要優先送 spamgw.tw。簡言之,設了 MX 之後,最優先的那台主機一定不可以故障,否則會收不到信件

    * 注意:mail 與 dns 同位址時,不可以採用 CNAME 的設法,一定要用 IN A,才可正常收發信件

限制遞迴查詢 vs 不限制

限制遞迴查詢的意思是,本 DNS Server 只回答所轄網域的問題,其餘不答。不限制的話,就沒有上述限制。例如:當一台 client 向 DNS Server(163.26.182.1)詢問 tw.yahoo.com 時,若有做限制,那麼它不會回答,因為 tw.yahoo.com 不歸 dc1es.tnc.edu.tw 所管。反之,若不做任何限制,它會依其根設定檔(named.ca)一層層往上問,幫 client 找到 tw.yahoo.com 的 IP Address 並回覆之。

可是,貴校可能已設妥限制,而且學校的電腦也都以本校的 DNS Server 為查詢主機,為何還是可以查得到 tw.yahoo.com ?那是因為在 named.conf 內的:「acl allow_clients { 127.0.0.1; 163.26.182.0/24; 2001:288:75a6::/48; };」設定中有說明,要開放給校內的機器查詢。

限制遞迴查詢雖然會造成一些不方便,但它會有較高的安全性,尤其是對 ARP 類病毒偽造網址攻擊,有較高的防禦能力。不過未來若 IPv6 only 實施(沒有 ARP 機制,改用 fe80:...機制),其實限制遞迴查詢,就比較沒有存在意義(目前是 IPv4 與 IPv6並存)。


Linux Server初步設定方法

有兩個方式來設定 DNS 參數

   1. 在設定管理密碼(Linux-setup)時勾選【這台主機要擔任 DNS Server 嗎 ?】,就會在 /etc/bind/ 底下產生不限遞迴查詢的相關設定檔
      注意:本方式僅適用於裝完 Linux Server,第一次登入時。因為 Linux-setup 本身會改變很多設定值(不只 dns),若機器已順利運作多時,勿用。
   2. 直接在終端機介面下指令

   1. 不限遞迴查詢: root@dns~# ols3dns
   2. 限制遞迴查詢: root@dns~# ols3dns --no-recursive
   3. 以大成國小為例
      #-----------------------------------------------------#

      # 臥龍小三 工 具 箱 (1.0.7Linux) Copyright 2006 OLS3  #
      # DNS 自動產生器 1.0.7Linux for Linux          #
      # All rights Reserved.                #
      #-----------------------------------------------------#

      請輸入網域名稱? 例如: jmjh.tnc.edu.tw
      dc1es.tnc.edu.tw
      請輸入IP前三個數字? 例如: 163.26.167
      163.26.182
      請輸入第一台主機的第四個IP?
      例如: 163.26.167.1 的 1
      1
      您要架設第二部 DNS 嗎?(Y/N)
      N

      Done!


Linux初步設定方法

與 Linux Server 一樣,有兩個方式來產生基本的 DNS 設定檔

   1. 在設定管理密碼(Linux-csetup-utf8/Linux-csetup)時,在最後一個問題【這台主機要擔任 DNS Server 嗎 ?】回答「Y」,就會在 /etc/bind/ 底下產生不限遞迴查詢的相關設定檔。
      注意:本方式僅適用於裝完 Linux Server,第一次登入時。因為 Linux-setup 本身會改變許多設定值,若機器已順利運作多時勿用。
   2. 先把終端機的字元編碼改為 Big5 ,再下指令

   1. 不限遞迴查詢: root@dns~# ols3dns
   2. 限制遞迴查詢: root@dns~# ols3dns --no-recursive
   3. 設定過程與上例一樣,請參考上面文件



進階設定
IPv4 的正反解
新增一筆IPv4位址正解

要新增一筆正解記錄只要在正解檔「 /etc/bind/db.xxx.tnc.edu.tw 」內,加上一筆 IN A 的記錄,再把 serial n加1,並重新啟動 DNS Server 即可。 下文,筆者以新增 spamfilter.dc1es.tnc.edu.tw 網址,指向 163.26.182.250 IPv4 位址為例進行解說。

   1. 編輯 /etc/bind/db.xxx.tnc.edu.tw

      $TTL 86400
      @  IN  SOA dns.dc1es.tnc.edu.tw. admin.dns.dc1es.tnc.edu.tw. (
                 2006030801 ; 這個數字是序號(serial no.) , 每修改一次就要加 1 號
                 86400 ; refresh
                 1800 ; retry
                 1728000 ; expire
                 1200 ; Negative Caching
                 )
         IN   NS dns.dc1es.tnc.edu.tw.
      dns IN A 163.26.182.1
      @ IN MX 0 mail.dc1es.tnc.edu.tw.
      ;網域名稱 dc1es.tnc.edu.tw 也要賦予一組 IPv4 位址
      dc1es.tnc.edu.tw. IN A 163.26.182.1
      ;
      s1     IN   CNAME dns.dc1es.tnc.edu.tw.
      www    IN   CNAME dns.dc1es.tnc.edu.tw.
      ftp    IN   CNAME dns.dc1es.tnc.edu.tw.
      proxy  IN   CNAME dns.dc1es.tnc.edu.tw.
      ;
      mail  IN  A  163.26.182.1
      s2    IN  A  163.26.182.2
      nt    IN  A  163.26.182.3
      s4    IN  A  163.26.182.4
      s5    IN  A  163.26.182.5
      nat   IN  A  163.26.182.234
      ;為 spamfilter 加上 IN A 的記錄
      spamfilter IN A 163.26.182.250  
      註1:正反解設定檔是用「;」來標示註解文字,不是「#」,請勿用錯
      註2:每一行都要靠左,除非本行是上一行的附屬設定

   2. 重新啟動 bind9
      root@dns:~# service bind9 restart
   3. 檢查重新啟動的訊息是否正常
      root@dns:~# tail -50 /var/log/syslog



IPv4反解問題


IPv4正解,可以由上層 DNS Server 授權某任一 IPv4 位址來擔任 DNS 工作,不受 IPv4 網段影響。但反解就不行,因為它受到「至少要一個完整 C Class 網段」的限制。因此,所有分配到 163.26.xxx.1 的學校,可以幫其他前三個數字一致的機器做反解,但 163.26.xxx.129 就不行。這也是為什麼,我們可以向中華電信申請 dns 名稱正解管理權,但反解就不行,只能靠它幫忙代管的原因。

基於上述原因,若貴校有非反解不可的原因,又不在 163.26.xxx.0 網段上,可以連絡教網中心主任協助處理。至於 IPv6 的部分,因為所配發網段皆是完整的 prefix 48 ,所以不會有此一困擾。不過如果貴校如果剛好就分配到 163.26.xxx.0 網段,則可以經由編輯 /etc/bind/db.163.26.xxx 來新增一筆 IPv4 反解記錄。
$TTL 86400

@   IN   SOA   dns.dc1es.tnc.edu.tw.   admin.dns.dc1es.tnc.edu.tw. (
      2000082620  ; serial 要加 1
      86400  ; refresh
      1800  ; retry
      1728000  ; expire
      1200  ; Negative Caching
      )
      IN   NS   dns.dc1es.tnc.edu.tw.

1     IN   PTR   dns.dc1es.tnc.edu.tw.
2     IN   PTR   s2.dc1es.tnc.edu.tw.
3     IN   PTR   nt.dc1es.tnc.edu.tw.
4     IN   PTR   s4.dc1es.tnc.edu.tw.
5     IN   PTR   s5.dc1es.tnc.edu.tw.
234   IN   PTR   nat.dc1es.tnc.edu.tw.
250   IN   PTR   spamfilter.dc1es.tnc.edu.tw.


手動增加 IPv6 的正反解
沒限制遞迴查詢(預設)
修改 named.conf

把紅字的部分, 加至 /etc/bind/named.conf
options {

     directory "/etc/bind";
     allow-transfer {
        163.26.182.2; // Secondary DNS
     };
     listen-on-v6 { any; };
};

logging {
     category lame-servers{null;};
};

zone "." {
     type hint;
     file "named.ca";
};

zone "localhost" {
     type master;
     file "localhost";
};

zone "0.0.127.in-addr.arpa" {
     type master;
     file "rev-127.0.0";
};

zone "dc1es.tnc.edu.tw" {
     type master;
     file "/etc/bind/db.dc1es.tnc.edu.tw";
};

zone "182.26.163.in-addr.arpa" {
     type master;
     file "db.163.26.182";
};

// ::1 的反解檔
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."{
     type master;
     file "rev.local6";
};

// 2001.288.750b 的反解檔
zone "6.a.5.7.8.8.2.0.1.0.0.2.ip6.arpa." {
     type master;
     file "2001.288.75a6.rev";
};


繼續修改 db.xxx.tnc.edu.tw

$TTL 86400
@  IN  SOA dns.dc1es.tnc.edu.tw. admin.dns.dc1es.tnc.edu.tw. (
           2006030802 ; serial 要加 1
           86400 ; refresh
           1800 ; retry
           1728000 ; expire
           1200 ; Negative Caching
           )
   IN   NS dns.dc1es.tnc.edu.tw.
dns  IN  A    163.26.182.1
     IN  AAAA 2001:288:75a6::1
;上面 IN AAAA 前面一定要留空白, 代表是要繼續設 dns 主機的 AAAA(IPv6) 記錄
;
@ IN MX 0 mail.dc1es.tnc.edu.tw.
;
dc1es.tnc.edu.tw. IN A 163.26.182.1
      IN  AAAA  2001:288:75a6::1
;上面兩行指「網域名稱 dc1es.tnc.edu.tw 也賦予一組 IPv4 及 IPv6 位址」
;
s1     IN CNAME dns.dc1es.tnc.edu.tw.
www    IN CNAME dns.dc1es.tnc.edu.tw.
ftp    IN CNAME dns.dc1es.tnc.edu.tw.
proxy  IN CNAME dns.dc1es.tnc.edu.tw.
;
mail   IN  A     163.26.182.1
       IN  AAAA  2001:288:75a6::1
s2     IN  A     163.26.182.2
nt     IN  A     163.26.182.3
s4     IN  A     163.26.182.4
s5     IN  A     163.26.182.5
nat    IN A  163.26.182.234
       IN AAAA  2001:288:75a6::234  
spamfilter IN A  163.26.182.250  
;經過修改 spamfilter.dc1es.tnc.edu.tw 便會有 IPv4 及 IPv6 兩筆記錄


修改 localhost 新增 ::1 正解

$TTL 86400
@    IN   SOA    dns.dc1es.tnc.edu.tw.    admin.dns.dc1es.tnc.edu.tw. (
      2000082620 ; serial 要加 1
      86400 ; refresh
      1800 ; retry
      1728000 ; expire
      1200 ; Negative Caching
      )
     IN   NS   dns.dc1es.tnc.edu.tw.
;
localhost. IN  A    127.0.0.1
           IN  AAAA  ::1

    * 註:紅字為修改之處



建立 ::1 及 2001.288.75xx.rev 反解檔

    * 建立 ::1 IPv6 的 localhost 反解
      root@dns~# vi /etc/bind/rev.local6

$TTL 86400
@ IN  SOA  dns.dc1es.tnc.edu.tw. admin.dns.dc1es.tnc.edu.tw. (1 15m 5m 30d 1h)
    IN   NS  dns.dc1es.tnc.edu.tw.

; (1 15m 5m 30d 1h) 中的 1 是序號, 每次修改都要加 1

;;

1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa. IN PTR localhost.

註:除了 IN NS 這一行為 SOA 這一行的附屬參數,所以左側留有空白外,其餘各行前面不可留空白

    * 建立 IPv6 反解檔
      root@dns~# vi /etc/bind/2001.288.75a6.rev

$TTL 86400
$ORIGIN 6.a.5.7.8.8.2.0.1.0.0.2.ip6.arpa.
@  IN   SOA dns.dc1es.tnc.edu.tw. admin.dns.dc1es.tnc.edu.tw. (1 15m 5m 30d 1h)
   IN   NS   dns.dc1es.tnc.edu.tw.
;;
1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0  IN  PTR  dns.dc1es.tnc.edu.tw.
234.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0  IN  PTR  nat.dc1es.tnc.edu.tw.

限制遞迴查詢

只需修改下面這兩個設定檔,其餘設定值與不限遞迴查詢一致
修改 named.conf

options {
     directory "/etc/bind";
     allow-transfer {
        163.26.182.2;
     };
     listen-on-v6 { any; }; //要加上這一行
};


logging {
     category lame-servers{null;};
};

// 把學校 IPv6 網段加入可允許查詢區,例:新增 2001:288:75a6::/48;
acl allow_clients { 127.0.0.1; 163.26.182.0/24; 2001:288:75a6::/48; };

// 在 acl 中的 IP 允許的操作
view "recursive" {
     match-clients { allow_clients; };
     recursion yes;
     include "auth_zones.conf";
};

// 未在 acl 中的 IP 拒絕使用遞迴式查詢
view "external" {
     match-clients { any; };
     recursion no;
     include "auth_zones.conf";
};


修改 auth_zones.conf

zone "." {
     type hint;
     file "named.ca";
};

zone "localhost" {
     type master;
     file "localhost";
};

zone "0.0.127.in-addr.arpa" {
     type master;
     file "rev-127.0.0";
};

zone "dc1es.tnc.edu.tw" {
     type master;
     file "/etc/bind/db.dc1es.tnc.edu.tw";
};

zone "182.26.163.in-addr.arpa" {
     type master;
     file "db.163.26.182";
};

// 新增 ::1 的反解檔
zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."{
     type master;
     file "rev.local6";
};

// 新增 2001.288.75a6 的反解檔
zone "6.a.5.7.8.8.2.0.1.0.0.2.ip6.arpa." {
     type master;
     file "2001.288.75a6.rev";
};
修改 db.xxx.tnc.edu.tw 正解檔

 與不限遞迴查詢做法相同,請參考前文

建立 ::1 及 2001.288.75xx.rev 反解檔

 與不限遞迴查詢做法相同,請參考前文

解決安裝完 Linux 後修改各伺服器設定檔困擾的好工具:YHTools

YHTools工具集是為解決安裝完 Linux 之後,還要花長時間去修改各伺服器設定檔的困擾而出現。
所提供的功能,請見下方工具的簡介文。
工具的開發軟體有二,一是 python3.x 開發(副檔名為 pyw),需要圖形化介面暨 UTF-8 中文顯示的能力,因此請在具有 python3 環境下的 linux 套件執行。
另一種是 BASH ,副檔名為 .sh 可直接在終端機畫面執行。


版權暨免責聲明

    * 本工具以 GPL v2 授權方式給大家使用
    * 開發本工具的兩種程式皆是具純文字檔兼可執行的 SCRIPT ,因此下載後便可瀏覽/修改原始碼,您可自行修改成符合您自己需求的狀態再使用。
    * 無論 BASH 或是 Python3 對筆者而言都是初學的程式語言,因此程式碼不儘完善,無法保證任何執行結果。


使用前注意

    * 底下各工具使用說明均極簡化,請各位一定要配合本站各伺服套件相關文件說明來使用
    * 基本上 YHTools 就只是把文件上要各位輸入的設定檔「快速製造」出來,以省去您打字的時間而已。


改版說明

    * 2011-05-09 改版:fw4local.pyw 單機防火牆規則列勾選防禦 SSH Port 卻變成 FTP Port 之錯誤修定
    * 2011-05-10 改版
          o 新增 yhtools/chmodadv.sh 程式,使 chmod 777|755 時會自動判斷資料夾(777|755)或檔案(666|644)
          o 修改 homechown.sh 為不必先複製到 /home 底下也可以執行
    * 2011-05-11 小改 yhtools/chmodadv.sh 的提示字元
    * 2011-05-12 修改
          o yhtools/fw4nat.pyw 裡面有註解「#」符號之前誤 key 成全形字元
          o yhtools/dhcpconf.pyw 修改成產生 dhcpd.conf 及 isc-dhcp-server 分別準備要放至 /etc/dhcp 及 /etc/default
            這是 debian squeeze 及 ubuntu 11.04 版本,最新的做法,之前使用 ubuntu 10.10 沒注意到,現在修改。

工具使用系統要求

   1. Debian Squeeze 或 Ubuntu 10.10 以上並必須安裝 X-Window 視窗
   2. python3.1.x, python3-tk(8.5以上)
          * apt-get update
          * apt-get install python3 python3-tk



工具下載

    * 下載
          o root@dns:~# wget http://myip.tw/download/yhtools.tar.gz
    * 解壓
          o root@dns:~# tar xzvf yhtools.tar.gz
    * 使用
      執行每個工具前,在輸入程式名稱前一定要加「./」,例:
          o root@dns:~# cd yhtools
          o root@dns:~/yhtoosl# ./dnsconf.pyw




工具集程式列表

.
|-- chmodadv.sh
|-- dhcpconf
|   |-- dhcp3-server
|   |-- dhcpconf.pyw
|   `-- dhcpd.conf
|-- dnsconf
|-- dnsconf.pyw
|-- dnsconf.sample
|   |-- db.0
|   |-- db.127
|   |-- db.255
|   |-- db.local
|   |-- db.root
|   |-- named.conf
|   |-- named.conf.default-zones
|   `-- named.conf.options
|-- firewall
|   |-- fw4br.pyw
|   |-- fw4local.pyw
|   |-- fw4nat.pyw
|   |-- fwtc4_l7filter.sh
|   `-- fwtc.sh
|-- homechown.sh
|-- maccount
|   |-- maccount.sh
|   |-- passwd.txt
|   `-- readme.txt
|-- pubfolder.sh
|-- README.TXT
|-- rsync
|   |-- rsync_c.pyw
|   `-- rsync_s.pyw
`-- test.py




各工具簡介
chmodadv.sh

    * 使用時機:修改檔案權限
      有時我們從網路下載,並用圖形化工具解壓縮出資料夾檔案權限為 700 ,但我們需要的卻是 777|755 (例:xoops 目錄要755才可被安裝)。可利用本工具把 700 的權限連同子目錄改成 777|755 ,而且它不限幾層子目錄,也具自動判斷功能,會把資料夾設為 777|755,檔案設為 666|644。
    * 注意事項:若資料夾內含可執行權的檔案,也會一律被改成 644
    * 使用方式:chmodadv.sh 777|755 資料夾名稱
          o 可複製到 /usr/local/bin 以方便執行
            root@dns:~# cp yhtools/chmodadv.sh /usr/local/bin
          o 例一:root@dns:~/下載/xoops-2.5.0# chmodadv.sh 755 htdocs
          o 例二:root@dns:~/下載/xoops-2.5.0/htdocs# chmodadv.sh 777 uploads


dhcpconf.pyw

    * 使用時機:快速產生 DHCP3 Server 所需的設定檔,/etc/default/dhcp3-server 及 dhcpd.conf
    * 注意事項:各版本的 dhcp3 主設定放置地點不一定一樣,可能在 /etc/dhcp3 ,也可能在 /etc/dhcp
    * 使用方式:
          o 執行本工具
            root@dns:~/yhtools/dhcpconf# ./dhcpconf.pyw
          o 把產出的 dhcp3-server 及 dhcpd.conf 複製到各自的位置


dnsconf.pyw

    * 參考文件:http://myip.tw/itsmw/index.php/DNS
    * dnsconf.pyw 為使用 python3 撰寫之圖形化 dns server 設定檔產生器
          o 網域名稱與 IPv4 位址為必填項目
          o 有 IPv6 者,請填 IPv6 網段及末碼 IP 值,例:2001:288:75a6 及 19 程式會自己組合成 2001:288:75a6::19 參數。


    * OB2D sqz 使用者,一定要把視窗介面安裝起來
    * 若已使用過 OB2D sqz 內建的 DNS 產生器(曾勾選這台要擔任DNS伺器),那麼:
         1. 把 ./yhtools/dnsconf.sample/ 底下所有檔案先複製到 /etc/bind 底下
         2. 執行 dnsconf.pyw後,再把產生在 ./yhtools/dnsconf 底下的另一批設定檔,也複製到 /etc/bind 去。
    * 非 OB2D sqz 或新安裝 OB2D sqz 但未勾選過要「擔任DNS伺服器」時
          o 只要把執行 ./yhtools/dnsconf.pyw 產生在 ./yhtools/dnsconf/ 底下的設定檔複製到 /etc/bind 底下即可。


fwtc.sh

    * 參考文件: http://myip.tw/itsmw/index.php/Link_Control
    * 程式 yhtools/firewall/fwtc.sh 為在 NAT 或 Bridge Route 防火牆下協助做流量管制的工具。
    * 使用方式:請先直接編輯 fwtc.sh 內的設定值再啟用
          o 啟動: ./firewall/fwtc.sh start
          o 中止: ./firewall/fwtc.sh stop
          o 顯示: ./firewall/fwtc.sh show


fw4local.pyw

    * 參考文件: http://myip.tw/itsmw/index.php/OB2D_Iptables
    * 程式: yhtools/firewall/fw4local.pyw 本機防火牆規則列設定
    * 使用:
          o cd firewall
          o ./fw4local.pyw 填入各參數,點「確定」產生 ./rc.local
          o 按「Escape」離開本工具
          o 檢視內容若沒問題,覆蓋 /etc/rc.local 即可
          o 套用新規則列: service rc.local start


fw4br.pyw

參考文件:http://myip.tw/itsmw/index.php/OB2D_Firewall

    * 程式: yhtools/firewall/fw4br.pyw 透通式防火牆設定工具
    * 說明:
          o 請先確認 /etc/network/interfaces 內容只剩 lo 的設定,詳見 http://myip.tw/itsmw 文件
          o cd ./yhtools/firewall
          o ./fw4br.pyw
          o 同前所述,依您需求填求,並點「確定」產生 rc.local
          o 按「Escape」離開本工具
          o 檢視內容若沒問題,覆蓋 /etc/rc.local 即可
          o 套用新規則列: service rc.local start


fw4nat.pyw

    * 參考文件: http://myip.tw/itsmw/index.php/OB2D_NAT
    * 程式: yhtools/firewall/fw4nat.pyw 建立虛擬 IP 網段設定工具
    * 說明:
          o 請先確認已設妥 eth0 及 eh1 網卡一為公用 IP 一為私有 IP,詳見 http://myip.tw/itsmw 文件
          o cd ./yhtools/firewall
          o ./fw4nat.pyw
          o 同前所述,依您需求填求,並點「確定」產生 rc.local
          o 按「Escape」離開本工具
          o 檢視內容若沒問題,覆蓋 /etc/rc.local 即可
          o 套用新規則列: service rc.local start


homechown.sh

homechown.sh 快速恢復 /home 底下各家目錄為原使用者。

    * 程式: yhtools/homechown.sh
    * 參考文件:http://myip.tw/itsmw/index.php/LinuxDataTrans ,文件內第 4.3 節
    * 要求:各家目錄的使用者必須先建立完畢
    * 使用:直接執行 homechown.sh,若沒任何訊息,代表成功執行
          o root@dns:~/yhtools# ./homechown.sh


maccount.sh

工具:maccount.sh 是以 BASH 寫成的大量建帳號工具,支援 samba 同步及 MySQL 同名資料庫建立。程式與使用方式,請切換至 yhtools/maccount 底下,詳讀 yhtools/maccount/readme.txt 裡面的說明。

    * 程式: yhtools/maccount/maccount.sh
    * 說明文件: yhtools/maccount/readme.txt ;請務必先讀本說明再使用


pubfolder.sh

pubfolder.sh 是 bash 寫成的共用資料夾設定工具,它為協助使用者建立 ftp 共用資料夾專用的小程式由於 vsftpd 基於安全性,會設定使用者登入後不得切換至其他資料夾(chroot_local_user=YES) ,因此,每個使用者都只能登入自己的資料夾,此時,若要建立起的一個共用資料夾供所有使用者皆可讀寫,那麼就可以採用本方案。
註:本方案,會把所輸入的「共用資料夾」建在 /home/ftp 底下

    * 程式: yhtools/pubfolder.sh
    * 參考文件:http://myip.tw/itsmw/index.php/Ob2d_Vsftp
    * 使用方法:
          o 共用時:pufolder.sh -m 共用資料夾名稱
          o 解除共用: pubfolder.sh -u 共用資料夾名稱
          o 下次開機也能自動掛載時,請在 rc.local 的底下, exit 0 之上,加上 「pubfolder.sh -m 共用資料夾名稱」


rsync_s.pyw

    * 功能:建立 rsync server 快速產生器
    * 參考文件: http://myip.tw/itsmw/index.php/RSync
    * 程式: yhtools/rsync/rsync_s.pyw
    * 說明:
          o 請先手動修改 /etc/default/rsync 裡面的 ENABLE 為 true
          o 再執行本工具
          o 它將會產生 /etc/rsyncd.conf 及 /etc/rsyncd.secrets 設定檔
          o 執行完本工具,仍得手動啟動 service rsync start


rsync_c.pyw

    * 功能: 建立 rsync client 快速產生器
    * 參考文件: http://myip.tw/itsmw/index.php/RSync
    * 程式: yhtools/rsync/rysnc_c.pyw
    * 說明:
          o 它會產生 /root/rsncbk.sh 及 /root/rsyncd.secrets 設定檔
          o 它會為 root 加定時排程,請以 root 身份 crontab -e 修改成自已偏好的備份時間

本文引用來至:http://myip.tw/itsmw/index.php/YHTools

Linux新手要瞭解的十個知識

使用Linux新手要瞭解的十個知識

1.Linux是大小寫敏感的系統,舉個例子,Mozilla, MOZILLA, mOzilla和 mozilla是四個不同的指令(但是只有第四個mozilla是真正有效的指令)。還有,my_filE, my_file,和 my_FILE是三個不同的檔案。使用者的登入名和秘密也是大小寫敏感的(這是因為UNIX系統和C語系的傳統一向是大小寫敏感所致)。

2.檔名最多可以有256個字元,可以包括數字,點號」.」,下劃線」_」,橫桿」-」,加上其他一些不被建議使用的字元。

3.檔名前面帶」.」的檔案在輸入」ls」或是」dir」 指令時一般不顯示。可以把這些檔案看作是隱含檔案,當然你也可以使用指令」ls –a」來顯示這些檔案。

4.「/」對等於DOS下的」」(根目錄,意味著所有其他目錄的父目錄,或是是在目錄之間和目錄和檔案之間的一個間隔符號)。舉個例子,cd /usr/doc。

5.在Linux系統下,所有的目錄顯示在單一目錄樹下(有別於DOS系統的磁碟機標識)。這意味著所有的物理裝置上的所有檔案和目錄都合併在單一的目錄樹下。

attachments/201304/3471401327.jpg

6.在配置檔裡,以#打頭的行是注解行。在修改配置檔的時候盡量不要刪除舊的設定--可以把原來的設定加上」#」變成注解行,總是在修改地方對應地加入一些關於修改的注解,你會發覺在以後的管理中獲益多多。

7.Linux是繼承性的多使用者操作系統。你的個人設定(和其他使用者的個人設定)放在你的主目錄下(一般是/home/your_user_login_name)。許多的配置檔的檔名都以」.」開頭,這樣使用者一般看不到這些檔案。

8.整個系統範圍的設定一般放在目錄/etc下。

9.和其他的多使用者操作系統類似,在Linux下,檔案和目錄有自己的擁有者和訪問權限。一般來說,你只被容許檔案到你的主目錄下(/home/your_user_login_name)。學習一些關於檔案權限管理的關聯知識,否則你肯定會覺得Linux實在很麻煩。

10.指令參數選項一般由」-」引導,後面跟一個字元(或是」--「,當選項超過一個字元時)。這樣,」-」有點像DOS下的」/」。舉個例子,輸入指令 rm --help。

網路技術概論(Linux主機伺服器架設技術)

網路技術概論(Linux主機伺服器架設技術)

網路的基本理論,提供給學員網管人員參考。希望對網管在網路故障偵錯、伺服安裝與設定等能有一定的幫助。

網路(NetWork)是利用傳輸線(或無線電波),把四散的電腦連結起來,使彼此的資料可以互通。
在早期,台灣網路尚未十分發達之前,電腦與電腦之間如果要交換文件,大多是靠磁碟片來做為媒介。
只是有時資料量太大,多張碟片就會變成一種麻煩。因此在當時,會利用電腦列表埠,以 LL3 線材連結,再塔配特定軟體,把兩台電串接起來,以方便交換檔案。
網路,就有點像是這個樣子,但更加的複雜化。

到了現代,大多數人對網路的印象就是上網(surf the internet),因為在網路的世界,可以玩游戲、看新聞、購物...等。
在這樣的概念之下,我們可以發現有兩個主體觀念出現:一是網站服務主機 (Server),如 tw.yahoo.com,它可以提供新聞、購物、拍賣、字典...等眾多服務,等客人上門。
另一個是:客戶端電腦(Client),它只負責讓使用者在網址列上輸入網址,按個「Enter」,便把對方的網頁秀在螢幕上。
而這兩者之間地理上的距離,可以是近在咫尺,也可能是遠在天邊。
為達成此目的,在此簡要介紹。

網際網路InterNet

我們知道,網路叫「Net」,以學員而例,整個電腦用網路線接起來,便會形成「網際網路」。
依此理論,兩所學員互連,便是「校園網路」與「校園網路」之間互連。
而英文字:「inter-net」便是代表了這個狀況:「網路與網路之間」互連,簡言之,InterNet 就是全世界串在一起的網路系統,讓我們可以在學員連到自己學員的官方網站,也可以連到美國 amazon 買書,或是大陸淘寶網購物。

網路基本概念
OSI 七層次架構與 TCP/IP 四層次架構

    OSI 七層
    TCP / IP 四層
    簡要說明
Layer 7
    應用層
    
應用層
 
功能:應用程式,如 IE, Firefox, FTP...等
相關設備:電腦、網路電話、入侵防禦系統(IPS)等
Layer 6
    表達層
Layer 5
    對談層
Layer 4
    傳送層
    TCP / UDP
    

功能:控制資料傳輸之正確性;為應用程式開設服務窗口(Port)
TCP:強調資料正確;多用於 HTTP, FTP等注重資料完整性的網路服務
UPD:強調資料傳送順暢;多用於多媒體資料或網路電話語音傳送
相關設備:防火牆等
Layer 3
    網路層
    IPv4 / ICMP / ARP
IPv6 / NDP(芳鄰探索協定)     

功能:定義網際網路位址(v4/v6);網卡 MAC 位址之對映
相關設備:路由器或 L3 Switch
Layer 2
    資料連接層
    Host-to-Network
MAC
    

功能:實際負責網路封包的傳送與接收之硬體設備
每張網卡皆會有一組全球唯一值的 MAC 位址
相關設備:有線/無網網卡、集線器
Layer 1
    實體層
網路的相連,中間隔了很多各種不同的設備。要讓它們之間能互通有無,就必須遵循相同的語言(通訊協定),否則你講你的,他講他的,誰也上不了網。基於這個構想,國際標準組織(ISO)就制定一組開放系統互連(OSI)參考模型。TCP/IP 網路架構也是基於這個理念所發展而成,而且,它在美國強力的推廣之下,已然取得全球的認可,成為全球互連的主要標準。以下,把上面兩篇引薦文繁雜的內容,整理簡化成以下幾個重點:
Socket

   1. Server 應用程式啟動後,必先建立網路 Socket ,而這個 Socket 包含了 IP 位址及監聽 Port Number(1-1024)
   2. Client 應用程式啟動並開始連線時,同樣會建妥 Socket,只是 client 的 Port Number 介於 1024 -65535
   3. Client 連線至 Server 時,便形成 Socket pair,進行連線並傳輸資料

Soket Pair

Client應用程式
例:Firefox
    →     

Server 應用程式
例:Apache2+PHP

來源 IP Address
例: 163.26.182.99
    

目的 IP Address
例: 163.26.200.3

來源 Port
例:port 6524
    

目的地 Port
例: 80


資料傳送

    * Server 端會先把所有等待傳輸的資料切割打包(建立封包),再分批送至 client 端。 而且它並不是乖乖的把所有封包依順序走同一條路(路由)到目的地,而是由路由器挑出所有可能的較短路徑,分批送出。到了目的地之後,再組合回來。
    * 每個封包(Packet),皆分成 header 及 data 兩大部分,其中 header 便記載來源 IP,目的地 IP,以及通訊協定等資料
    * 封包送至 Client 時,要先判斷目的地的 IP Address 是否處在同一網段
          o 同網段 → 找到對方的網卡,把封包送出去
                + IPv4:透過 ARP 查詢,找到該網卡之 MAC Address ,經由集線器傳送封包
                + IPv6:透過 NDP(Neighbor Discovery Protocol)之 neighbor solicitataion message 暨 neighbor advertisement message,找到目的地 MAC 位置後,把封包送至對方主機
          o 不相同 → 把封包交給路由器處理
                + IPv4:由 ARP 查詢,找到路由器的 MAC Address,直接交給路由器,路由器再根據目的地 IP Address 送至對方主機
                + IPv6:由 NDP 的 Router solicitation message 暨 Router advertisement message,找到路由器 MAC 位址,再交由其處理傳送

    * 判斷是否相同網段的方法,請見下一段文件「IPv4網段分割」之簡要說明
    * 關於 IPv6 的芳鄰探索協定(Neighbor Discovery Protocol; NDP),可參考下列文件
          o http://140.116.82.34/dclin/technique_paper/IPv6/neighbor_discovery.htm
          o http://technet.microsoft.com/en-us/library/cc781068%28WS.10%29.aspx
          o http://www.cu.ipv6tf.org/literatura/chap6.pdf
          o http://www.cu.ipv6tf.org/literatura/chap4.pdf

以IPv4為例細說不同網段兩台電腦交換資料的過程

本文是承接上面資料傳送部分,進一步以圖片來加強說明。文章是以 IPv4 作為說明的主軸,與 IPv6 的差異點僅在尋找 MAC Address 的過程不同(IPv4→ARP; IPv6→NDP),其餘的部分是一樣的。

甲主機有資料要送到乙主機,資料封包會由應用層到資料鏈結層,層層加上 Header,其中比較重要的是:

    * 從應用層傳到網路層時:加上來源 IP 及目的地 IP
    * 往下送至資料鏈結層時:加上乙主機的 MAC Address
      因甲主機依其網路設定值,在判讀乙主機的 IP Adress 後知道,他們同處一個網段,因此直接加上乙主機的 MAC Address
    * 最後封包由實體層送至 Switch Hub


當封包送到 Switch Hub 時,Switch Hub 經判讀封包的 Hearder 得知目的 MAC Address,便直接把封包丟給乙主機,完成傳送。乙主機接收封包之後,會從最下層,層層分解封包,分述如下:

    * 上傳到網路層 (IP 層):解析出來源 IP Address
    * 再往上到傳輸層 (TCP .or. UDP)時:解析出 port 值,依其值轉給適當之應用程式
    * 到最上方的三層(process/application)時:由網路應用程式接收來自甲主機的資料


網內與網外節點如何溝通

甲主機有資料要送到另一網段的乙主機,其傳送過程如下:

    * 資料封包下到網路層時:加上來源 IP 及目的地 IP
    * 再往下到資料鍵結層時:加上 Router 1 的 MAC Address
      因為甲主機分析後發現:乙主機與他並不在同一網段,所以他會把目的地的 MAC Address 設成 Gateway MAC Address,也就是《Router 1》,至於 Router 1 要如何建立路徑通往 Router 2 ,就不是甲主機的事情了。
    * 送到 Router 1 的資料鍵結層時:Router 1 會把目的地的 MAC Address 改成 Router 2 ,並經由路由表判定,送至 Router 2
    * 當資料封包送至 Router 2 時:Router 2 會根據網段內的 IP ←→ MAC 對照表(ARP 表),把資料封包送至乙主機
      如果,Router 2 在 ARP 表找不到乙主機的 IP Address 與 MAC 對照時,會在網段內進行 ARP 廣播,向各節點詢問:【請擁有此 IP Address 的主機把 MAC Address 交出來】,乙主機接受到此訊息,便會對 Router 2 做 ARP 回應。得到乙主機 MAC Address 的 Router 2,便直接把封包傳給了它。
    * 得到來自甲主機封包的乙主機,其處理程序與上例一致

attachments/201304/4503634531.gif


IP 基本概念

IP 位址的英文為 Ineternet Protocol Address,它是各網路設備上的一組全球唯一識別碼,也可以說是「網路地址」,有了這個地址,電腦與電腦之間的資料才可以正確的被傳送。此時,有人也許會有一些疑慮? 「MAC 位址不也是全球唯一值,為何不使用它來擔任地址的工作?」。原因為: MAC Address 的編碼原則為【廠商識別】+【流水號】,因此只能從它了解其出廠別,無法知其所在的網段所在(地理位置)。因此,必須建立「網路地址」的機制,並依網段來區辨不同的使用團體(Network),進而找到使用者所在(IP Address)。目前,全球通用的 IP Address 版本有二:第四版(IPv4)及第六版(IPv6),而第四版已廣為全球共用,第六版目前仍待推廣。以下筆者針對這兩種版本,做一簡單的描述:
IPv4及IPv6位址表示法


IPv4 概念

IPv4 的網路位址是由四個中進位數字加三個點組成,例: 【163.26.200.1】。可是每一組數字,只允許從 0 到 255 之間,共28 個數字。也就是說,它是由四組 (0 到 28-1)數值所組合而成的符號,代表著某一特定網路地點。依此觀念可知,全球可用的網路節點數是 256 x 256 x 256 x 256 = 232 個節點。

IPv6 概念

第六版的 IP 位址表示法,稱之為 IPv6 。它改用 8 組,每組 4 個 16 進位值來表示,詳見上圖。依此其理論可用範圍為:

  0000:0000:0000:0000:0000:0000:0000:0000 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

高達 2128 個節點,這麼多點,就算扣除一些保留用途的特殊範圍(FF0x, FE8x...)外,比起 IPv4 來,仍是巨量,依此便可解決 IPv4 的不足。


IPv4 網段分割

雖然目前全球通用的 IP 定址法版本有二,而且它們無論在「定址大小」、「虛擬IP」、「尋找 MAC」...等功能、做法有所不同,但網段分割這部分的原理相同,因此,筆者直接以 IPv4 為例,來解釋網段之分割原理。


無論是 IPv4 或 IPv6 ,它們可都是必須擔當起全球所有上網設備間的互連,在這麼龐大的網路節點上,設備間要能跨縣、跨國交換資料,就要有一套管理方式才可以,也就所謂的分段措施。他們把全部的 IP 切成一段段來分配。而且,每分割完一個網段,其第一個 IP 及最後一個 IP ,皆不可以使用。第一個 IP 稱之為【網段代表號】;最後一個 IP 是【廣播】。例如: 163.26.200.0 - 163.26.200.255 這個 C Class 的網段的 ".0" 及 ".255" 皆是不可運用的 IP。


TCP/IP 的分段是一種階層式定址法,也就是每一個 IP Address皆包含了兩種意義:一是網路位址,另一是主機位址。以 163.26.182.34 為例,其中 【163.26.182】這三組數字是該網段的網路位址,【.34】則是主機位址。判斷是否同段的運算法則為【遮罩】法,什麼是遮罩呢?就是用〔 IP 〕去和〔遮罩〕的二進位碼做 AND 邏輯運算,若兩組不同 IP 和某一遮罩 AND 邏輯運算完,得到相同的值,就代表他們處再同一段網段內。說明如下:


網路遮罩 NetMask
AND 運算

二進位的 AND 邏輯運算是說: 只有《1+1》才等於 1 ;其他相加皆是 0。亦即, 《1+0》《0+1》《0+0》皆等於 0。


舉列如下

請問以下兩組 IPv4 Addres,那一組的兩個 IP 是位於同一網段內? 它們的 NetMask 皆是 255.255.255.128

    IP1: 163.26.108.130  → 10100011.00011010.01101100.10000010
    IP2: 163.26.108.201  → 10100011.00011010.01101100.11001001
Netmask: 255.255.255.128 → 11111111.11111111.11111111.10000000

    IP3: 163.26.100.130  → 10100011.00011010.01100100.10000010
    IP4: 163.26.108.36   → 10100011.00011010.01101100.00100100
Netmask: 255.255.255.128 → 11111111.11111111.11111111.10000000


第一組:
    IP1: 163.26.108.130     IP2: 163.26.108.201
AND
運算     10100011.00011010.01101100.10000010
+ 11111111.11111111.11111111.10000000
--------------------------------------
10100011.00011010.01101100.10000000     10100011.00011010.01101100.11001001
+ 11111111.11111111.11111111.10000000
--------------------------------------
10100011.00011010.01101100.10000000
結果     163.26.108.128     163.26.108.128


第二組:
    IP3: 163.26.108.130     IP4: 163.26.108.36
AND
運算     10100011.00011010.01101100.10000010
+ 11111111.11111111.11111111.10000000
--------------------------------------
10100011.00011010.01101100.10000000     10100011.00011010.01101100.00100100
+ 11111111.11111111.11111111.10000000
--------------------------------------
10100011.00011010.01101100.00000000
結果     163.26.108.128     163.26.108.0


由以上 AND 運算結果得知,第一組得到同一個答案,但第二組則否。因此可說,只有第一組的兩個 IP Address 是位在同網段內。而且,而這個所算出的答案就是「網段代表號」,也就是前文所說的第一個不能動的 IP Address。


IPv4 網路分段原則

IPv4 的網段,會有所謂 A Class、B Class 及 C Class 等說法,至於,我們所說的 A class , B class, C class 到底是什麼意思呢?它可以是兩種意義:

(一). 國際網路組織分配 IP 網段給各國各組織,所制定的遊戲規則。如下表:

    * A Class : 0 - 127.xxx.xxx.xxx 的 IP (0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx),皆是以一個 A Class 的量分配出去。
    * B Class : 128- 191.xxx.xxx.xxx 的 IP(10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxx),分配時,是切成 B Class 的量分配出去。
    * C Class: 192 - 223.xxx.xxx.xxx 的 IP(110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxx),分配時,是切成 C Class 的量分配出去。
    * 224.xxx.xxx.xxx 的 IP 保留其他用途

(二). 另一意義是:它是一種計量單位

    * 一個 A Class 的量: A.0.0.0 -- A.255.255.255 共 256 x 256 x 256 = 16, 777,216 個 IP。
    * 一個 B Class 的量: A.A.0.0 -- A.A.255.255 共 256 x 256 = 65,536 個 IP。
    * 一個 C Class 的量: A.A.A.0 -- A.A.A.255 共 256 個 IP。



如何判定遮罩

在前文,筆者是給 IPv4 Address 及 Netmask,再去判斷這些 IP Address 是否位處同一網段。現在,如果只給一個 IPv4 Address 及其網段大小,那麼,要如何計算出遮罩的數字? 請見下文分解。


以一個 C Class 為例

我們以 163.26.200.0 一個 C Class 為例,它的範圍是: 163.26.200.0 -- 163.26.200.255 。轉成二進位值如下:
10100011.00011010.11001000.00000000


10100011.00011010.11001000.11111111



建立遮罩的原則是:

    * 【網路位址:不會變的部份,如 163.26.200:底下的遮罩值皆填 《1》】
    * 【主機位址:會變的部份,如最後的 0 - 255:底下的遮罩值皆填《0》】。


依此原則:

    * 遮罩二進位值: 11111111.11111111.11111111.00000000 (前面不變的填 1,會變動的部分填 0 )
    * 遮罩十進位值: 255.255.255.0
    * 由二進位值計算,共得到 24 個 《1》,所以本網段也寫成 163.26.200.0/24
    * 值「24」在 IPv6 叫做 prefix 24,它代表子網路的大小


以半個 C Class 為例

我們以 163.26.108.128 開始之後半段 C Class 網段為例,它的範圍是: 163.26.108.128 -- 163.26.108.255,轉成二進位值如下:
10100011.00011010.01101100.10000000


10100011.00011010.01101100.11111111

依上面的原則:

    * 遮罩二進位值:11111111.11111111.11111111.10000000
    * 遮罩十進位值:255.255.255.128
    * 由二進位值計算,共得 25 個《1》,所以本網段也可以記成 163.26.108.128/25


給某個網址及遮罩,請找出其網段代表號及廣播位置

實務上,若只給您一個 IP 值,再告訴您網路遮罩,您要如何算出此網段之代表號及廣播,並以另一型式寫出該網段。
範例: 163.26.119.131 / 255.255.255.192

10100011.00011010.01110111.10000011/11111111.11111111.11111111.11000000

    * 分析一:前面共有 26 個數字不能變化
    * 分析二:所以 10100011. 00011010. 01110111. 10 (163.26.119.128 是不會變化的)
    * 分析三,最小值(代表號)便是: 10100011. 00011010. 01110111. 10000000 (163.26.119.128)
    * 分析四,最大值(廣播)便是: 10100011. 00011010. 01110111. 10111111 (163.26.119.191)
    * 因此,網段另一種寫法是: 163.26.119.128/26


作業: 163.26.62.90 / 255.255.255.192

    * 提示:請自行把上述兩個值轉成二進位值,再進行分析,便可得解。




網路設備如何配置 IP
IPv4 分配原則

網路設備介接至學術網路時,皆會得到一個網段,可能是 1 個 C Class,也可能是半個或 1/4 個 C Class,而網段內某些 IP 是有固定用途的,解說如下:

    * Network:第一個 IP 是網段代表號
    * DNS Server:第二個 IP 給 DNS Server 使用
    * 防火牆: 倒數第三個 IP
    * L3 Switch (路由器):倒數第二個 IP
    * 廣播:最後一個 IP

IPv6 分配原則

    * IPv6 各校配發查詢 http://voip.tnc.edu.tw/ngn/ipv6-iplist.pdf
    * DNS1 Server:2001:288:75xx::1
    * DNS2 Server:2001:288:75xx::2 (非必要)
    * L3 Switch (路由器): 2001:288:75xx::ff

IPv6 文件

相信在看完 IPv4 的相關觀念後,再來理解 IPv6 便不會太大困難。而關於 IPv6 的解說,下面這篇文章已著墨甚多,請大家參閱。

    * IPv6 參考文件: http://ipv6.tnc.edu.tw/ipv6

網路硬體

在講完軟體的通訊協定暨其簡易的運作原理後,再來要談談實現這些運作的硬體設備有那些,並簡單交代一下其歷史,以方便讀者了解一些名稱之命名由來。
各種網路拓樸

網路拓樸可以是兩種意義:

   1. 依理論上電子訊號在設備間交換所走的路徑及其原理而定
   2. 依實際上網路設備安裝位置及佈線型式來看

目前,在各大市面上所販賣的設備,無論是有線或無線,幾乎都是採用乙太網路 (ethernet)之通訊協定(802.3)產品,而這也是各國中小學所採用的硬體設備。所以在下文,筆者只針對乙太網路做詳細的介紹。其餘,請自行參考相書籍。



乙太網路(ethernet)簡介
資料傳遞原理

乙太網路訊號傳送的拓樸是採用【匯流排式(BUS)+廣播】式,也就是,大家都是必須經由同一條公共走道送出訊息。而且,甲電腦要送資料給乙電腦時,是由甲把資料經由匯流排( BUS)廣播到所有節點。每個節點接到封包後,發現不是他的,便直接丟棄。只有乙電腦拆封後,看一下收件人是自己,才會把它接收起來。

因為此一特性,所以在 BUS 上,一次只允許一台傳送資料,若兩台同時傳送,就會發生碰撞(Collision)。為了解決此問題,它採用了載波感應多重存取/碰撞偵測 (Carrier Sense Multiple Access / Collision Detection; CSMA/CD) 基頻技術。也就是說,一台設備要送訊號之前,要先聽一下(listen),道路是否正在使用中,若沒人用,才送出資料。若有人用,就再等。但即使如此,仍可能因兩台同時偵測到沒人用,同時送出封包而發生碰撞。一碰撞,此節點會立即發出擁塞(jam)訊息到 BUS 上。此一 BUS 上的設備接到 jam 訊息後,便會中止動作,進入等待狀態,過一段時間,才又隨機啟動傾聽/傳送的動作。

搭配早期的乙太網路設備圖 (請參考下圖),就很容易理解上述的原理。依圖示,我們發現電腦間利用 RG58 線材(類似電視第四台的訊號線),所建構成的 BUS 來溝通訊息。
Net rg58.png

橋接器 bridge

若同一條 BUS 的節點數太多台,導致碰撞的機率大增。網路會因為 jam 太多而緩慢不堪。因此,就產生了《橋接器》設備,來切割碰撞區域,如下圖所示。橋接器的兩側,皆是單獨的碰撞區域。A區的甲工作站要送資料給B區的戊工作站時。甲在A區先做廣播的動作,橋接器接收了此封包,經拆封後,發現收件人的 MAC 位置是在B區,它就會在B區再廣播一次。自然,戊工作站也就可以收得到。

問題來了:【橋接器怎麼會知道收件人的 MAC 位置在那一區?】。這是因為橋接器會為 A 及 B 區建立 MAC Address 清單。

交換式集線器 (L2 Switch Hub)

講到這裡,諸位有沒有發現:【為什麼我們學員都沒上述的設備?】。這是因為,上述網路設備皆是古董級的東西了。從現在起,我們要開始講目前各校會使用到的設備,首先,從交換式集線器 (Switch Hub)講起,它與 Bridge 一樣,是屬於第二層的設備,只看得懂 MAC 。

從橋接器的分區模型中,來思考一下:【如果買多一點橋接器,每台電腦皆有其專屬的橋接器,那不就不必擔心碰撞的問題了,不是嗎?】。亦即,每個分區只放一台電腦,資料封包自然也就碰不著了。實現這個理想的產品就叫《交換式集線器》,Switch Hub 每個 port ,都是一個橋接器,而且只連接一台設備。在其內部會動態記錄每個節點的 MAC Address,當有兩個節點間要傳送資料封包時,Switch Hub 便會依各自的 MAC Address 建立起兩者之間的專屬連線,資料一旦傳送完畢,立即切斷。由以上可知,集線器是在 OSI 七層次架構的第二層(資料連接層)運作,因此一般的集線器最前面會加個「L2」字樣,代表它只能根據 MAC Address 傳送封包。至於封包內的 IP 位址是第幾代(v4 or v6),與它完全無關。


Switch Hub 在實體佈線上,以單一集線器來看,是屬於星狀拓樸。也就是說,每個節點,皆把線材集中到它身上。再由它來為各節點間建立溝通的管道。但以整個學員的佈線來看,它是由一台台的集線器堆疊而成,看起來比較像是樹狀拓樸。因此,我們會有一個思考:「單一台集線器,當然符合每個節點皆有其單一MAC記錄,但多台集線器之間怎麼交換這些 MAC 位址?」,其實這個問題在 IEEE 802.3 通訊協定早就有妥善的規畫,而且硬體廠商只要遵循其規畫做成產品,便可互通。而使用者只要將這些集線器組合(switch hub set),想像成一台巨大的集線器就好。

交換式路由器 (L3 Switch Router)

交換式集線器只解決了校內網路各節點溝通的需求,如果,要上到學術網路 (TANet) 或是 InterNet ,又該怎麼辨?我們知道,在 Internet 的世界要找到對方,只能靠《IP Address》,而不是靠 MAC Address,可是校內的的交換器是第二層的設備,只記錄了各節點的 MAC Address ,根本無法憑 IP Address 找節點。那麼,校內節點,要連接到遠方的節點時,要怎麼辨?是不是要有一個設備,幫忙找出連結對方節點的道路,並把資料丟過去。而,這個幫忙找路的設備就叫【路由器】。

由於路由器必須要有能力解析 IP Address ,所以,它是隸屬於第三層的網路設備。

 網路開展事業或在網路創業賺錢第一步:【架設壹台能24小時替你賺錢網站主機】
架設Linux主機,如果是使用中華電信固定制申請1固定IP(其固定IP之變更方法)

如果您架設Linux主機,是使用中華電信固定制,可免費申請1固定IP來架設主機
有這樣的好康(不申請者是:笨蛋!傻瓜!不懂得藉助網站不上班就可賺錢!)
有學員來信問道:如何更中華電信申請的固定IP呢?(需不需要親自到中華電信辦理?)

attachments/201301/3201564466.jpg

總教頭的回覆:
中華電信固定制申請1固定IP
(固定IP其變更方法如下):
1.請進入中華電信的固定制申請1固定IP網址:
http://service.hinet.net/2004/adslstaticip.php
用中華電信給你的帳號與密碼登入

2.點選『您目前IP配發的狀態為 : 八個動態IP 』
這樣就取消了原來的固定IP(全部都改成八個動態IP)

3.經過翌日再次進入請進入中華電信的固定制申請1固定IP網址
重新申請FTTB經濟型IP配發固定IP+7個動態IP
這樣,你就可以重新取得新的固定IP了!

備註:為何經過一日再重新申請呢?根據中華電信客服人的解釋是:你如果要買上申請
很有可能系統還是會配原來的IP給你
如果經過一日,那你的原來IP就分配給他人使用(你再次申請就會得到新的IP)
所以,你如果修改IP後也就不可以反悔(不可能又回覆原來的舊IP)
因此,如果你沒有特殊需要就不要亂變動IP
(網站經營雖然大部分人是使用網址登入,但是IP也是主機位址識別之一)
好啦!您如果需要變更IP,就使用上述方法試試看,如果還不行,那就打中華電信客服電話
就會有專人為您解說!

------------------------------------------------------

本Linux主機伺服器架設基地立志於收集各類Linux主機伺服器架設、網站架設及網頁設計技術教學資訊,便於本人和廣大網友及網友查詢檢索,無論公司或個人認為本站存在侵權內容均可與本站聯繫,任何此類反饋資訊一經查明屬實後,將立即移除!