常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

使用IPFILTER设置小型企业防火墙
前往页面 1, 2  下一页
 
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全
阅读上一个主题 :: 阅读下一个主题  
作者 留言
peijun.jiang
半仙


注册时间: 2003-02-20
文章: 26
来自: 陕西省西安市高新技术开发区科技二路西安软件园

文章发表于: Mon 2003-03-24 16:28:21    发表主题: 使用IPFILTER设置小型企业防火墙 引用并回复

作者:peijun.jiang
一、 网络环境
1、主机A:安装freebsd4.7,安装三块网卡fxp0、xl0和xl1。
fxp0为对外网卡,IP:x.x.x.x ISP为我提供的IP地址
xl0为对内公共区域网卡,IP:192.168.0.1
xl1为对内服务提供区域网卡,IP:192.168.80.1
2、主机B:对外提供www服务主机,ip地址为:192.168.80.80
3、主机C:对外提供ftp服务主机,ip:192.168.80.3。
4、其他工作站N台。
二、编译内核

1、#cd /sys/i386/conf
#cp GENERIC kernel_IPF

2、编译kernel_IPF,加入一下选项:
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK

3、#/usr/sbin/config kernel_IPF
#cd ../../compile/kernel_IPF
#make kepend
#make
#make install

4、编辑/etc/rc.rc.conf,打开以下选项:
defaultrouter="x.x.x.1" x.x.x.1为ISP提供的网关
gateway_enable="YES"
ipfilter_enable="YES"
ipnat_enable="YES"
5、重新启动系统:reboot
三、配置防火墙

1、 设置地址转换ipnat。在/etc下新建文件ipnat.rules,内容为:
map fxp0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/tcp
map fxp0 192.168.0.0/24 -> 0/32 portmap tcp/udp 10000:30000
map fxp0 192.168.0.0/24 -> 0/32
map fxp0 192.168.80.0/24 -> 0/32 portmap tcp/udp 300001:60000
map fxp0 192.168.80.0/24 -> 0/32 portmap
rdr fxp0 x.x.x.x/32 port 80 -> 192.168.0.2 port 80
rdr fxp0 x.x.x.x/32 port ftp -> 192.168.0.3 port ftp
rdr fxp0 x.x.x.x/32 port 30001-50000 -> 192.168.80.3 port 30001 tcp

2、设置包过滤ipfilter。在/etc下新建文件ipf.rules,内容为:
block in log quick all with short
block in log quick all with ipopts
block in log quick all with frag
block in log quick all with opt lsrr
block in log quick all with opt ssrr

以上五句为过滤掉可能会带来安全问题的短数据包或具备路由信息的数据包以及防止非法扫描服务器

pass out on xl0 all
pass in on xlo all
pass out on xl1 all
pass in on xl1 all
pass out quick on lo0 all
pass in quick on lo0 all
以上为内部网络界面和loopback网络界面可以自由发送和接受数据包

block out on fxp0 all
以上为屏蔽外部网络界面向外发送数据包

block out log on fxp0 from any to 192.168.0.0/16
block out log quick on fxp0 from any to 0.0.0.0/8
block out log quick on fxp0 from any to 169.254.0.0/8
block out log quick on fxp0 from any to 10.0.0.0/8
block out log quick on fxp0 from any to 127.16.0.0/12
block out log quick on fxp0 from any to 127.0.0.0/8
block out log quick on fxp0 from any to 192.0.2.0/24
block out log quick on fxp0 from any to 204.152.64.0/23
block out log quick on fxp0 from any to 224.0.0.0/3
以上为屏蔽不合法地址的输出数据

pass out log on fxp0 proto tcp/udp from any to any keep state
pass out log on fxp0 proto icmp all keep state
以上为允许TCP 、UDP、ICMP数据包向外发送出去,并且允许回应数据包发送回到内部网络

