协管网_神仙的blog
分页: 1/48 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]
FREEBSD下安装配置防火墙ipfw............

第一
# ee /etc/rc.conf
复制内容到剪贴板代码:
firewall_enable="YES"
firewall_type="open"
firewall_script="/etc/ipfw.rules"
firewall_logging="YES"
====================================================
第二
# ee /etc/sysctl.conf
复制内容到剪贴板代码:
net.inet.ip.fw.verbose=1
net.inet.ip.fw.verbose_limit=5
===============================
第三

编辑防火墙规则

# ee /etc/ipfw.rules
复制内容到剪贴板代码:
# 具体语法请参考
http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/firewalls-ipfw.html
复制以下内容到ipfw.rules里面

##################
#启动时重载规则列表#
##################
ipfw -q -f flush
#
#############
#设置命令前缀#
#############
cmd="ipfw -q add"
#
#############
#设置DNS地址#
#############
dns="210.22.70.3"
#
################
#公网网卡界面名称#
################
pif="bge0"
#
################
#不限制loopback#
################
$cmd 00100 allow all from any to any via lo0
#
###############
#允许自定义规则#
###############
$cmd 00200 check-state
#
###############
#允许与DNS通讯#
###############
$cmd 00300 allow tcp from any to $dns 53 out via $pif setup keep-state
$cmd 00400 allow udp from any to $dns 53 out via $pif keep-state
#
#####################################################
#允许http连接(limit src-addr意为限制同一地址连接数量)#
#####################################################
$cmd 00500 allow tcp from any to any 80 out via $pif setup keep-state
$cmd 00600 allow tcp from any to me 80 in via $pif setup limit src-addr 10
#
######################################################
#允许https连接(limit src-addr意为限制同一地址连接数量)#
######################################################
$cmd 00700 allow tcp from any to any 443 out via $pif setup keep-state
$cmd 00800 allow tcp from any to me 443 in via $pif setup limit src-addr 10
#
#######################################################
#允许收发电子邮件(limit src-addr意为限制同一地址连接数量)#
#######################################################
$cmd 00900 allow tcp from any to any 25 out via $pif setup keep-state
#$cmd 01000 allow tcp from any to me 25 in via $pif setup limit src-addr 1
#
$cmd 01100 allow tcp from any to any 110 out via $pif setup keep-state
#$cmd 01100 allow tcp from any to me 110 in via $pif setup limit src-addr 1
#
#########################
#允许CVSP和PORT安装/更新#
#########################
$cmd 01200 allow tcp from any to any via $pif setup keep-state uid root
#
##########
#允许ping#
##########
$cmd 01300 allow icmp from any to any out via $pif keep-state
#$cmd 01300 allow icmp from any to any in via $pif keep-state
#
####################################################
#允许FTP连接(limit src-addr意为限制同一地址连接数量)#
####################################################
$cmd 01400 allow tcp from any to any 21 out via $pif setup keep-state
$cmd 01500 allow tcp from any to any 21 in via $pif setup limit src-addr 2
#
########################################################
#允许SSH远程连接(limit src-addr意为限制同一地址连接数量)#
########################################################
$cmd 01600 allow tcp from any to any 22 out via $pif setup keep-state
$cmd 01700 allow tcp from any to any 22 in via $pif setup limit src-addr 2
#
######################
#禁止此规则以外的所有连接#
######################
$cmd 60000 deny log all from any to any

笔者公司共有10台Web服务器,使用Redhat Linux 9作为操作系统,分布在全国各大城市,主要为用户提供HTTP服务。曾经有一段时间不少用户反映有的服务器访问速度缓慢,甚至不能访问,检查后发现是受到了DDoS攻击(分布式拒绝服务攻击)。由于服务器分布太散,不能采用硬件防火墙的方案,虽然IPtables功能很强大,足以应付大部分的攻击,但Linux系统自身对DDoS攻击的防御力本来就弱,只好另想办法了。

一、Freebsd的魅力

发现Freebsd的好处是在一次偶然的测试中,在LAN里虚拟了一个Internet,用一台Windows客户端分别向一台Windows Server、Linux Server和一台Freebsd在无任何防范措施的情况下发送Syn Flood数据包(常见的DDoS攻击主要靠向服务器发送Syn Flood数据完成)。Windows在达到10个包的时候就完全停止响应了,Linux在达到10个数据包的时候开始连接不正常,而Freebsd却能承受达100个以上的Syn Flood数据包。笔者决定将公司所有的Web服务器全换为Freebsd平台。

