| 网站首页 | 科技前沿 | it产品项目 | 软件项目 | 硬件项目 | 发明专利 | 商业城 | 资源中心 | 博客 | 论坛 |  子站: it客栈 多奥网
会员中心
会员注册
繁體中文
推荐:索引 linux arm 手机 嵌入式 os wince dsp 音乐 游戏
 站内搜索:
项目资讯 资源中心
您现在的位置: 爱问科技网 >> 软件项目 >> linux >> 文章正文
linux-2.4.x上单网卡网关的实现           
linux-2.4.x上单网卡网关的实现
作者:佚名 文章来源:不详 更新时间:2007-7-8 11:23:27
在linux-2.2.x上,一般采用ipchains配置防火墙。到了linux-2.4.x,ipchains被功能更强大的iptables取代。目前最新版本为iptables-1.2.8。在编译kernel时,应加入iptables支持(linux-2.4.x kernel中依然有ipchains支持)下面以iptables-1.2.7a为例说明防火墙的配置。关于iptables的使用/原理清浏览:
http://www.netfilter.org/document.tion/
对于单网卡要实现网关,必须让网卡有两个ip-一个内部ip,一个外部ip,其实也就是虚拟出一个网卡来。
 
<1>如何设置单网卡多ip?
  在/etc/sysconfig/network-scripts下,我们会看到ifcfg-eth0这样的文件,通常网卡0对应ifcfg-eth0,网卡1对应ifcfg-eth1,以此类推。对于只有一个网卡的系统,则只有ifcfg-eth0这个文件了。
  创建/etc/sysconfig/net-work-scripts/ifcfg-eth0:0,其内容可如下:
DEVICE=eth0:0 /*该处指定了虚拟的网卡设备名,必须和它所在的文件的文件名一致*/
USERCTL=no
ONBOOT=yes    /*启动时生效*/
BOOTPROTO=
BROADCAST=192.168.2.255
NETWORK=192.168.2.0
NETMASK=255.255.255.0
IPADDR=192.168.2.1 /*该网卡的内部网地址*/
 
   重启之后,我们就能看到两个网卡了:eth0和eth0:0。如果还要增加多个ip,则类似创建ifcfg-eth0:x,最多可有255个ip.当然啦,如果要载网卡1上设多个ip,则应该创建ifcfg-eth1:x。
   
   现在,我们的系统已经具备了作路由器/网关的条件了---两个网卡。
假设,内网为192.168.2.0,外部网路为10.63.18.0,外部网关为10.63.18.1。
 
<2>  参考ifcfg-eth0:0修改ifcfg-eth0,指定其ip和netmask等:
    DEVICE=eth0
    ONBOOT=yes
    #BOOTPROTO=dhcp
    IPADDR=10.63.18.97 /*在外部网络中的ip*/
    NETWORK=10.63.18.0
    NETMASK=255.255.255.0
    BROADCAST=10.63.18.255
    /*在命令行中设定ip/route add -net等应该也可以*/
 
<3> 修改/etc/sysconfig/network如下:
    NETWORKING=yes  
    FORWARD_IPV4=yes  /*必须*/
    HOSTNAME=server  
    GATEWAY=10.63.18.1  
    GATEWAYDEV=eth0  /*指定默认网关和设备,配置eth0*/
 
    #外部网关为10.63.18.1  
 
<4> 配置iptables,可建立sh文件route-cfg.sh如下:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward  /*千万别漏了这一句*/
modprobe iptable_nat
modprobe ip_conntrack
modprobe ip_conntrack_ftp
iptables -F INPUT
iptables -F FORWARD
iptables -F POSTROUTING -t nat
iptables -t nat -F
iptables -P FORWARD DROP
iptables -A FORWARD -s 192.168.2.0/24 -j ACCEPT
iptables -A FORWARD -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -t nat -A POSTROUTING -o eth0 -s 192.168.2.0/24 -j SNAT --to 10.63.18.97
 
重启计算机,运行route-cfg.sh(或者将其加入到/etc/rc.d/rc.local自动启动),设定内部网其他计算机的默认网关设为192.168.2.1。
前面的<1>-<3>步也可以用命令行方式来实现:
#ifconfig eth0……..
#ifconfig eth0:0 …….
 
<5>MAC和IP的绑定
  为了安全起见,防止到用ip,应该邦定ip&mac。方法如下:
  建立/etc/ethers文件,其中包含正确的IP/MAC对应关系,格式如下:
    192.168.2.32 08:00:4E:B0:24:47
  然后在/etc/rc.d/rc.local最后添加:
    arp –f

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    相关文章
    关于在 win2000 下安装 …
    SQL中代替Like语句的另一…
    获取Windows / System /…
    print+Photoshop超简易上…
    为动态创建MovieClip指定…
    CSS中 display 与 visib…
    ASP中使用Form和QuerySt…
    解析ASP的Application和…
    ASP中遍历和操作Applica…
    献给linux下的perl黑客们…
    更多内容
    专题栏目
    更多内容
    最新推荐 更多内容
    | 设为首页 | 加入收藏 | 关于我们 | 版权申明 | 友情链接 | 谷歌 雅虎 百度 | 管理登录 | 

    爱问科技网
    爱问科技网

    21aw@21aw.com
    粤icp备06099319