LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1211|回复: 3

用Iptables+Red Hat Linux 9.0 做ADSL 路由器

[复制链接]
发表于 2003-7-1 16:21:34 | 显示全部楼层 |阅读模式
说明和约定

#本人首次发布于www.linuxsir.cn
#所有在"[ ]" 中的都是应该直接在命令行敲入的命令

1.前言
最近在帮一个朋友做他们公司的ADSL网关路由, 原来是用FreeBSD做的,现在给他重新用Red Hat Linux 做.

2.安装准备和环境说明
   1) Red Hat Linux 9.0 最小化安装, 直接选择安装类型中的Custom,然后在包安装时选择最下面的选项 "最小化安装", 此模式用于做路由网关已经完全足够

3.软件调整
   1)rp-pppoe
      直接执行它的配置命令即可:
      [ adsl-start ]
      Welcome to the Roaring Penguin ADSL client setup.  First, I will run

      some checks on your system to make sure the PPPoE client is installed

       properly...

       Looks good!  Now, please enter some information:

       USER NAME

       >>> Enter your PPPoE user name : [enter ADSL-Login-UserName here]

       INTERFACE

       >>> Enter the Ethernet interface connected to the ADSL modem

       For Solaris, this is likely to be something like /dev/hme0.

        For Linux, it will be ethn, where 'n' is a number.

        (default eth1): [Enter your right interface here. normaly should be eth0 or        eth1]

        >>> Enter the demand value (default no): [缺省值就可以了, 直接回车]
      
      DNS

       >>> Enter the DNS information here: [server] # server 表示DNS 由ISP 指定
      
         PASSWORD

        >>> Please enter your PPPoE password: [] # ADSL拨号的密码

         >>> Please re-enter your PPPoE password:

          FIREWALLING

         The firewall choices are:

          0 - NONE: This script will not set any firewall rules.  You are responsible

          for ensuring the security of your machine.  You are STRONGLY

          recommended to use some kind of firewall rules.

          1 - STANDALONE: Appropriate for a basic stand-alone web-surfing workstation

          2 - MASQUERADE: Appropriate for a machine acting as an Internet gateway for a LAN

          >>> Choose a type of firewall (0-2): [2]  #还是要防火墙比较好
          ** Summary of what you entered **

          Ethernet Interface: eth1

           User name:          ddtthz!Internet

           Activate-on-demand: No

          DNS:                server

          Firewalling:        NONE

          >>> Accept these settings and adjust configuration files (y/n)? [y] # 完成!

        2) 网络环境描述
            (1) /etc/sysctl.conf
                  net.ipv4.ip_forward = 1

             (2) eth0 接ADSL 线, eth1 (192.168.1.4/24) 连接内部LAN(192.168.1.0/24)
                     
        3)iptables
        对于熟悉Ipchains的管理员应该注意的事项:
        iptables与ipchains的区别

  ·iptables的缺省链的名称从小写换成大写,并且意义不再相同:INPUT和OUTPUT分别放置对目的地址是本机以及本机发出的数据包的过虑规则。
  ·-i选项现在只代表输入网络接口,输入网络接口则使用-o选项。
  ·TCP和UDP端口现在需要用--source-port或--sport(或--destination-port/--dport)选项拼写出来并且必须置于"-p tcp"或"-p udp"选项之后,因为它们分别是载入TCP和UDP扩展的。
  ·以前TCP的"-y"标志现在改为"--syn",并且必须置于"-p tcp"之后。
  ·原来的DENY目标最后改为了DROP。
  ·可以在列表显示单个链的同时将其清空。
  ·可以在清空内建链的同时将策略计数器清零。
  ·列表显示链时可显示计数器的当前瞬时值。
  ·REJECT和LOG现在变成了扩展目标,即意味着它们成为独立的内核模块。
  ·链名可以长达31个字符。
  ·MASQ现在改为MASQUERADE,并且使用不同的语法。REDIRECT保留原名称,但也改变了所使用的语法。

       设计思路:
                         (1) 首先禁止转发任何包,然后再一步步设置允许通过的包。
                             [ /sbin/iptables -P FORWARD DROP ]

                         (2) MASQUERADE the PPP link
                            [ /sbin/iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE ]
         
                         (3) 允许两台特定的机器可以访问外部WWW,以MAC地址为依据

                             [/sbin/iptables -A FORWARD  -m mac --mac-source 00-11-d4-f0-39-53 -p tcp --dport 80 -j ACCEPT
]

                              [/sbin/iptables -A FORWARD  -m mac --mac-source 00-e1-4f-32-39-3f -p tcp --dport 80 -j ACCEPT]

                              [/sbin/iptables -A FORWARD  -m mac --mac-source 00-11-d4-f0-39-53 -p tcp --dport 443 -j ACCEPT
]

                              [/sbin/iptables -A FORWARD  -m mac --mac-source 00-e1-4f-32-39-3f -p tcp --dport 443 -j ACCEPT]

                          (4) 允许SMTP 和POP3 以及IMAP

                               [/sbin/iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 25  -i eth1 -j ACCEPT]

                              [/sbin/iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 110  -i eth1 -j ACCEPT]

                             [/sbin/iptables -A FORWARD -p tcp -s 192.168.1.0/24 --dport 143  -i eth1 -j ACCEPT]

                           (5)拒绝其它机器访问internet www

                              [ /sbin/iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 80 -j REJECT]


                              [/sbin/iptables -A FORWARD -s 192.168.1.0/24 -p tcp --dport 443 -j REJECT]

                          (6)禁止 MSN

                              [/sbin/iptables -A FORWARD -p TCP --dport 1863 -j REJECT ]

                              [/sbin/iptables -A FORWARD -d 64.4.13.0/24 -j REJECT]
                           (7)接收来自FTP的数据通道
                             [/sbin/iptables -A FORWARD -p tcp -s 0/0 --sport ftp-data -d 192.168.1.0/24 -i ppp0 -j ACCEPT]

                           (8)接收来自Internet 的UDP数据包

                              [/sbin/iptables -A FORWARD -p udp -d 192.168.1.0/24 -i ppp0 -j ACCEPT]                        
                           (9)接收来自Internet的非连接请求tcp包

                             [ /sbin/iptables -A FORWARD -p tcp -d 192.168.1.0/24 ! -syn -i ppp0 -j ACCEPT]

                        

                           (10) 在前面限制的基础上,接受来自整个Intranet的数据包过,定义如下规则:

                           [ /sbin/iptables -A FORWARD -s 192.168.1.0/24 -i eth1 -j ACCEPT ]


未完,待续.....
发表于 2003-7-2 20:06:59 | 显示全部楼层
继续,掌声!
发表于 2003-8-23 02:40:00 | 显示全部楼层
就是做了一个IP伪装和转发,以及加一个防火墙,
难道这就是一个路由器?
兄弟我不懂什么样才可以算是一个路由器了?
谁能具体解释一下吗?
发表于 2003-8-25 01:25:23 | 显示全部楼层
这是把路由器最小话了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表