在使用Freebsd后,的确过了一段时间的安稳日子。不过近日又有用户再次反映网站不能正常访问,表现症状为用户打开网页速度缓慢,或者直接显示为找不到网站。用netstat ?a查看到来自某IP的连接刚好50个,状态均为FIN_WAIT 1,这是属于明显的DDoS攻击,看来Freebsd没有防火墙也不是万能的啊,于是就想到了装防火墙。

看了N多资料,了解到Freebsd下最常见的防火墙叫IP FireWall,中文字面意思叫IP防火墙,简称IPFW。但如果要使用IPFW则需要编译Freebsd系统内核。出于安全考虑,在编译结束后,IPFW是默认拒绝所有网络服务,包括对系统本身都会拒绝,这下我就彻底“寒”了,我放在外地的服务器可怎么弄啊?

大家这里一定要小心,配置稍不注意就可能让你的服务器拒绝所有的服务。笔者在一台装了Freebsd 5.0 Release的服务器上进行了测试。

二、配置IPFW

其实我们完全可以把安装IPFW看作一次软件升级的过程,在Windows里面,如果要升级一款软件,则需要去下载升级包,然后安装;在Freebsd中升级软件过程也是如此,但我们今天升级的这个功能是系统本身已经内置了的,我们只需要利用这个功能即可。打开这个功能之前,我们还要做一些准备工作。

下面开始配置IPFW的基本参数。

Step1:准备工作

在命令提示符下进行如下操作:

#cd /sys/i386/conf

如果提示没有这个目录,那说明你的系统没有安装ports服务,要记住装上。

#cp GENERIC ./kernel_IPFW

Step2:内核规则

用编辑器打开kernel_IPFW这个文件,在该文件的末尾加入以下四行内容:

options IPFIREWALL

将包过滤部分的代码编译进内核。

options IPFIREWALL_VERBOSE

启用通过Syslogd记录的日志;如果没有指定这个选项,即使你在过滤规则中指定了记录包,也不会真的记录它们。

options IPFIREWALL_VERBOSE_LI

MIT=10

限制通过Syslogd记录的每项包规则的记录条数。如果你受到了大量的攻击,想记录防火墙的活动,但又不想由于Syslog洪水一般的记录而导致你的日记写入失败,那么这个选项将会很有用。有了这条规则,当规则链中的某一项达到限制数值时,它所对应的日志将不再记录。

options IPFIREWALL_DEFAULT_TO

_ACCEPT

这句是最关键的。将把默认的规则动作从 “deny” 改为 “allow”。这句命令的作用是,在默认状态下,IPFW会接受任何的数据,也就是说服务器看起来像没有防火墙一样,如果你需要什么规则,在安装完成后直接添加就可以了。

输入完成后保存kernel_IPFW文件并退出。

三、编译系统内核

由于Freebsd和Linux一样,都是公开源代码的操作系统,不像Windows那样代码是封装了的,出了问题我们只能猜测,或者咨询微软公司;由于Freebsd系统内核在不断升级,我们为了使用新版本中的功能,或者定制一个更高效、更稳定的系统,通常需要编译系统内核。

当然,我们在这里编译内核,是为了能得到一个更高效的系统,而不是使用新版本的功能;

在编译的过程中,可能会提示一些错误,为了尽可能减少错误提示,我们已将配置文件缩减到了最少,如果再出现什么错误提示,请仔细检查是否有输入错误等细小问题。

Step1:编译所需的命令

在命令行上执行如下命令:

#/usr/sbin/config kernel_IPFW

执行结束后会出现如下提示:Kernel build directory is ../compile/kernel_IPFW Don`t forget to do a make depend`

#cd ../compile/kernel_IPFW

在这个地方注意一下,Freebsd 4.X版本是../../compile/kernel_IPFW,但Freebsd 5.0版本却是../compile/kernel_IPFW。

#make

#make install

Step2:开始编译内核

根据系统性能差异,时间也有不同,普通双P4 XEON 1GB内存的服务器大约5分钟左右即可完成。

四、加载启动项

编译完成了,我们要让系统自动启动IPFW并记录日志,需要进行如下操作:

Step1:编辑器编辑/etc/rc.conf

加入如下参数:

firewall_enable=`YES`

激活Firewall防火墙

firewall_script=`/etc/rc.firewall`

Firewall防火墙的默认脚本

