中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 操作系统 > 服务器 > 代理服务器
GNU/Linux和FreeBSD上的NAT网关安装
作者:未知 时间:2005-09-13 18:52 出处:ChinaUnix.net 责编:chinaitpower
              摘要:GNU/Linux和FreeBSD上的NAT网关安装

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!绝对不要远程调试防火墙配置!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

硬件需求:
    双网卡
    内存 > 64M
    硬盘 > 1G

注:
NAT网关本身效率都很高,所以即使在配置很低的机器上运行效率也是足够的(仍建议尽可能多的增加内存 > 256M),
如果需要记录日志做分析,则会产生很大的I/O操作并占用大量硬盘空间,建议使用SCSI硬盘并做日志轮循。

假设2块网卡分别按照以下网段设置:
内网网卡IP地址:192.168.0.1/255.255.255.0       本身为网关
外网网卡IP地址:111.222.111.222/255.255.255.192 网关:111.222.111.1

安全策略:

作为网关,安全性非常重要,建议除了远程登录用的SSH外,尽可能多的停掉所有不相关服务。 
本安装文档只是最简单的配置,没有任何安全过滤规则,更多安全过滤规则需要根据实际情况补充。 
FreeBSD 4.7上用IPFIREWALL做NAT网关
安装FreeBSD系统时包含开发平台(gcc工具等),因为内核缺省不支持地址转发和防火墙,所以需要重新编译内核。

内核编译
========
由于内核缺省不支持地址转发和防火墙,所以需要重新编译内核:
#cd /usr/src/sys/i386/conf/
#cp GENERIC GATEWAY
#vi GATEWAY

修改后的内核配置:修改了名称和增加了IPFIREWALL的相关选项:
#diff GATEWAY GENERIC 
25c25
< ident         GATEWAY
---
> ident         GENERIC
62,64d61 加入IPFIREWALL选项
< options IPFIREWALL
< options IPFIREWALL_VERBOSE
< options IPDIVERT

重新编译:大约需要30分钟左右
#/usr/sbin/config GATEWAY
#cd ../../compile/GATEWAY/
#make depend; make; make install

重启机器一次,确认新的KERNEL正常启动。

修改rc.conf中的相关配置:假设内网使用网卡fxp0,外网网卡使用xl0
###############################################
gateway_enable="YES"

ifconfig_fxp0="inet 192.168.0.1  netmask 255.255.255.0"
ifconfig_xl0="inet 111.222.111.222  netmask 255.255.255.0"
defaultrouter="111.222.111.1"

natd_enable="YES"
natd_interface="xl0"

firewall_enable="YES"
firewall_type="open"
###############################################

防火墙过滤规则设置
==================
ipfw的规则是通过运行/etc/rc.firewall这个脚本生效的,rc.firewall脚本会检查rc.conf中firewall_type等配置,然后根据firewall_type定义的模式"open" "client" "simple"等切换到rc.firewall中相应部分执行。

一个安全的防火墙本身是一个非常复杂的策略。为了方便配置,可以以rc.firewall文件为基础,在各种缺省模式的基础上加入自己的规则。缺省最简单的防火墙配置是在rc.conf里设置使用"open"模式,

注意:修改rc.firewall配置建议从最简单的"open"模式开始,而且让修改生效前,一定将旧的成功运行的配置文件备份成rc.firewall.bak,便于以后的错误后恢复,如果防火墙配置错误可能导致远程无法登陆,因此修改防火墙配置一定要在服务器终端界面进行。

日志记录
========
文件系统优化: 使用异步文件系统提高性能async
vi /etc/fstab
/dev/da0s1f             /tmp            ufs     rw,async        2       2
/dev/da0s1g             /usr            ufs     rw,async        2       2

修改rc.firewall中"open"模式中的配置:打开记录日志
        #${fwcmd} add 65000 pass all from any to any
        ${fwcmd} add 65000 pass log all from any to any

修改/etc/newsyslog.conf 增加security日志的存储上限从100k到 10000K
/var/log/security                       600  10    10000        *     Z

新的配置生效
============
修改防火墙配置后,可以用
#sh /etc/rc.firewall
让新的配置生效

常用命令
========
ipfw list:显示目前的配置规则:
#ipfw list
00050 divert 8668 ip from any to any via xl0
00100 allow ip from any to any via lo0
00200 deny ip from any to 127.0.0.0/8
00300 deny ip from 127.0.0.0/8 to any
65000 allow log ip from any to any
65535 deny ip from any to any

ipfw show:显示各种规则的统计信息
# ipfw show
00050 1008267  632203534 divert 8668 ip from any to any via vr0
00100       0          0 allow ip from any to any via lo0
00200       0          0 deny ip from any to 127.0.0.0/8
00300       0          0 deny ip from 127.0.0.0/8 to any
65000 1782079 1257247553 allow ip from any to any
65535      36      31871 deny ip from any to any

RedHat 8上用iptables做NAT网关

将下列内容加入/etc/rc.local文件中:eth0绑内网IP eth1绑外网IP
################
echo 1 > /proc/sys/net/ipv4/ip_forward
/sbin/modprobe ip_tables
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_nat
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp
/sbin/iptables --flush INPUT
/sbin/iptables --flush FORWARD
/sbin/iptables --flush POSTROUTING --table  nat
/sbin/iptables --policy FORWARD DROP
/sbin/iptables --table nat --append POSTROUTING --out-interface eth1 --source 192.168.0.0/24 --jump MASQUERADE
/sbin/iptables --append FORWARD --in-interface eth1 --match state --state ESTABLISHED,RELATED --jump ACCEPT
/sbin/iptables --append FORWARD --source 192.168.0.0/24 --jump ACCEPT
################

iptables --list查看过滤表

 段誉 回复于:2003-07-11 09:15:53
支持!!请多多发表这样的文章!!
谢谢!

 startdd 回复于:2003-07-11 12:10:38
感觉这个版人气不是很旺!

 north 回复于:2003-07-11 13:30:08
NAT的地址和端口重定向也比较常用,能加上就好了。

 段誉 回复于:2003-07-11 14:43:40
[quote:e22da15ec7="startdd"]感觉这个版人气不是很旺![/quote:e22da15ec7]     

是啊,正需要大侠前来增加人气,壮大这个板子, ops:  

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有