block in log on fxp0 from 192.168.0.0/16 to any
block in log quick on fxp0 from 10.0.0.0/8 to any
block in log quick on fxp0 from 172.16.0.0/12 to any
block in log quick on fxp0 from 127.0.0.0/8 to any
block in log quick on fxp0 from 192.0.2.0/24 to any
block in log quick on fxp0 from 169.254.0.0/16 to any
block in log quick on fxp0 from 224.0.0.0/3 to any
block in log quick on fxp0 from 204.152.64.0/23 to any
block in log quick on fxp0 from x.x.x.x/32 to any
block in log quick on fxp0 from any to x.x.x.0/32
block in log quick on fxp0 from any to x.x.x.255/32
以上为屏蔽具备内部网络地址的数据包被转发到外部网络

pass in quick on fxp0 proto tcp from any to any port = 80 flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port = ftp flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port = ftp-data flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port 30000 >< 50001 flags S/SA keep state
以上为允许www和ftp进入,并且允许对ftp数据端口的数据进行转发

block in quick on fxp0 all
禁止其他的连接进入fxp0

block in log quick on fxp0 proto icmp from any to any icmp-type redir
block in log quick on fxp0 proto icmp from any to any
block in log quick on fxp0 proto icmp from any to any icmp-type echo
以上为禁止别人ping我得网络

block return-rst in log on fxp0 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on fxp0 proto udp from any to any
以上对其他tcp请求,防火墙回应一个RST数据包关闭连接。对UDP请求,防火墙回应网络不可达到的ICMP包。
或者在/etc/sysctl.conf中加入:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
能够有效地避免端口扫描

3、然后编辑/etc/rc.conf,加入一下命令,让ipfilter和ipnat在系统启动的时候可以自动加载:
ipfilter_enables=”YES”
ipf �CC �Cf /etc/ipf.rules
ipfilter_flags=”-E”

ipnat_enable=”YES”
ipnat_program=”/sbin/ipnat �CCF -f”
ipnat_rules=”/etc/ipnat.rules”

ipmon_enable=”YES”
ipmon_flags=”-D /var/log/ipfilter.log”
4、在/usr/log/建立文件ipfilter.log,并更改其属性为755,这样你的防火墙日志就记录到/var/log/ipfilter.log文件中,可以随时对其进行查看。

四、设置FTP服务器,使其支持被动连接(pasv)
1.Proftpd:编辑你的proftpd的配置文件proftpd.conf,加入一下内容:
MasqueradeAddress x.x.x.x
PassivePorts 30001 50000
2.Pure-ftpd:编辑你的FTP配置文件,加入一下内容:
PassivePortRange 30001 50000
ForcePassiveIP x.x.x.x
3.Serv-U:
a、在serv-U的”本地服务器”�D�D�D”设置”�D�D�D”高级”�D�D�D”PASV端口范围”输入30001 50000
b、在serv-U的”域”�D�D�D”你自己建立的域”�D�D�D”设置”�D�D�D”高级”选中”允许被动模式传送”,” 使用IP”输入:x.x.x.x

_________________
我喜爱网络,所以我每天学习新的知识,虽然我很笨,但是我善于提问。
不会――――――>问―――――――>还不会――――――>再问..........................
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
uqfan
半仙


注册时间: 2003-03-14
文章: 14

文章发表于: Tue 2003-03-25 11:36:42    发表主题: 有一个相对比较严重的问题 引用并回复

对于FIREWALL来说,TCP堆栈的调整也很有必要

最后进行编辑的是 uqfan on Tue 2003-03-25 16:40:15, 总计第 1 次编辑
返回页首
阅览会员资料 发送站内信件
uqfan
半仙


注册时间: 2003-03-14
文章: 14

文章发表于: Tue 2003-03-25 11:43:53    发表主题: 引用并回复

block return-rst in log on fxp0 proto tcp from any to any flags S/SA
与sysctl net.inet.tcp.blackhole=2 矛盾??
返回页首
阅览会员资料 发送站内信件
peijun.jiang
半仙