firewall_type=`/etc/ipfw.conf`

Firewall自定义脚本

firewall_quiet=`NO`

启用脚本时,是否显示规则信息;假如你的防火墙脚本已经不会再有修改,那么就可以把这里设置成“YES”了。

firewall_logging_enable=`YES`

启用Firewall的Log记录

Step2:编辑/etc/syslog.conf文件

在文件最后加入如下内容:

!ipfw

*.* /var/log/ipfw.log

这行的作用是将IPFW的日志写到/var/log/ipfw.log文件里,当然,你也可以为日志文件指定其他目录。

以上步骤完成后重启电脑。

五、使用并保存规则

完成后,你就会发现你能用SSH登录你的远程服务器了。

Step1:测试

刚登录的时候你不会发现你的系统发生了什么变化,但你可以试试以下这个命令:#ipfw show,将输出以下结果:65535 322 43115 allow ip from any to any。它告诉我们,IPFW已经成功启用,而且允许任何的连接。

Step2:使用

在命令提示符下输入如下命令:#ipfw add 10001 deny all from 218.249.20.135 to any。

拒绝来自218.249.20.135的任何服务,执行完成后,你就会发现来自IP218.249.20.135的所有服务都会被拒绝。

Step3:保存

把这句代码加在/etc/rc.firewall文件里:ipfw add 10001 deny all from 218.249.20.135 to any,运行如下这个命令:#sh /etc/rc.firew

all

表示保存到rc.firewall里面时,不需要前面的#号,然后重新载入IPFW规则。

或者重启一次你的系统,你的IPFW就生效了,只要你不手动解除,来自218.249.20.135的所有信息全部都会被拒绝。


[不指定 2008/08/25 12:36 | by tinkoko ]
[不指定 2008/08/21 18:17 | by tinkoko ]

哎呀呀!郁闷死了~~

配置矿出错!!!还是不理解阿不了解!

继续安慰下自己!


1。  cd  /usr/ports/ftp/vsftp

make install clean


2. 启动
%/usr/local/libexec/vsftpd &

如果出错!
vsftpd: not configured for standalone, must be started from inetd

ee /usr/local/etc/vsftpd.conf

添加 listen=YES


然后再启动!应该就可以了!

添加系统帐户去测试!~~~
关于短信监控报警!
惭愧!写这个时候由于环境关系!始终不成功!

sms至少要求glibc2.4以上版本!

centos4.4不符合!但是要升级glibc。比较麻烦!查看很多文章,如果不好的话系统会崩溃!
这台服务器里面有些东西很重要的!
担心被头说我一顿!所以就放着!

最近一直忙着freebsd,一直mail系统~~~~~~~~~~~

临时转别人的!!日后来更新!~~~


sms短信报警,先临时借鉴下itnms里面的介绍!


这个在ubuntu上的做法
centos类似
1.首先手机要开通中国移动的飞信业务。目前使用飞信发送短信是免费的。
2
下载飞信的linux客户端程序.解开包后只有一个文件sms
ldd以下就知道这个命令需要的环境,至少glibc2.4以上!版本就是centos5.x(这个很重要)

3。#host-notify-by-sms   //发送短信报警
define command {
       command_name      host-notify-by-sms
       command_line      /root/shell/duanxin.sh 138********* "Host $HOSTSTATE$ alert for $HOSTNAME$! on '$DATETIME$' " $CONTACTPAGER$
       }

#service notify by sms  //发送短信报警
define command {
       command_name     service-notify-by-sms
       command_line     /root/shell/duanxin.sh 138******** "'$HOSTADDRESS$' $HOSTALIAS$/$SERVICEDESC$ is $SERVICESTATE$" $CONTACTPAGER$
       }




_____________________________sms.pl________________________________________
#!/usr/bin/perl
use strict;
use Fcntl qw(:flock);
open SMS, ">/home/sms/sms.txt" or die "NO OK";
flock(SMS,LOCK_EX);
my $mobile=pop;
print SMS "sms $mobile  @ARGV\n";
print SMS  "quit\n";
system "/home/sms/fetion -u 飞信手机号 -p 密码  -b /home/sms/sms.txt";
#unlink "/home/sms/sms.txt";
flock(SMS,LOCK_UN);
close SMS;
#unlink "/home/sms/sms.txt";
分页: 1/48 第一页 1 2 3 4 5 6 7 8 9 10 下页 最后页 [ 显示模式: 摘要 | 列表 ]