3、认证系统:
对于这个认证系统,也同样要编辑/etc/services,添加
authsrv3333/tcp
然后在/etc/inetd.conf中加入一行
authsrvstreamtcpnowaitroot/usr/local/etc/authsrvauthsrv
#./authsrv$#@60;-----------------运行authsrv
authsrv#?$#@60;-----------------它就跳出来authsrv#字样,我要看帮助,
键?,得到下面的输出
CommandList:
(Commandsmaybeinvokedwithuniqueleadingabbreviation)
authorizeusername[comment]
authenticateusername
response$#@60;text$#@62;
quit
exit
displayusername
adduserusername[fullname]$#@60;----------添加用户
deluserusername
enableusername[onetime]$#@60;----------给用户使能
disableusername
password[username]passwordtext$#@60;----------设密码
passwd[username]passwordtext
protousernameprotoname$#@60;----------标志用户使用的认证协议
groupusernamegroupname$#@60;----------设组别
renameusernamenewname[fullname]
wizusername
unwizusername
superwizusername
operationgroup/userusernamecommanddest[tokens]
list[group]
ls[group]
?
help
authsrv#adduserwlj$#@60;--------------我在加用户了
ok-useraddedinitiallydisabled
authsrv#passwordwljwlj$#@60;-------------设密码,xixi,passwd=username,soeasy tocrack
Passwordforwljchanged.
authsrv#groupwljother$#@60;-------------设组别
setgroup
authsrv#enablewlj$#@60;-------------使能
enabled
authsrv#wizwlj
setgroup-wizard
authsrv#superwizwlj
setwizard
authsrv#ls$#@60;-------------现在看看……
Reportforusersindatabase
usergrouplongnamestatusprotolast
--------------------------------
usernpasswnever
wljotheryGpasswnever
搞定了这个就可以试试authmgr的情况了……
前面提到的authmgr这个客户程序则是用法如下:
Cracker#./authmgr
Connectedtoserver
authmgr-$#@62;login
Username:wlj
Password:
Loggedin
authmgr-$#@62;list
Reportforusersindatabase
usergrouplongnamestat rotolast
--------------------------------
adminrootyWpasswnever
wljotheryGpasswSatJun1011:26:182000
authmgr-$#@62;
至于认证服务器也有它的规则,比如我的机器上的是这样的:
#Exampleauthserverandclientrules
#------------------------------------
authsrv:hosts127.0.0.1
authsrv:database/usr/local/etc/fw-authdb
authsrv:badsleep1200
authsrv:nobogustrue
#clientsusingtheauthserver
*:authserver127.0.0.13333
说说它的规则吧……关于authsrv可以有下面的规则项:
databasepathname指定authsrv数据库的数径
nobogustrue当用户认证失败返回一个友好的错误消息
badsleepseconds对尝试口令的登陆的限制
useridname指定authsrv运行的PID
hostshost-pattern[key]跟加密有关的了
operationuseridtelnet-gwhost+
+————$#@62;存储在netperm-table中的操作规则
|
operationuseridftp-gwhostput+
怎么样,看得明白么?我写得太乱,但实在表达不好;(不明白的话自己查帮助吧……
4、ftp-gw
现在要来配置ftp代理了,一般情况下,你可能希望既运行ftp代理又运行正常的ftp服务,
这样要对几个文件进行处理,首先编辑/etc/services,加入以下行:
ronin4444/tcp
然后在文件/etc/inetd.conf中把与FTP相关的行改为如下:
ftpstreamtcpnowaitroot/usr/local/etc/ftp-gwftp-gw
roninstreamtcpnowaitroot/usr/local/etc/netaclin.ftpd
其中第二行的意思是配合/etc/services文件,将普通ftp端口移至4444,并以netacl包装。
而第一行就是我们的ftp-gw了。
重启进程后,用端口扫描可以看到4444端口是打开的,可以直接连通。
我们现在应该来配置ftp-gw的规则了——打开文件/usr/local/etc/netperm-table:
#Exampleftpgatewayrules:
#--------------------------
ftp-gw:denial-msg/usr/local/etc/ftp-deny.txt
#对拒绝访问者的信息
ftp-gw:welcome-msg/usr/local/etc/ftp-welcome.txt
#欢迎信息
#ftp-gw:help-msg/usr/local/etc/ftp-help.txt
ftp-gw:timeout3600
#这里设定超时的时间
#uncommentthefollowinglineifyouwantinternaluserstobe
#abletodoFTPwiththeinternet
#ftp-gw:permit-hostsYOURNET.*
ftp-gw:hosts192.168.0.*
#允许192.168.0.*的这些机器登陆
ftp-gw:authserverlocalhost3333
#认证服务器是本地机器,端口为3333$#@60;---------刚才在认证服务中定义的
它的程序规则如下:
useriduser指定了用户ID
directorypathnameftp-gw之前的chroot目录
denial-msgfilename访问拒绝时显示的文件
welcome-msgfilename欢迎信息文件
help-msgfilename帮助信息文件
denydest-msgfilename受限制的访问显示文件
timeoutsecondvalue超时设置
主机访问选项如下:
-destpattern标志一个有效目标
-dest{pattern1pattern2……}标志一组有效目标
-auth说明代理要求用户出示有效ID证明才允许使用
-passok如果来自受托主机,则允许修改口令
下面我们来验证一下,先ftp到4444的netacl控制端口……
C:\$#@62;ftp
ftp$#@62;o192.168.0.24444
Connectedto192.168.0.2.
sorry,youcantallowtoaccesstheftpsite!$#@60;-------定义的noftp.txt……
Connectionclosedbyremotehost.
ftp$#@62;
阻塞规则起作用了……
然后来试试代理吧:
C:\$#@62;ftp192.168.0.2
Connectedto192.168.0.2.
220iamquack,welcome^&^
User(192.168.0.2:(none)):wlj@localhost$#@60;---------记得我刚才输入的认证用户么?
331-(----GATEWAYCONNECTEDTOlocalhost----)
331-(220iamquack,welcome^&^)
331Enterauthenticationpasswordforwlj
Password:
230Userauthenticatedtoproxy
ftp$#@62;
成功连接了……至于允许及阻塞的规则——自己制订去吧。
5、tn-gw
和配置FTP没有什么两样,编辑/etc/services、/etc/inetd.conf、
/usr/local/etc/netperm-table等文件,定义好端口、规则……就不多说了。
6、plug-gw\rlogin-gw\http-gw\x-gw:这些代理的配置也大同小异,读者可以自行研究。
7、smap\smapd:至于这个,我没有配sendmail,也懒得弄了——没有尝试不敢胡说……
四、附加工具包
在tis的./tools/目录有一些管理工具,利用它们可以完成一些系统管理功能,但是,可能是下载的版本的原因吧,我在packetstorm下载到的版本无法直接编译安装通过,问题有二,一是./tools/server/下有个syslog,得改成syslogd,还有就是makeinstall时工具没法装到正确的目录,你可以修改一下Makefile或者干脆自已动手拷贝——还要快些:)
这些工具如下:
./tools/admin/1、flog
1、flog
这个东西是监视某一log文件的实时变化的工具,作者自述在控制台工作时经常运行tail-f/usr/adm/syslog来实时察看log文件的变化,以确定系统的运行情况,而flog是一个更加聪明的工具——你可以简单地键入flog&来运行它,默认情况下它察看是/var/log/messages——你可以在编译的时候自己定义它。或者你可以用flog/var/log/auth.log&来察看其它的文件。
2、portscan
这东东似乎没必要多说——任谁看portscan也知道是个端口扫描工具了……usage:portscan[-llowport][-hhighport][-v]host最简单直接的就是:./portscanlocalhost了……确定现在有哪些端口在提供服务。如果用-vhost参数也会得到一个冗余的输出——每个端口打印一个小圆点……通过这个输出你可以判断它是不是还在跑……
3、netscan
这是一个网络ping程序,它将网络地址做为参数接受,并且ping该网络中的每个地址。它的缺省输出是一组响应ping的地址列表及对应的主机名字。比如你可以用下面方式运行:#./netscan202.101.103它会依次ping每个地址,并将有响应——就是存活的主机返回。它还可以以冗余方式运行。在这种方式下,响应ping的地址与其名字放在一起或者左对齐,没有响应的地址则会缩排,以tab方式缩进一个制表空格。可以用#./netscan-v202.101.103得到冗余方式的输出。
4、progmail
这是一个简单的发送邮件的程序,要安装它,你可以将它拷贝到/usr/local/etc/中,然后修改sendmail.cf中的行:
Mprog,P=/bin/sh,F=lsDFMeuP,S=10,R=20,A=sh-c$u
将其改为:
Mprog,P=/usr/local/etc/progmail,F=lsDFMeuP,S=10,R=20,A=sh-c$u
5、reporting
#ls-la
-rw-r-----1roninother2126199411月5authsrv-summ.sh
-rw-r-----1roninother962199411月5daily-report.sh
-rw-r-----1roninother4799199611月27deny-summ.sh
-rw-r-----1roninother2757199411月5ftp-summ.sh
-rw-r-----1roninother2796199411月5http-summ.sh
-rw-r-----1roninother247199411月5login-summ.sh
-rw-r-----1roninother2048199411月5netacl-summ.sh
-rw-r-----1roninother2017199411月5smap-summ.sh
-rw-r-----1roninother2256199411月5tn-gw-summ.sh
-rw-r-----1roninother960199411月5today-report.sh
-rw-r-----1roninother962199411月5weekly-report.sh
这些东西不言而明是shellscript写成的日志统计工具了,自己看看代码吧……
然后在client及server目录下还有以下工具——作个简略介绍吧:
ftpd -aversionofftpdthatusestheauthserver
login-sh -aloginshellwrapperthatusestheauthserver(seethemanpages)
syslog -aversionofthe4.3bsdsyslogthatusesregexps
gate-ftp -Ifinvokedas"gate-ftp",theenvironmentvariableFTPSERVER issearchedfor,andiscontactedasaproxyftpgateway.Autologinindone throughtheproxy.If FTPSERVERPORTisset,thatisusedastheportnumber forthegatewayserver.tn-asimple"expect"scriptthathandles telnettingoutthroughtheproxyautomatically
好了,很久没打过这么多的字了……手酸死了……
结论:上面说了这么多,其实只是说明一些基本的配置,至于你自己的网络如何用这一防火墙来将入侵者阻挡于大门之外,这需要你自行分析你的安全策略、网络结构等等再灵活地运用这些防火墙工具及规则来确保安全。