注册时间: 2003-02-20
文章: 26
来自: 陕西省西安市高新技术开发区科技二路西安软件园

文章发表于: Tue 2003-03-25 17:52:02    发表主题: 引用并回复

uqfan 写到:
block return-rst in log on fxp0 proto tcp from any to any flags S/SA
与sysctl net.inet.tcp.blackhole=2 矛盾??

block return-rst in log on fxp0 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on fxp0 proto udp from any to any
以上对其他tcp请求,防火墙回应一个RST数据包关闭连接。对UDP请求,防火墙回应网络不可达到的ICMP包。
或者在/etc/sysctl.conf中加入:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
能够有效地避免端口扫描
我写的是“或者”,就是说你可以任选其一。

_________________
我喜爱网络,所以我每天学习新的知识,虽然我很笨,但是我善于提问。
不会――――――>问―――――――>还不会――――――>再问..........................
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
webman
道童


注册时间: 2002-07-05
文章: 351

文章发表于: Thu 2003-05-15 16:16:35    发表主题: 引用并回复

为什么都在ipfilter规则配置中都添加“屏蔽具备内部网络地址的数据包被转发到外部网络”
不屏蔽可以吗?


ipmon_flags起什么作用?

ipfilter_flags=”-E”是什么意思?
ipmon_flags=”-D /var/log/ipfilter.log”是什么意思?
返回页首
阅览会员资料 发送站内信件
peijun.jiang
半仙


注册时间: 2003-02-20
文章: 26
来自: 陕西省西安市高新技术开发区科技二路西安软件园

文章发表于: Thu 2003-05-15 17:28:21    发表主题: 引用并回复

webman 写到:
为什么都在ipfilter规则配置中都添加“屏蔽具备内部网络地址的数据包被转发到外部网络”
不屏蔽可以吗?


ipmon_flags起什么作用?

ipfilter_flags=”-E”是什么意思?
ipmon_flags=”-D /var/log/ipfilter.log”是什么意思?

这是对日志进行监视的设置参数,日志放在/var/log/ipfilter.log下。

_________________
我喜爱网络,所以我每天学习新的知识,虽然我很笨,但是我善于提问。
不会――――――>问―――――――>还不会――――――>再问..........................
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页 MSN Messenger
webman
道童


注册时间: 2002-07-05
文章: 351

文章发表于: Fri 2003-05-16 10:26:53    发表主题: 引用并回复

block return-icmp-as-dest(port-unr) in log quick on fxp0 proto udp from any to any



block return-icmp(net-unr) in log on fxp0 proto udp from any to any

写法不同,那功能呢?


最后进行编辑的是 webman on Fri 2003-05-16 15:53:03, 总计第 1 次编辑
返回页首
阅览会员资料 发送站内信件
delphij
精神病


注册时间: 2002-08-07
文章: 10721
来自: San Jose, California

文章发表于: Fri 2003-05-16 15:41:33    发表主题: 引用并回复

我个人倾向于这样:

peijun.jiang 写到:
uqfan 写到:
在/etc/sysctl.conf中加入:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
能够有效地避免端口扫描
我写的是“或者”,就是说你可以任选其一。
返回页首
阅览会员资料 发送站内信件 发送电子邮件 浏览发表者的主页
webman
道童


注册时间: 2002-07-05
文章: 351

文章发表于: Fri 2003-06-27 16:07:08    发表主题: 引用并回复

引用:
block in quick on fxp0 all
禁止其他的连接进入fxp0

block in log quick on fxp0 proto icmp from any to any icmp-type redir
block in log quick on fxp0 proto icmp from any to any
block in log quick on fxp0 proto icmp from any to any icmp-type echo
以上为禁止别人ping我得网络

请问:已经block in quick on fxp0 all 那后面的block还起什么作用呢?
返回页首
阅览会员资料 发送站内信件
新新手
半仙


