You are on page 1of 7

1. 認識 防火牆 Firewall Basics............................................................................................................................

1
2. 系統安全設定..................................................................................................................................................1
3. 抵禦「黑客」入侵八大法門..........................................................................................................................4
4. NAT 設定 IP 分享功能....................................................................................................................................5
4. IPChains 基本語法...........................................................................................................................................6
5. iptables 與 ipchains 的差異..............................................................................................................................6
6. Url Links 網路連結..........................................................................................................................................7

Linux 伺服器最普遍應用在對外的網路服務上。 雖然網路的功能似乎在作業系統安


裝完畢後就可輕易的啟用。 但是如果想要在系統安全上進一步去設定及除錯就必須要
有基本的網路管理觀念和實務上的應用管理經驗才能有效率的進行管理工作。本文將先
帶領您了解(一)主機上的安全設定、(二)提供 IP 網路的分享(建立 IP 分享器, NAT)、
(三)Ipchains / Iptables 的基礎設定及實務應用。

1. 認識 防火牆 Firewall Basics

 此參考文件是一份非常基礎且簡易的 防火牆 架設應用參考資料。 本文最主要的目的在於基本的 系


統安全 與 Internet 的結合與應用。 有關更詳細的 DNS / Sendmail 介紹請參考 Internet Links 網路連
結的參考網站。

防火牆最主要的目的在提供需要保護的網域免於外界的入侵。 在了解防火牆工具(ipchains, iptables)如


何去設定及應用之前管理者必須要對防火牆內部的網路架構有深入的了解(如:所有對外線路 gateway,
router , 對外服務主機 等) 才能夠有效的防範入侵者進入。 防火牆的主要功能就是對封包進行過濾再將
封包進行處理。

2. 系統安全設定

在設定任何防火牆之前我們必須先從系統的安全設定開始著手。
1. 使用者帳號的權限 (加長密碼的長度)
選擇恰當的密碼

選擇密碼時要遵循如下原則:
密碼長度:安裝 Linux 系統時默認的最短密碼長度?5 個字元。這個長度還不夠,應該增?8 個。要改
8個
字元,必須編輯 login.defs 文件(/etc/login.defs):

1
PASS_MIN_LEN 5
改?:
PASS_MIN_LEN 8
“login.defs”是登錄程式的配置文件。
?用盲區密碼支援

請?用盲區密碼功能。要實現這一點,使用“/usr/sbin/authconfig”實用程式。如果想把系統中現有
的密碼和群組改?盲區密碼和群組,則分別用 pwconv 和 grpconv 命令。

2. 自動登出 auto logout

在 UNIX 系統中,根帳戶具有最高許可權。如果系統管理員在離開系統時忘了從根系統登出,
系統應該能夠自動從 shell 中登出。那?,你就需要設置一個特殊的 Linux 變數“TMOUT”,用以
設定時間。
編輯“/etc/profile”文件在
"HISTFILESIZE="
之後添加:
TMOUT=3600
?“TMOUT=”輸入的值代表 1 小時的妙數(60 * 60 = 3600 妙)。
在“/etc/profile”文件中加了這一行後,任何用戶使用該系統時有 1 小時的休止狀態,將自動執
行登出操作。而如果用戶要對該變數進行分別設定,可以在“.bashrc”文件中定義自動登出的時間

修改了該參數後,必須退出並重新登錄,更改才能生效。

3. 規劃出系統所真正需要的服務, /etc/inetd.conf

禁用 & 卸載所有不使用的服務

對所有不使用的服務,應該禁用並卸載,這樣可以少些麻煩。查看“/etc/inetd.conf”文件,
在不需要的專案行前加“#”號,即改?注釋語句,就可以禁用它們了。然後給 inetd
過程發送一個 SIGHUP 命令,對“inetd.conf”文件進行更新。步驟如下:

步驟 1
將“/etc/inetd.conf”文件許可改?600,使其只對根用戶?可讀寫。
[Root@kapil /]# chmod 600 /etc/inetd.conf

步驟 2
確保“/etc/inetd.conf”文件的所有者?根用戶。

2
步驟 3
編輯 inetd.conf 文件(/etc/inetd.conf),禁用如下服務:
ftp、telnet、shell、login、exec、talk、ntalk、imap、pop-2、pop-3、finger、auth,等等。
如果不打算用,禁用了這些服務可以減少風險。

步驟 4
給 inetd 過程發送 HUP 信號:
[root@kapil /]# killall -HUP inetd

步驟 5
將“/etc/inetd.conf”文件設為不可更改,chattr 命令可以使任何人都無法對其進行修改:
[root@kapil /]# chattr +i /etc/inetd.conf
唯一可以設置或清除該屬性的用戶只有根用戶。要修改 inetd.conf 文件,必須去掉不可更改標記:
[root@kapil /]# chattr -i /etc/inetd.conf

