什麼是防火牆——不知道;)
什麼是TIS?——這是一組由(Trusted Information Systems)寫的一組構造防火牆的工具
包,又叫firewall toolkit,這個工具箱裡的軟件適當的安裝並配置以一定的安全策略
就可以構成基本的防火牆了,而且它是免費的;)花點心思看一看,說不定可以省下一筆不
菲的防火牆購置資金哦……
一、編譯運行
1、下載
可以到TIS的web站點下載http://www.tis.com,但它有一些很麻煩的認證過程,建議
直接到國內的安全站點轉轉,或者到http://packetstorm.securify.com/去下載,我
得到的版本是fwtk2.1.tar.Z的版本,此後的說明均以此版本為例,且在solaris7 x86
上通過,gcc版本為2.95.2。
2、編譯
# gunzip fwtk2.1.tar.Z
# tar vfx fwtk2.1.tar
# cd fwtk
將fwtk2.1.tar.Z解壓後,可以在./fwtk目錄下發現有很多Makefile.config.*文件,
比如你使用的操作系統是solaris2.7,那麼就直接將Makefile.config更名後,把
Makefile.config.solaris更名為Makefile.config就行了。
# mv Makefile.config Makefile.config.old
# mv Makefile.config.solaris Makefile.config
在solaris下的編譯相當容易——至少solaris7與solaris8下面不用修改任何東西就
可以編譯通過了。
# make && make install
如果你使用的是Linux,僅僅把Makefile.config.linux當成當前Makefile.config還
不夠,因為如果你要使用X的gw.那麼你必須有 Athena Widget的設置。否則編譯會
出問題。因此,可以修改Makefile讓系統不編譯x-gw。
所以可以
# vi Makefile
查找下面這行:
# Directories to build executables in
DIRS= smap smapd netacl plug-gw FTP-gw tn-gw rlogin-gw http-gw x-gw
把後面的x-gw去掉就可以了。
如果是在bsd下,特別要注意,bsd的make 不認識象:.include "Makefile.config"
這種格式,因此,在bsd下要用TIS提供的fixmake來處理。或者用指定
CC= gcc
COPT= -g -traditional -DBSDI
來適應bsd系統——比如我的FreeBSD3.4。
如果在編譯過程中有出現sys_errlist的定義聲明出錯,那麼要修改原程序,比如:
exter char *sys_errlist[];
把該行注釋掉。
如果出現"Undefined symbol `_crypt' referenced from text segment"錯誤,則
看在你的Makefile.config中AUXLIB設置是否有"-lcrypt"。
如果還有問題……我懶得翻譯那麼多東西了,你可以到下面的URL看看:
http://fwtk.netimages.com/fwtk/faq/
這裡列出了人們在編譯及使用tis時遇到的一些常見問題。
二、配置前的准備工作
1、理解一些概念
a、wrapper
我的理解,wrapper應該是一個包裝程序,說白了和那些login什麼的後門沒本質區別;)
比如說tcpd吧,我們用它來守護一些網絡服務守護進程,比如,在超級服務守護進程
inetd的配置文件中,我們可以將
finger stream tcp nowait nobody /usr/etc/in.finger in.fingerd
這一句替換掉,用tcpd來包裝
finger stream tcp nowait nobody /usr/etc/tcpd in.fingerd
發送一個HUP信號給inetd讓它重啟後,tcpd就發生作用了,如果此時收到一個對主機的
finger請求,tcpd便啟動,先檢查訪問控制的配置文件,也就是/etc/hosts.allow和
/etc/hosts.deny,如果允許訪問,再啟動真正的finger守護進程去處理該請求。
怎麼樣,和login的後門相比原理是不是相同的?比如ulogin.c吧,是將真正的login改
名備份到另一個地方,用假的login包裝起來,收到login請求時,先判斷訪問者是不是
有設置DISPLAY的環境變量,如果該變量和passWord相同的話,則啟動/bin/sh,如果沒
有,則以正常的login來響應該請求……哎,這是題外話,不說了……
b、gateway
應用級網關(Application Level Gateways)是在網絡應用層上建立協議過濾和轉發功能。
它針對特定的網絡應用服務協議使用指定的數據過濾邏輯,並在過濾的同時,對數據包
進行必要的分析、登記和統計,形成報告。
呵,這種教材似的東西看著是不是覺得難理解,看了半天不知所雲?其實在TIS下面,它
的各種gw比如tn-gw,是控制telnet的,當你連接到tn-gw運行的端口時,它會出現一個
自己的提示符……如下:
C:\>telnet 192.168.0.2
然後telnet窗口將出現
hi,i'm quack,welcome to my 3cr19TkI7's website! <------------這是我的tn-welcome.txt
tn-gw-> 它會在在連接時顯示……
當我鍵入問號尋求幫助時,會有如下的提示信息……
tn-gw->?
Valid commands are: (unique abbreviations may be used)
connect hostname [serv/port]
telnet hostname [serv/port]
x-gw [hostname/display]
help/?
password
timeout seconds
quit/exit
tn-gw->
看明白了嗎,唔,沒錯,它提供的是穿越這台防火牆主機對其它機器的telnet訪問;)
tn-gw-> telnet 192.168.0.2 55555
Trying 192.168.0.2 port -9981...
Connected to 192.168.0.2.
SunOS 5.7
login: quack
Password:
Last login: Fri Jun 9 00:27:48 from 192.168.0.1
Sun Microsystems Inc. SunOS 5.7 Generic October 1998
Cracker%
這下清楚了吧……稍安勿燥,後面我將說明這是如何配置的。
c、proxy
代理服務(Proxy Service)也稱鏈路級網關或TCP通道(Circuit Level Gateways or TCP
Tunnels),也有人將它歸於應用級網關一類。它是針對數據包過濾和應用網關技術存在
的缺點而引入的防火牆技術,其特點是將所有跨越防火牆的網絡通信鏈路分為兩段。防
火牆內外計算機系統間應用層的"鏈接",由兩個終止代理服務器上的"鏈接"來實現,外
部計算機的網絡鏈路只能到達代理服務器,從而起到了隔離防火牆內外計算機系統的作
用。此外,代理服務也對過往的數據包進行分析、注冊登記,形成報告,同時當發現被
攻擊跡象時會向網絡管理員發出警報,並保留攻擊痕跡。
2、文件介紹
默認的安裝,TIS是安裝在/usr/local/etc目錄下的,現在我們來看看裡面都有些什麼吧
# cd /usr/local/etc
# ls -la
總數1092
drwxr-xr-x 2 root other 512 6月 6 17:05 .
drwxr-xr-x 11 root other 512 6月 6 17:02 ..
-rwxr-xr-x 1 root other 17012 6月 6 17:05 authdump
-rwxr-xr-x 1 root other 18752 6月 6 17:05 authload
-rwxr-xr-x 1 root other 23132 6月 6 17:05 authmgr
-rwxr-xr-x 1 root other 47500 6月 6 17:05 authsrv
-rwxr-xr-x 1 root other 50952 6月 6 17:05 ftp-gw
-rwxr-xr-x 1 root other 117712 6月 6 17:05 http-gw
-rwxr-x--- 1 root other 362 6月 6 17:05 mqueue
-rwxr-xr-x 1 root other 26820 6月 6 17:05 netacl
-rw-r--r-- 1 root other 3101 6月 6 17:05 netperm-table
-rwxr-xr-x 1 root other 30308 6月 6 17:05 plug-gw
-rwxr-xr-x 1 root other 45892 6月 6 17:05 rlogin-gw
-rwxr-xr-x 1 root other 31436 6月 6 17:05 smap
-rwxr-xr-x 1 root other 28772 6月 6 17:05 smapd
-rwxr-xr-x 1 root other 49940 6月 6 17:05 tn-gw
-rwxr-xr-x 1 root other 44792 6月 6 17:05 x-gw
一個一個來解釋吧……
a.authdump:這是對TIS認證數據庫進行管理的工具,它可以在數據庫中建立信息的
ASCII文本形式的備份。其中的密碼是加密後輸出的。
b.authload:也是認證數據庫管理工具,它對數據庫中的單個記錄進行處理,這個命
令在你需要向數據庫中添加一組條目或者需要在兩個站點之間共享數據庫時特別有
用。
c.authmgr:網絡認證的客戶程序,它是與認證方authsrv的接口。是用來訪問網絡上
的認證服務器或者加密連接時用的。
d.authsrv:第三方網絡認證守護程序,它提供了多種誰形式的綜合接口,比如口令、一
次性口令或者令牌認證系統,它裡面有一個包含用戶和組記錄的數據庫,並且還有一個
管理接口,允許一個獲得認證的管理員管理本地或網絡上的用戶記錄。後面會說它的
配置的。
e.ftp-gw:
它是帶有日志記錄和訪問控制的可以穿越的FTP代理服務。
f.http-gw:
帶有日志記錄和訪問控制的gopher和http代理服務。
g.mqueue:
不知是不是message queue?不太懂……:(
h.netacl:
TCP網絡訪問控制,由i
管理接口,允許一個獲得認證的管理員管理本地或網絡上的用戶記錄。後面會說它的
配置的。
e.ftp-gw:
它是帶有日志記錄和訪問控制的可以穿越的FTP代理服務。
f.http-gw:
帶有日志記錄和訪問控制的gopher和http代理服務。
g.mqueue:
不知是不是message queue?不太懂……:(
h.netacl:
TCP網絡訪問控制,由i