注册时间: 2002-11-22
文章: 185

文章发表于: Mon 2003-06-30 10:41:37    发表主题: 引用并回复

能不能把命令简单解释一下?
_________________
好好学习,天天向上
返回页首
阅览会员资料 发送站内信件
cookiejar1
半仙


注册时间: 2003-06-29
文章: 12

文章发表于: Mon 2003-06-30 10:47:30    发表主题: 引用并回复

Why not group rules based on interface and direction? IPF will handle that more sufficient.
返回页首
阅览会员资料 发送站内信件 发送电子邮件
webman
道童


注册时间: 2002-07-05
文章: 351

文章发表于: Mon 2003-06-30 13:31:20    发表主题: 引用并回复

顶楼的,问一下:你设的防火墙内部客户端能否访问:在防火墙内对外服务的WWW服务器呢?我是说通过公网地址访问!
返回页首
阅览会员资料 发送站内信件
webman
道童


注册时间: 2002-07-05
文章: 351

文章发表于: Tue 2003-07-01 09:50:55    发表主题: 引用并回复

up一下。
返回页首
阅览会员资料 发送站内信件
游客






文章发表于: Wed 2003-07-02 00:01:16    发表主题: 引用并回复

3、#/usr/sbin/config kernel_IPF
#cd ../../compile/kernel_IPF
#make kepend
#make
#make install

请问这一步是什么意思?
返回页首
jayvan
精神病


注册时间: 2003-03-25
文章: 11251
来自: 广州

文章发表于: Wed 2003-07-02 07:09:10    发表主题: 引用并回复

Anonymous 写到:
3、#/usr/sbin/config kernel_IPF
#cd ../../compile/kernel_IPF
#make kepend
#make
#make install
请问这一步是什么意思?


按kernl_IPF里定制的信息重新编译和安装kernel.
返回页首
阅览会员资料 发送站内信件
新新手
半仙


注册时间: 2002-11-22
文章: 185

文章发表于: Thu 2003-07-03 17:21:34    发表主题: 引用并回复

block out on fxp0 all
以上为屏蔽外部网络界面向外发送数据包

pass out log on fxp0 proto tcp/udp from any to any keep state
pass out log on fxp0 proto icmp all keep state
以上为允许TCP 、UDP、ICMP数据包向外发送出去,并且允许回应数据包发送回到内部网络

block in quick on fxp0 all
禁止其他的连接进入fxp0

上面这几条命令之间不矛盾么?难道“block out on fxp0 all”不影响NAT转换 ,只是禁止fxp0自身发出到外网的请求?“block in quick on fxp0 all ”不影响内网发出的请求么?是不是因为上面那条加了“keep state“的原因?

_________________
好好学习,天天向上
返回页首
阅览会员资料 发送站内信件
bsd_cixi
半仙


注册时间: 2003-08-27
文章: 7
来自: 宁波慈溪

文章发表于: Fri 2003-08-29 10:33:40    发表主题: 引用并回复

我用的是4.8release,在RC.CONF中只要只要增加两条就行了,ipfilter_enable="YES"
ipnat_enable="YES" 就会自动加载ipf.rules 和ipnat.rules
不信可以试试
返回页首
阅览会员资料 发送站内信件 MSN Messenger
fjl
游客





文章发表于: Tue 2003-09-30 11:51:10    发表主题: Re: 使用IPFILTER设置小型企业防火墙 引用并回复

peijun.jiang 写到:
作者:peijun.jiang
一、 网络环境
1、主机A:安装freebsd4.7,安装三块网卡fxp0、xl0和xl1。
fxp0为对外网卡,IP:x.x.x.x ISP为我提供的IP地址
xl0为对内公共区域网卡,IP:192.168.0.1
xl1为对内服务提供区域网卡,IP:192.168.80.1
2、主机B:对外提供www服务主机,ip地址为:192.168.80.80
3、主机C:对外提供ftp服务主机,ip:192.168.80.3。
4、其他工作站N台。
二、编译内核

