FWTK是一套用来建立和维护内部网络防火墙的工具集。它包含了许多独立的组件,大部分组件是代理应用程序,如telnet、FTP、rlogin、 sendmail、HTTP、X windows等。与Squid、Socks等同类软件相比,它的突出优点是不但可以从本地和目标地的主机名、IP地址来指定访问规则,而且可以根据访问操作来允许或拒绝某个执行命令,充分地体现了应用层网关的优势。本文以telnet为例介绍如何利用FWTK配置Linux上的代理服务器型防火墙。
系统环境和设计目标
系统配置环境:Red Hat Linux 6.1、FWTK v2.1、双网卡(一块用于外部网络,一块用于内部网络),设192.9.200.* 为外部网络,10.1.1.*为内部子网。
设计目标:
● 内部网络用户可以telnet到任意外部主机上;
● 外部网络用户必须在经过认证许可后才可以telnet到内部主机上;
● 只允许10.1.1.5 telnet到防火墙主机上(用于远程管理);
● 所有用户通过防火墙代理时,只允许使用普通用户权限;
● 限制超时设置为300秒钟;
● 可以自行编辑防火墙上的提示信息。
安装FWTK
1.新建目录/home/fwtk,将fwtk.tar.z拷贝到该目录中,并解包:tar xzvf fwtk.tar.z。
2.准备编译:
● 用Makefile.config.linux替换掉Makefile.config;
● 将Makefile.config中AUXLIB=-lcrypt一行前的#号去掉;
● 在auth/Makefile中的CFLAGS=-I…$(COPT)一行后添加-I /usr/inclue/db1。
3.编译:make。
4.安装:make install,所有的可执行文件默认安装在/usr/local/etc目录中。
制作配置文件
1.配置/etc/services。给telnet代理(简称tn-gw)增加端口号:
tn-gw 3333/tcp
2.配置/etc/inetd.conf。将通常的telnet端口移至3333,telnet代理在23号端口监听(用高端口保护正常telent服务,netacl是FWTK提供的TCP包装程序,功能和tcpd相似):
telnet stream tcp nowait root /usr/local/etc/tn-gw tn-gw
tn-gw stream tcp nowait root /usr/local/etc/netacl in.telnetd
执行命令killall -HUP inetd使改动生效。
3.配置/usr/local/etc/netperm-table(其中.txt文件的内容由自己编写,但一定要保证和directory的路径一致):
● 控制登录防火墙主机(正常telnet)部分:
#允许本地登录
netacl-in.telnetd: permit-hosts 127.0.0.1 -exec /usr/sbin/in.telnetd