1
分类: LINUX
2006-07-23 00:16:15
Firewall,
配置一个standalone server的防火墙:(以下配置语句的格式可以参考每个配置文件的注释)
/etc/shorewall/zones
如果只是搭建一个独立主机的防火墙的话,只需要一个zone,注释掉loc和dmz。
net Net Internet
/etc/shorewall/interfaces
为net区(zone)添加网络接口设置,加上一行:
net eth0 detect norfc1918,routefilter,dhcp,tcpflags,blacklist
/etc/shorewall/policy
注释掉原来的关于loc的行,并且加上允许防火墙到网络的连接(fw表示防火墙自身):
fw net ACCEPT net all DROP info all all REJECT info
/etc/shorewall/rules
定义各种防火墙策略,我现在定义的如下:
ACCEPT net:162.105.0.0/16 fw all AllowWeb net fw
也就是允许北大校内的主机任意连接本机,同时允许任何主机访问的www服务。Shorewall默认会drop广播和多播消息。AllowWeb的定义在/usr/share/shorewall/action.AllowWeb和/usr/share/shorewall/actions.std。
启动和关闭防火墙
/sbin/shorewall start|stop|restart
第一次启动时需要删除/etc/shorewall/startup_disabled。
Ports Scanning, http://www.insecure.org
用来扫描端口和检测系统OS类型,功能非常强大,利用了各种Ports Scanning和OS Detection技术,黑客必备工具:)
A Tutorial:
一些比较常用的和有趣的命令:
普通用户权限下,nmap默认采用TCP连接(-sT)的方式扫描,而在root权限下默认采用SYN扫描,也就是半连接的方式(没有完成TCP连接的三次握手过程)。
在root权限下:(type 'nmap' for help)
#采用SYN Stealth Scan扫描某主机,检测其系统(-O),并打印详细信息(-v) nmap -sS -O -v 192.168.0.1 #扫描某一网段,看有哪些机器开着 nmap -sP 192.168.0.0/24
Intrusion Detection System,
Firewalling, NAT, Packet Mangling,
=========================
shorewall防火墙配置
在单机Linux下,单网卡接口的配置,这个是最简单。也最通俗的啦。本人参考其配置向导,算是对其向导的浓缩翻译和增加自己的理解吧。
首先第一步安装这个防火墙,如果是Debian系统,那么只接apt-get install shorewall就可以了,就自动帮你装好了。如果是别的系统,那你到
安装完毕后,配置文件都在/etc/shorewall下面,但是Debian的例外,在它的向导里头也进行了说明,如果是Debian系统,那么在 /etc/shorewall下面的配置文件是不齐全的,需要把/usr/share/doc/shorewall/default-config相关文件复制过来(其实你自己写也可以的,我最先在8号机上配置就是自己写的)。
接下来了解几个小概念,首先你的内核要2.4或者更高,因为这个防火墙是基于IPTABLES的,不是基于IPCHAINS的,应该说是IPTABLES 的一个更高层面的配置工具,不过要完全学习它,其强度应该不会比学IPTABLES配置来的简单(我个人感受)。然后你应该了解区域概念,在这里主要有三个,一个是DMZ,一个是Net,还有一个就是防火墙自身的区域。什么是DMZ,上过防火墙课程的同学应该不陌生,如果你现在不明白的话,找本防火墙的书籍自己看一下就明白了。Net在用来表示外部网络,而防火墙自身区域就是表示防火墙自己罗,用于保护你的计算机,相当于你的门卫,要和你的计算机打交到,先和这个门卫过招。
现在开始看看几个关键的必须使用到的配置文件,先看第一个文件,名字叫zones就是用来定义区域的,这个文件你可以从 /usr/share/doc/shorewall/examples/one-interface里头拷贝过去,如果你从这里拷贝过去的话,那你不用再定义区域了,保护单机需要用到的区域它已经帮你定义好了。用命令:grep -v "#" zones查看一下文件配置,配置如下:
fw firewall
net ipv4
fw区域就是指向防火墙自身,net就是外部网络了。
具体的说明在zones配置文件里头的#行都有说明(不要跟我说你英文看不懂)。
接着看第二个配置文件,名字叫policy,同样是在/usr/share/doc/shorewall/examples/one-interface拷贝过去,它的默认配置也已经帮你填写好了。配置如下:
#SOURCE DEST POLICY LOG LEVEL LIMIT:BURST
$FW net ACCEPT
net all DROP info
all all REJECT info
第一行说明我们访问外部网络是被允许的;第二行外部网络访问我们将丢弃(All是ShoreWall的保留字,这是它自己定义好的区域),并且日志记录为 Info这个级别(关于日志记录级别在/etc/shorewall下面的shorewall.conf里头配置);第三行拒绝所有其它连接,同样设定日志记录为Info级别。最后一列用来TCP连接的速率,在这里不进行限制。这样的策略配置将导致所有外部对我们的访问全部被阻止,如果你有开什么服务需要让外部访问,那么请在下面的rules配置文件中填写相关服务是被允许访问的。
接着看第三个配置文件,名字叫interfaces。这个配置文件用来指明哪个网卡接口被shorewall所使用,因为我们是单机防护,所以你在/etc/shorewall下面自己建立个interfaces文件,进行如下填写:
fw eth0 222.19.211.255
意思是将防火墙作用在eth0上,然后填写广播地址。
到此为止,你就可以用命令启用shorewall。打入命令shorewall start启动。
当然了,根据如上配置,你所建立的任何服务别人将无法访问,如果想让别人访问你的服务,怎么办呢?那就需要rules这个配置文件,我以ssh服务为例,进行说明
在/etc/shorewall下面建立rules配置文件,填写如下:
ACCEPT all fw tcp 22 - -
这样就OK了。如果还有其它的服务需要让人家访问,填写上相应的端口就可以了。这条语句意思是说,从外部网络访问我们的ssh服务是被允许的,后面两个横杠是其它两个配置选项,其中一个同样是连接速率的限制,令一个好像是日志记录吧(记不太清楚了,呵呵).
接下来shorewall restart 就可以了。当然了,如果你的防火墙配置规则有错误,导致一些服务无法访问的话,即使你停止了shorewall,也没有用,因为它已经将规则添加到 iptables的相关链中,这个时候需要用命令shorewall clear将所有规则清除掉,然后重新配置,再启动一下。