構築Unix系統內防火牆體系的多種方案(轉)

ba發表於2007-08-12
構築Unix系統內防火牆體系的多種方案(轉)[@more@]近一段時間,某銀行地市級分行計算機中心的某些伺服器,如儲蓄伺服器、本地伺服器多次出現了相同的奇怪現象:正常執行的計算機被意外關掉。經檢查機器的各方面資源都沒有明顯的故障,而且相同配置的伺服器也只是個別機器被關掉,最關鍵的是被關的機器上除了關機資訊外沒有其他報錯資訊。綜合種種跡象確定,是市分行下屬的某縣支行機房中有人用telnet登入到市分行的伺服器,進入一個選單使用者後,執行了選單中的關機選項而關掉了正在執行的機器。透過這件事例,使人警覺到利用遠端計算機進行高科技作案的潛在危險。
目前銀行系統的計算機網路發展迅猛,由於全省乃至全國通存通兌的需要,地市級分行的計算機系統對上要與省分行的計算機網路相連,對下連通了全市所轄的數十家縣市工行或辦事處的計算機;又由於代理業務和電子商務的需要,銀行內部網路必須與越來越多的被代理企事業單位的計算機相連。這樣一個龐大的網路,要防範“駭客”的偷襲確實有一定的困難。為了使Unix伺服器或前置機能安全正常地執行,必須及時地根據業務的不同應用和需求,有針對性地構築Unix系統內的防火牆體系,對遠端登入和遠端資料傳輸進行過濾,從而實現Unix防火牆的作用, 同時能保障合法計算機遠端業務操作的正常進行。下面把多種防火牆體系的具體實現方案介紹給讀者。
方案一 禁止其他任何計算機向本機的遠端登入和遠端資料傳輸。
設定方法 進入超級使用者,用vi開啟/etc/inetd.conf檔案,用"#"字封閉ftp、telnet、login、exec打頭的四行,然後執行/etc/inetd命令,即可生效。
特點 網路中其他計算機都無法遠端登入和傳輸資料到本機,但本機卻可以登入到其他計算機,也可向其他計算機收發資料。對本機來說,遠端登入和資料傳輸變為單向操作,雖然其設定非常簡單,但它的應用範圍極為有限。
方案二 禁止其他任何計算機向本機的遠端登入,允許其他計算機向本機部分使用者的遠端傳輸資料。
設定方法 以允許用ftp到本機的普通使用者而禁止用ftp到超級使用者為例。
(1)進入超級使用者,用vi開啟/etc/inetd.conf檔案,用“#”字封閉telnet、login、 exec打頭的三行,並放開ftp,然後執行/etc/inetd命令。
(2)用vi修改/etc/passwd檔案,把第一行
root:x:0:1:Superuser:/:
改為 root:x:0:1:Superuser:/:/bin/shcheck
(3)用vi建立/etc/shcheck檔案,內容如下
/bin/sh /etc/profile
/bin/sh /.profile
/bin/sh -sh
(4)修改/etc/profile檔案,把其中的一行
-sh | -rsh | -ksh | -rksh)
改為 -sh | -rsh | -ksh | -rksh | /etc/profile)
(5)執行命令
chmod a-w /etc/shcheck
chmod u+x /etc/shcheck
特點 仍禁止其他任何計算機向本機的telnet、login的登入, 有條件地放開用ftp進行雙向傳輸資料。需要特別注意的是:必須按以上方法禁止其他機器用ftp進入到本機的超級使用者,否則其他機器就可以用ftp接收本機的inetd.conf檔案,經修改後再用ftp傳回本機,以達到放開本機telnet、login等遠端服務的目的。
方案三 以IP地址為物件,允許部分計算機向本機的遠端登入,允許其他計算機向本機普通使用者的遠端傳輸資料。
設定方法 設定步驟如下:
(1)進入超級使用者,用vi開啟/etc/inetd.conf檔案,放開telnet、login、ftp的功能,然後執行/etc/inetd命令。
(2)參照方案二中的(2)、(3)兩步的做法進行設定。
(3)把/etc/profile檔案修改成以下內容
trap “”1 2 3
umask 022
fhq=‘netstat -n|grep ESTABLISHED|awk‘{print $5}'|cut -f1-4 -d. |head -1'
fhq=“(“$fhq”)”
fhqchk=‘grep $fhq /etc/.safe'
if [“$fhq”=“$fhqchk”]
then
echo
else
echo “警告:你的地址為$fhq禁止非法登入!”
exit
fi
case “$0” in
-sh | -rsh | -ksh | -rksh | /etc/profile)
[“X$HUSHLOGIN” !=“XTRUE”] && [ -s /etc/motd ] && {
trap : 1 2 3
echo “”# skip a line
cat /etc/motd
trap “”1 2 3
}
if [“X$HUSHLOGIN”!=“XTRUE”]
then
[ -x /usr/bin/mail ] && { # if the program is installed
[ -s “$MAIL”] && echo “you have mail”
}
if [“$LOGNAME”!=“root”-a -x /usr/bin/news ] # be sure it's there
then news -n
fi
fi
;;
-su)
:
;;
esac
trap 1 2 3
(4)建立/etc/.safe檔案,加入允許登入的計算機的IP地址,一個地址佔一行,格式如下所示
(195.1.2.3)
(194.10.2.4)
(5)執行下列命令
chmod a-w /etc/shcheck /etc/.safe
chmod u+x /etc/shcheck
chmod 0100 /bin/su
特點 允許經過定義的部分計算機用telnet、login登入,允許其他計算機用ftp進入本機的普通使用者進行資料傳輸,未經定義的計算機將被禁止登入到本機。本方案的應用範圍比較廣,可使經過定義的多臺計算機形成一個內部寬鬆而對外嚴防的安全系統。
方案四 以IP地址為物件,允許部分計算機向本機的部分使用者的遠端登入,允許其他計算機向本機普通使用者的遠端傳輸資料。
設定方法 設定步驟如下:
(1)參照方案三中的(1)、(2)兩步的做法進行設定。
(2)對只允許部分計算機登入本機的某一使用者的宿主目錄下的.profile檔案進行修改,加入以下內容
fhq=‘netstat -n|grep ESTABLISHED|awk‘{print $5}'|cut -f1-4 -d. |head -1'
fhq=“(“$fhq”)”
fhqchk=‘grep $fhq /etc/.safe'
if [“$fhq”=“$fhqchk”]
then
echo
else
echo “警告:你的地址為$fhq禁止非法登入!”
exit
fi
(3)對禁止其他任何計算機登入本機的某一使用者的宿主目錄下的.profile檔案進行修改,加入以下內容
ttychk=‘tty|grep ttyp'
if [“$ttychk” !=“”]
then
echo “警告:禁止非法登入!"
exit
fi
(4)參照方案三中的(4)、(5)兩步的做法進行設定。
特點 對計算機的IP地址和使用者同時進行過濾處理,應用範圍更為廣泛,可滿足各種業裨誦械男枰?並具有較高的安全性。
方案五 以乙太網地址為物件,允許部分計算機向本機的遠端登入,允許其他計算機向本機普通使用者的遠端傳輸資料。
設定方法 設定步驟如下:
(1)參照方案三中的(1)、(2)兩步的做法進行設定。
(2)把/etc/profile檔案修改成以下內容
trap “”1 2 3
umask 022
fhq=‘netstat -n|grep ESTABLISHED|awk ‘{print $5}'|cut -f1-4 -d. |head -1'
fhq=“(“$fhq”)”
ether=‘arp -a |grep $fhq |head -1|awk‘{print $4}''
ether=“(“$ether”)”
fhqchk=‘grep $ether /etc/.safe'
if [“$ether”=“$fhqchk”]
then
echo
else
echo “警告:你的乙太網地址為$ether禁止非法登入!”
exit
fi
case “$0” in
-sh | -rsh | -ksh | -rksh | /etc/profile)
[“X$HUSHLOGIN”!=“XTRUE”] && [ -s /etc/motd ] && {
trap : 1 2 3
echo“”# skip a line
cat /etc/motd
trap“”1 2 3
}
if [“X$HUSHLOGIN” !=“XTRUE”]
then
[ -x /usr/bin/mail ] && { # if the program is installed
[ -s “$MAIL” ] && echo “nyou have mail”
}
if [“$LOGNAME”!=“root” -a -x /usr/bin/news ] # be sure it's there
then news -n
fi
fi
;;
-su)
:
;;
esac
trap 1 2 3
(3)建立/etc/.safe檔案,加入允許登入的計算機的乙太網地址,一個地址佔一行,格式如下所示
(0:90:27:d3:b3:21)
(0:80:c8:e0:43:8e)
(4)執行下列命令
chmod a-w /etc/shcheck /etc/.safe
chmod u+x /etc/shcheck
chmod 0100 /bin/su
特點 乙太網地址是計算機硬體地址,是每臺計算機唯一確定的,而IP地址在一臺計算機中可以有兩個或更多,所以以乙太網地址為物件對遠端登入和遠端傳輸資料進行過濾比用IP地址為物件要安全得多。
以上五種方案都已在Unix3.2/4.2和SCO Open Server5.0.4中測試透過,Unix系統管理者可以根據自己機器的實際情況從中任選一種建立Unix防火牆體系。以上方案中第三種和第四種應用較廣,需要注意的是:如果選擇了第三、第四和第五種方案,那麼最好在多臺相互間需要用telnet、login、ftp方式登入而又不允許其他計算機登入的機器上同時設定,從而組成一個區域性的防火牆內控系統,以防止其他計算機非法間接登入,即先登入到已定義的計算機,再透過已定義的計算機最終登入到目標計算機。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10617731/viewspace-952656/,如需轉載,請註明出處,否則將追究法律責任。

相關文章