1、#cd /sys/i386/conf
#cp GENERIC kernel_IPF

2、编译kernel_IPF,加入一下选项:
options IPFILTER
options IPFILTER_LOG
options IPFILTER_DEFAULT_BLOCK

3、#/usr/sbin/config kernel_IPF
#cd ../../compile/kernel_IPF
#make kepend
#make
#make install

4、编辑/etc/rc.rc.conf,打开以下选项:
defaultrouter="x.x.x.1" x.x.x.1为ISP提供的网关
gateway_enable="YES"
ipfilter_enable="YES"
ipnat_enable="YES"
5、重新启动系统:reboot
三、配置防火墙

1、 设置地址转换ipnat。在/etc下新建文件ipnat.rules,内容为:
map fxp0 192.168.0.0/16 -> 0/32 proxy port ftp ftp/tcp
map fxp0 192.168.0.0/24 -> 0/32 portmap tcp/udp 10000:30000
map fxp0 192.168.0.0/24 -> 0/32
map fxp0 192.168.80.0/24 -> 0/32 portmap tcp/udp 300001:60000
map fxp0 192.168.80.0/24 -> 0/32 portmap
rdr fxp0 x.x.x.x/32 port 80 -> 192.168.0.2 port 80
rdr fxp0 x.x.x.x/32 port ftp -> 192.168.0.3 port ftp
rdr fxp0 x.x.x.x/32 port 30001-50000 -> 192.168.80.3 port 30001 tcp

2、设置包过滤ipfilter。在/etc下新建文件ipf.rules,内容为:
block in log quick all with short
block in log quick all with ipopts
block in log quick all with frag
block in log quick all with opt lsrr
block in log quick all with opt ssrr

以上五句为过滤掉可能会带来安全问题的短数据包或具备路由信息的数据包以及防止非法扫描服务器

pass out on xl0 all
pass in on xlo all
pass out on xl1 all
pass in on xl1 all
pass out quick on lo0 all
pass in quick on lo0 all
以上为内部网络界面和loopback网络界面可以自由发送和接受数据包

block out on fxp0 all
以上为屏蔽外部网络界面向外发送数据包

block out log on fxp0 from any to 192.168.0.0/16
block out log quick on fxp0 from any to 0.0.0.0/8
block out log quick on fxp0 from any to 169.254.0.0/8
block out log quick on fxp0 from any to 10.0.0.0/8
block out log quick on fxp0 from any to 127.16.0.0/12
block out log quick on fxp0 from any to 127.0.0.0/8
block out log quick on fxp0 from any to 192.0.2.0/24
block out log quick on fxp0 from any to 204.152.64.0/23
block out log quick on fxp0 from any to 224.0.0.0/3
以上为屏蔽不合法地址的输出数据

pass out log on fxp0 proto tcp/udp from any to any keep state
pass out log on fxp0 proto icmp all keep state
以上为允许TCP 、UDP、ICMP数据包向外发送出去,并且允许回应数据包发送回到内部网络

block in log on fxp0 from 192.168.0.0/16 to any
block in log quick on fxp0 from 10.0.0.0/8 to any
block in log quick on fxp0 from 172.16.0.0/12 to any
block in log quick on fxp0 from 127.0.0.0/8 to any
block in log quick on fxp0 from 192.0.2.0/24 to any
block in log quick on fxp0 from 169.254.0.0/16 to any
block in log quick on fxp0 from 224.0.0.0/3 to any
block in log quick on fxp0 from 204.152.64.0/23 to any
block in log quick on fxp0 from x.x.x.x/32 to any
block in log quick on fxp0 from any to x.x.x.0/32
block in log quick on fxp0 from any to x.x.x.255/32
以上为屏蔽具备内部网络地址的数据包被转发到外部网络

