譯者:Nica
如果知道一些小技巧的話,Linux 的網路設定可以更簡單、網路更安全! Jack Wallen 分享了一些觀點,讓管理者能夠一一攻破 Linux 網路設定的任務 - 只要稍稍用心就作得到。
網路連線是各方面運算作業之必備,無論是在家或公司,網路連線在運算世界裡的一個定位就是任務失敗的兇手 (deal breaker)【譯註:一般用法譯為交易破壞者】。然而,只要些許協助,Linux 作業系統也能在網路世界裡佔有一席之地 - 不但好用,而且安全。這不代表一般使用者 (有時是水準之上的使用者) 不能尋求一些協助。下面這些技巧,應能讓你的 Linux 網路連線設定更順利。
注意:本內容亦提供【 PDF 版本 】。
#1
活用你的 /etc/hosts 檔
hosts 檔是用來指定靜態主機名稱,並提供快速建立網路連線的捷徑。你在 Linux 機器裡首先要完成的工作之一,就是將各個機器加入到 /etc/hosts 檔裡。這麼作可以節省我們打一堆 IP 位址的時間。檔案的位址格式如下:
IP_ADDRESS NICKNAME
例如,若我在備份的地方用了一台機器,它的 IP 位址是 192.168.1.101,可以輸入:
192.168.1.101 backups
這麼一來,假設我要透過 secure shell 連結到那台機器,就只要輸入 ssh -v -l username bacukups 即可建立連結。
【譯註:username 輸入的是你的使用者帳號,backups 為你已經在 hosts 裡指定 IP 的那台主機名稱。】
#2
利用 /etc/hosts.deny 隔絕你不想要的使用者
還有另一個好用的 "hosts" 檔:hosts.deny。此檔可利用客戶端或伺服器端的主機名稱,建立存取控制。這在很多狀況都用得上,可以封鎖正在取得你網路存取控制的黑名單網域名稱,或是封鎖正取得某機器存取權的某位使用者。無論你要怎麼利用它,格式都一樣。
假設你要封鎖網域 bad.domain.name,不讓他們取得機器的存取權。請先開啟 /etc/hosts.deny 檔 (你若不是 root 也要有 sudo 的權限),再在檔案末端加入這個:
All: bad.domain.name
檔案儲存後,就行了。
#3
讓 WICD 解決你的無線災難
有多少次我發現自已正對著伺服器的機架在撞,全都是因為長久以來 Linux 與無線網路就是不合! 不過這很快就要成為過去式了,現今的分支套件,在無線網卡的偵測上已經不太需要花心思,這裡的問題是在加密這件事。
很多 Linux 無線網路工具程式在含括加密功能後都有問題。而 WICD 工具程式就是來解決這個的。現在要連到 WPA 或 WPA2 加密無線網路很簡單,你只要透過 WICD 提供的簡易 GUI 界面,就可以將它從你的煩惱清單勾除。
#4
下載安裝 iptables 的前端操控界面
不能以為只要用了 Linux 就是安全的。你仍需要一些安全性考量,在 Linux 之下,最佳的安全性工具就是 iptables 了。iptables 唯一問題在於操控它的挑戰 (特別是針對新手而言)。幸好,有許多設計精良的 iptables 圖形化前端程式可選擇。最佳選擇之一就是【 Firestarter】 了,這個前端程式讓套用 iptables 成為一個簡單的動作,所以你不必再將安全性議題排除在你的學習曲線之外了。
#5
瞭解命令列工具程式
面對現實吧:若你要用 Linux,總是會遇到必須啟新啟動網路但不想用到 GUI 的狀況吧。在這種特殊狀況下,知道應使用 /etc/rc.d/network restart 就能解決這個問題。當然,這不是唯一的網路命令列工具程式,你還得知道像 dhclint、traceroute、samba、ping,以及 netstat 這些工具程式。
#6
固定 DNS 伺服器位址
有好幾次,我的網路出問題皆肇因於直接指向了一個找不到的 DNS 伺服器位址。為此,我養成一個將我的 DNS 伺服器寫入 /etc/resolv.conf 的習慣。範例格式是這樣:
nameserver IP_ADDRESS
IP_ADDRESS 之處為你名稱伺服器的確切位址。你可以視需求而定,要設幾個就設定幾個名稱伺服器。
#7
安裝 ClamAV
如果有執行郵件伺服器,那防毒就非作不可。即便你的作業系統是 Linux,也瞭解你的郵件伺服器可免除 99.9999999% 的病毒攻擊,但這不表示所有自你伺服器下載郵件的客戶端也能免除。基於此,若你將 ClamAV 這類的防毒軟體裝到 Linux 郵件伺服器裡,你的管理生涯會輕鬆得多。它帶給你心靈上的平靜,及足夠的安全性 - 足以確保你的使用者不會一天到晚來敲門要你解決問題。
#8
知曉如何手動組態 IP 位址
沒錯,是有 GUI 工具可以作這件事,也都作得很好。不過,如果你管理任何作業系統夠久的話,最終會發現,手上有個備胎工具程式來幫助你完成工作絕不是件壞事。以 Linux 網路連結而言,最佳備胎工具程式就是 ifconfig 命令了。不單單只是因為這個命令可以回傳你網路卡的資訊給你 (在未加任何參數下),它也可以讓你手動設定網路卡組態。就像這麼作:
/sbin/ifconfig eth0 192.168.1.10 netmask 255.255.255.0 broadcast 192.168.1.255
當然,你將加入的會是你特定的資訊,就類似上述組態。
【譯註:/sbin/ifconfig 為命令的絕對路徑;eth0 為裝置名稱;192.168.1.0 為該裝置-網路卡的 IP 位址;netmask 255.255.255.0 指的是子網路遮罩設定為 255.255.255.0;broadcast 192.168.1.255 指的是廣播位址設定為 192.168.1.255】
#9
瞭解你的 /etc/interface (Ubuntu) 或 /etc/sysconfig/network=scripts (Red Hat/Fedora) 檔
這個(或這些) 檔案存放的是各個網路介面的資訊,格式會像這樣:
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
auto eth1
iface eth1 inet dhcp
auto eth2
iface eth2 inet dhcp
auto ath0
iface ath0 inet dhcp
auto wlan0
iface wlan0 inet dhcp
如上所示,我所有的介面都設定為 dhcp 指定,這是我筆記電腦裡的網路設定,由於我會帶著它四處跑,所以設為 dhcp 是必要的。但若我只在某個地方使用有線的介面呢? 在這種情況下,我可以在 eth0 介面下,設定固定的網路資訊,像這樣 (以 Ubuntu 為例):
【譯註:設為 dhcp 表示由網域裡的 dhcp 伺服器為你指定網路連線的相關設定。】
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.104
gateway 192.168.1.1
或是 (以 Red Hat/Fedora 為例):
DEVICE=eth0
BOOTPROTO=static
BROADCAST=192.168.1.255
IPADDR=192.168.1.10
NETMASK=255.255.255.0
NETWORK=192.168.1.104.0
ONBOOT=yes
再重複一次,在這裡你必須插入適於你網路與裝置的特定資訊。
#10
別忘了在架設 Samba 時設定 smbpasswd
幾乎每次使用者來找我問 Samba 時,問題都出在他們沒有新增使用者,並用 smbpasswd 為他們設定密碼。沒作這件事,使用者就不能對 Samba 伺服器進行認證。使用 smbpasswd 為新的使用者設定密碼時,必須加入 -a 切換,像這樣:
smbpasswd -a USERNAME
在按完 Enter 後,你將被詢問使用者的密碼 (會問兩次)。請注意:你必須擁有 root 的存取權 (或 sudo) 才能作這些事。
這 10 個速成小技巧應能幫助你在 Linux 網路連線的各方面設定上更得心應手。你永遠不會知道何時需要仰賴命令列、何時需要圖形前端界面程式協助你設定 iptables。而今,只要你需要,就知道應如何完成它了。
原文出處:
10 quick tips to make Linux networking easier
如有版權問題,請來信 (nicaliu at gmail dot com) 告知,謝謝。
8/20/2008
4/01/2008
1/26/2007
Vim 的小玩意: tab 怎麼玩?
一次 vi 數個檔案來作編輯,預設 vim (也就是 vi) 同時可開 10 個 tab (這可以透過 set tabpagemax= 的方式設定,將它加大或減少)。
也就是說,當你想同時 vim 三個檔案 (例如 abc、cde、efg),可以:
執行了之後,vim 的視窗最上面會出現abc cde efg 這三個 tab,在 vim 的一般模式下,敲鍵盤 gt 就可以順序切換這三個 tab。假設你剛好在中間 cde 這個 tab,可以在指令模式 (前面有冒號那個) 下,輸入 :tabp 前進到上一個 tab,也就是 abc;而若一樣在 cde 下,輸入的是 :tabn,則切換至下一個 tab。
最方便的是 :tabdo 的功能。例如你想將這三篇文章裡的 quu-studio 全置換成 Quu-Studio,只要 :tabdo %s/quu-studio/Quu-Studio/g 就可以了!!
另外還有其它 :tab 相關的指令功能,看看參考來源就知道嚕。
參考來源:
http://applications.linux.com/article.pl?sid=07/01/11/2141259
也就是說,當你想同時 vim 三個檔案 (例如 abc、cde、efg),可以:
vim -p abc cde efg
執行了之後,vim 的視窗最上面會出現abc cde efg 這三個 tab,在 vim 的一般模式下,敲鍵盤 gt 就可以順序切換這三個 tab。假設你剛好在中間 cde 這個 tab,可以在指令模式 (前面有冒號那個) 下,輸入 :tabp 前進到上一個 tab,也就是 abc;而若一樣在 cde 下,輸入的是 :tabn,則切換至下一個 tab。
最方便的是 :tabdo 的功能。例如你想將這三篇文章裡的 quu-studio 全置換成 Quu-Studio,只要 :tabdo %s/quu-studio/Quu-Studio/g 就可以了!!
另外還有其它 :tab 相關的指令功能,看看參考來源就知道嚕。
參考來源:
http://applications.linux.com/article.pl?sid=07/01/11/2141259
vigr 是什麼 ?
這個程式是 util-Linux 套件的一部份,簡單來說就是用來 vi 你的 /etc/group 這個檔。所以啦,也有一個叫 vipw 的東東,也就是用來 vi 你的 /etc/passwd 檔囉。
在 這篇 文章裡看到,好處有二:
一、使用此法可鎖定同一時間只有一個人在編修 /etc/group 或 /etc/passwd
二、它會幫你檢查這兩個檔的語法與格式是否正確
也就是說,若你是透過 console 在管理系統 (可能會遇到常見的版面編排問題),又經常手動編修這兩個檔,那麼用 vigr 與 vipw 會是比使用一般編輯器更好的選擇。
參考來源:http://blogs.ittoolbox.com/linux/locutus/archives/what-is-this-vigr-program-thingy-14118
在 這篇 文章裡看到,好處有二:
一、使用此法可鎖定同一時間只有一個人在編修 /etc/group 或 /etc/passwd
二、它會幫你檢查這兩個檔的語法與格式是否正確
也就是說,若你是透過 console 在管理系統 (可能會遇到常見的版面編排問題),又經常手動編修這兩個檔,那麼用 vigr 與 vipw 會是比使用一般編輯器更好的選擇。
參考來源:http://blogs.ittoolbox.com/linux/locutus/archives/what-is-this-vigr-program-thingy-14118
12/24/2006
Subversion 的特色
.CVS 主要的功能,它幾乎都有 ~
Subversion 意即:更棒的 CVS
.目錄、檔案的 meta-data,甚至是 "重新命名" 都可以版本化/版本控制
泰半 CVS 皆不提供此功能;對 Subversion 而言,版本控制不單單僅針對檔案內容或檔案的存在與否…
.以 commit 為 "原子"
commit 的動作整個成功才算完成,沒有部份完成這回事。以每個 commit 作 revision 的編號、亦不會有像 CVS 那樣冗長累贅的 log 紀錄存在。
.提供 Apache 伺服器選項:WebDAV/DeltaV protocol
.Standalone 的伺服器選項
.輕輕鬆鬆 Branching 與 tagging
.原生 client/server 架構;輔以函式庫 (library) 設計
.client/server 的通訊協定,傳送雙方目錄的 diff
充份利用網路頻寬的效率作這件事。(CVS 僅 server 傳予 client,反之則否)
.處理的量,與 "改變部份" 的大小成比例,而非 "整個資料/專案" 大小
.repository 的運作/應用,可以選擇以資料庫 (Berkeley) 的方式,或是純文字 (可自訂格式)
.符號性連結版本化
Unix 使用者可於版本控制下置放符號性連結 (symbolic link);Win32 的使用者則否
.效率處理二進制檔
它使用二進制 diff 演算法傳送一連串的 revision,並儲存之
.好用的輸出
subversion 命令列的 client 端程式,可作出適於人類閱讀、自動化剖析;亦適於 script 的輸出資訊
.本土化的資訊
subversion 使用 gettext() 搭配當前的 locale 設定,顯示傳送時的錯誤訊息與相關的線上協助資訊
參考自 Subversion 網站
Subversion 意即:更棒的 CVS
.目錄、檔案的 meta-data,甚至是 "重新命名" 都可以版本化/版本控制
泰半 CVS 皆不提供此功能;對 Subversion 而言,版本控制不單單僅針對檔案內容或檔案的存在與否…
.以 commit 為 "原子"
commit 的動作整個成功才算完成,沒有部份完成這回事。以每個 commit 作 revision 的編號、亦不會有像 CVS 那樣冗長累贅的 log 紀錄存在。
.提供 Apache 伺服器選項:WebDAV/DeltaV protocol
.Standalone 的伺服器選項
.輕輕鬆鬆 Branching 與 tagging
.原生 client/server 架構;輔以函式庫 (library) 設計
.client/server 的通訊協定,傳送雙方目錄的 diff
充份利用網路頻寬的效率作這件事。(CVS 僅 server 傳予 client,反之則否)
.處理的量,與 "改變部份" 的大小成比例,而非 "整個資料/專案" 大小
.repository 的運作/應用,可以選擇以資料庫 (Berkeley) 的方式,或是純文字 (可自訂格式)
.符號性連結版本化
Unix 使用者可於版本控制下置放符號性連結 (symbolic link);Win32 的使用者則否
.效率處理二進制檔
它使用二進制 diff 演算法傳送一連串的 revision,並儲存之
.好用的輸出
subversion 命令列的 client 端程式,可作出適於人類閱讀、自動化剖析;亦適於 script 的輸出資訊
.本土化的資訊
subversion 使用 gettext() 搭配當前的 locale 設定,顯示傳送時的錯誤訊息與相關的線上協助資訊
參考自 Subversion 網站
訂閱:
文章 (Atom)