4. /etc/hosts.* TCP_Wrapper 設定

通過 TCP_WRAPPERS,可以使伺服器更好地抵制外部侵入。最好的辦法是拒絕所有主機:在
“/etc/hosts.deny”文件中加入“ALL: ALL@ALL, PARANOID”,然後在“/etc/hosts.allow”
列出允許訪問的主機。TCP_WRAPPERS 受控於兩個文件,搜索時停在第一個匹配的地方。
/etc/hosts.allow
/etc/hosts.deny

步驟 1
編輯 hosts.deny 文件(/etc/hosts.deny),加入如下行:
# Deny access to everyone.
ALL: ALL@ALL, PARANOID
語句的意思是,除非在 allow 文件中說明允許訪問,所有服務、所有主機都被拒絕。

步驟 2
編輯 hosts.allow 文件(/etc/hosts.allow),例如在文件中添加如下行:
ftp: 202.54.15.99 foo.com
對於你的用戶來說:202.54.15.99 及 foo.com 才可允許使用 FTP 服務。

5. 禁用通常不用的 SUID/SGID 程式

如果設 SUID 根用戶,普通用戶也可以作利用根用戶運行程式。系統管理員應該減少 SUID/GUID


程式的使用,並禁用那些不需要的程式。

3
步驟 1
要從根用戶的程式中搜索所有包含“s”字元的文件,使用命令:
[root@kapil]# find / -type f ( -perm -04000 -o -perm -02000 ) -exec ls -lg {} ;

要在搜索到的程式中禁用 suid 程式,鍵入如下命令:


[root@kapil /]# chmod a-s [program]

按照上述的一些安全指南,系統管理員就可以達到基本的系統安全要求。上述的一些操作是一個
連續的過程。系統管理員必須保持它們的連續性,才能使系統真正安全。

3. 抵禦「黑客」入侵八大法門

抵禦「黑客」入侵八大法門

二十一世紀最矚目的可能不再是政治、種族、環境等老問題、而是虛擬社群所觸發的新問題。互聯網的
崛起,不但是科技上的突破,更是一個開闢新市場的契機。不過,與此同時,黑客(hacker)入侵的問題
亦日趨嚴重,引起了人們的關注。

在云云虛擬人口中,不限於特定的地區或集團,黑客的數量實在多不勝數。而且攻擊網站程式更可從
很多熱門軟件網站下載,其入侵手法令人防不勝防。

現代黑客的常用技倆除了「拒絕服務」(Denial of Service, DoS) 之外,「電郵轟炸」(E-mail bombing)、盜


用別人的 IP Address 和密碼、和「毒害域名服務器」(DNS poisoning,即將瀏覽人潮由甲網站轉移至乙網
站)等也是常用的手法。

防微杜絕,筆者在此綜合了八大法門來抵禦黑客的入侵。

1. 訂定網路安全政策

公司內部的保安政策應該清楚地向僱員說明,並且明確他們的責任,以便當系統受到攻擊時能
立即應變。向員工進行反黑客攻擊培訓,使他們提高警覺性,及時揭發黑客的入侵。

2. 定期測試系統防禦

由於黑客組織已迅速成長及入侵技術不斷發展,有必要定期檢查公司現行的電腦保安系統,確
保有效遏止外來的入侵。

3. 安裝妥善的防火牆(Firewall)

4
防火牆是用以管理網站內訊息的傳送,能有效地將網路與其他系統隔離,使伺服器能檢查本身
的輸送是否符合網站的安全。

4. 進行網路風險評估

針對運行中的網路技術,進行全面的風險評估,並對數據的敏感性進行評估分級。這項評估有
助保安專家認識系統的弱點,從而加強防禦措施。

5. 加上防止侵入程式

妥善配置防禦軟件,可敏捷地確認攻擊模式,然後在警號響起之時,立即抵禦黑客。

6. 暸解意外應變步驟

大部份的公司皆會採取不同程度的預防措施,然而很少機會準備、預演在最壞的情形下執行正
確的應變步驟。

7. 制定預防步驟、聘獨立測試者

欲防止網路被襲,全賴一系列嚴格的管理、健全的內部處理程序和審核能

力。並須委託獨立認可的電腦科技公司測試、檢驗現役系統的安全程度。

8. 更新軟件

準時更新系統及修正相關的保安軟件,以降低受黑客入侵的風險。
 
節錄自陳裕康先生為數碼廣場 2000 年 4 月版內名為『「黑客」觸發電腦網絡保安危機』之文章。數碼廣場
為香港生產力促進局刊物。

4. NAT 設定 IP 分享功能