pass in quick on fxp0 proto tcp from any to any port = 80 flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port = ftp flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port = ftp-data flags S/SA keep state
pass in quick on fxp0 proto tcp from any to any port 30000 >< 50001 flags S/SA keep state
以上为允许www和ftp进入,并且允许对ftp数据端口的数据进行转发

block in quick on fxp0 all
禁止其他的连接进入fxp0

block in log quick on fxp0 proto icmp from any to any icmp-type redir
block in log quick on fxp0 proto icmp from any to any
block in log quick on fxp0 proto icmp from any to any icmp-type echo
以上为禁止别人ping我得网络

block return-rst in log on fxp0 proto tcp from any to any flags S/SA
block return-icmp(net-unr) in log on fxp0 proto udp from any to any
以上对其他tcp请求,防火墙回应一个RST数据包关闭连接。对UDP请求,防火墙回应网络不可达到的ICMP包。
或者在/etc/sysctl.conf中加入:
net.inet.tcp.blackhole=2
net.inet.udp.blackhole=1
能够有效地避免端口扫描

3、然后编辑/etc/rc.conf,加入一下命令,让ipfilter和ipnat在系统启动的时候可以自动加载:
ipfilter_enables=”YES”
ipf �CC �Cf /etc/ipf.rules
ipfilter_flags=”-E”

ipnat_enable=”YES”
ipnat_program=”/sbin/ipnat �CCF -f”
ipnat_rules=”/etc/ipnat.rules”

ipmon_enable=”YES”
ipmon_flags=”-D /var/log/ipfilter.log”
4、在/usr/log/建立文件ipfilter.log,并更改其属性为755,这样你的防火墙日志就记录到/var/log/ipfilter.log文件中,可以随时对其进行查看。

四、设置FTP服务器,使其支持被动连接(pasv)
1.Proftpd:编辑你的proftpd的配置文件proftpd.conf,加入一下内容:
MasqueradeAddress x.x.x.x
PassivePorts 30001 50000
2.Pure-ftpd:编辑你的FTP配置文件,加入一下内容:
PassivePortRange 30001 50000
ForcePassiveIP x.x.x.x
3.Serv-U:
a、在serv-U的”本地服务器”�D�D�D”设置”�D�D�D”高级”�D�D�D”PASV端口范围”输入30001 50000
b、在serv-U的”域”�D�D�D”你自己建立的域”�D�D�D”设置”�D�D�D”高级”选中”允许被动模式传送”,” 使用IP”输入:x.x.x.x
Shocked Shocked
返回页首
fjl
游客





文章发表于: Tue 2003-09-30 11:52:22    发表主题: Re: 有一个相对比较严重的问题 引用并回复

uqfan 写到:
对于FIREWALL来说,TCP堆栈的调整也很有必要
Smile [color=olive][/color]
返回页首
猫头鹰
半仙


注册时间: 2003-06-26
文章: 7

文章发表于: Thu 2003-10-02 19:54:31    发表主题: 请教,只有一个Internet IP 地址能不能作端口转发? 引用并回复

单位有一局域网,接了一根光纤上网。用freebsd4.8做了一个代理服务器,是透明代理没有装squid. 现在我想用一台在局域网的机子建一个web服务器,想通过代理作端口转发,让internet上的用户能看见网页.
另外web服务器作好以后还想通过端口转发向internet开放ftp来维更新web。
在网上看了很多资料,也动手做了结果把单位的局域网弄得好几次都上不了网。小弟很着急,希望大哥大姐知道的告诉小弟。
小弟Email:kaizhe@yahoo.com.cn
返回页首
阅览会员资料 发送站内信件
从以前的文章开始显示:   
发表新文章   这个论题已经被锁定,您不能发表、回复或者编辑文章。    FreeBSD China -> 安装-配置-优化-安全 论坛时间为 北京时间
前往页面 1, 2  下一页
1页/共2

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标