由於 IP 普遍的不足要利用單一 IP 上網必須要使用 IP 分享器才能解決此問題。 Linux ipchains 的


Masqurade 就能輕易的取代 IP 分享器的功能,讓您的內部網路直接與對外切斷形成一個簡易防火牆環
境。 以下程序供您參考:
1. ipchains MASQ 設定 192.168.1 local 網路 : /sbin/ipchains -A forward -s 192.168.1.0/24 -j MASQ
2. 啟用封包 forward 的功能 : echo 1 > /proc/sys/net/ipv4/ip_forward
3. 開放 ftp 的連結 : modprobe /lib/modules/2.2.14-5.0/ipv4/ip_masq_ftp.o
如果您有其他程式無法執行, 如 cuseeme, 請參考 /lib/modules/<核心版本>/ipv4 的 masq 模組

5
如果您有需要再某個時段關閉 分享功能可利用 crond 來設定: 只要把 forward 改成 0 即可。 如: echo 0
>/proc/sys/net/ipv4/ip_forward

4. IPChains 基本語法

-A Append, -D Delete a rule, -F Delete rules, -I insert rule,


-L List rules, -N New user defined chain, -P set default rule/policy
-R Replace rules, -X delete user defined chains

* ipchains -L // 列出 ipchains 設定 或使用 ipchains-save , iptables-save


* ipchains -F // 清除 ipchains設定
// 先封閉所有封包 (進入/出/轉送)
# ipchains -I input 1 -j DENY
# ipchains -I output 1 -j DENY
# ipchains -I forward 1 -j DENY

* ipchains -A input -s 192.168.1.0/24 -j ACCEPT // 接受 192.168.1.0


* ipchains -A input -d 192.168.1.99/32 -j DENY // 拒絕 packet to .99 host
* ipchains -A input -s 192.168.3.0/24 -j REJECT // 拒絕 network 192.168.3 封

* ipchains -A input -d 0/0 80 -p tcp -j DENY // 停止所有 port 80 的進出

將對外服務的 www server 放進內部網域裡設定如下:


ipchains -A input -p tcp -d 163.21.136.2 80 -j REDIRECT \
redir –dport=8080 --caddr=192.168.1.2 --cport=80
您也可以使用 redhat 內建的 lokkit 來設定初步的防火強再來修改 /etc/sysconfig/ipchains 後利用
/etc/rc.d/init.d/ipchains restart 來重新更新 ipchains 的內容。 在新版的 Redhat lokkit 將會自動對應到
/etc/sysconfig/iptables 的檔案 並請執行 /etc/rc.d/init.d/iptables restart 來管理 firewall 設定。

5. iptables 與 ipchains 的差異

 首先﹐內建鏈名稱從小寫還換成大寫﹐因為 INPUT 與 OUTPUT 鏈目前只會抓目標為本機以及


從本機產生的封包。它們分別用來查看傳入與傳出的封包。
 現在有一個 `-i' 旗標來代表傳入界面﹐並且只工作於 INPUT 和 FORWARD 鏈中。在 FORWARD
與 OUTPUT 鏈中就要將 `-i' 改成 `-o' 了。

6
 TCP 與 UDP 埠口現在都要用 --source-port 或 --sport 選項來拼寫出來(或是掉過來寫 --
destination-port 或 --dport)﹐同時﹐必需置於 `-p tcp' 或 `-p udp' 選項之後﹐因為 TCP 或 UDP 延
伸是分開載入的。
 以前 TCP 那個 -y 現在變成 --syn﹐並且必需置於 `-p tcp' 之後。
 原來的 DENY 目標現在終於變成 DROP 了。
 在列示其工作的同時可以將該鏈歸零(zeroing)。
 歸零內建鏈也可以清掉原則記數器(policy counters)。
 列示鏈可以讓您把記數器變成微小快照(atomic snapshot)。
 REJECT 與 LOG 現在變成延伸目標了﹐意味著它們已經和核心模組分開。
 鏈名稱最長可達 31 個字母。
 MASQ 現在變成 MASQUERADE﹐ 而且使用不同的語法。REDIRECT 在保留相同名稱的同
時﹐也經歷了語法的變遷。至於如何設定它們的詳細資料﹐請參閱 NAT-HOWTO。
 而 -o 選項則不再用來將封包傳遞給使用者空間設備了(參考前面的 -i )。現在則用 QUEUE 目標
將封包送給使用者空間。

6. Url Links 網路連結

http://www.ibiblio.org/pub/Linux/docs/HOWTO/ Linux HOWTO 的英文站台


http://www.linux.org.tw/CLDP/DNS-HOWTO-2.html 中文 Howto 資料
http://rpmfind.net RPM 的檔案搜詢站台

You might also like