免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: chuizx
打印 上一主题 下一主题

路由中iptables问题。。。 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2008-08-15 14:13 |只看该作者

回复 #47 ssffzz1 的帖子

1、如果你不加上面的配置能否打开网页。   

不加可以打开,都可以打开。

2、帖ifconfig -a的结果。
eth0      Link encap:Ethernet  HWaddr 00:1B:2A:40:01:3A  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
          Interrupt:7 Base address:0x9f00

ipsec0    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:0  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ipsec1    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:0  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ipsec2    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:0  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ipsec3    Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:0  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:10
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

ixp0      Link encap:Ethernet  HWaddr 00:1B:2A:40:01:38  
          inet addr:192.168.0.1  Bcast:192.168.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:4322 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4070 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:375487 (366.6 KiB)  TX bytes:421123 (411.2 KiB)

ixp1      Link encap:Ethernet  HWaddr 00:1B:2A:40:01:39  
          inet addr:192.168.100.56  Bcast:192.168.100.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:11105 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3940 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:256
          RX bytes:875342 (854.8 KiB)  TX bytes:327066 (319.4 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:616 (616.0 B)  TX bytes:616 (616.0 B)

tunl0     Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

3、帖route 的结果。
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.100.0   *               255.255.255.0   U     0      0        0 ixp1
192.168.0.0     *               255.255.255.0   U     0      0        0 ixp0
default         192.168.100.1   0.0.0.0         UG    0      0        0 ixp1

4、详细的说一下你的要求。

是这样的,我现在在做路由WEB,界面上有这样一个功能:网页管制,可以实现对单IP,IP段和所有IP进行网页管制,我现在实现了对这些IP进行禁止:意识是用户填入的网址可以被禁止掉,其他的网址可以上。但我想对这些IP允许只上某个网址,也是用户填的网址。问题就出再这。我把那脚本的原代码贴上:
#!/bin/sh

#write in 2007.11.16 at first

[ -f /etc/lineconf.cfg ] && . /etc/lineconf.cfg

WEBPAGE_CHAIN="nat-webpage"
WEBPAGE_FILE="/etc/kingcan/webpage.cfg"

#del all mangle rule
/sbin/iptables -t nat -D POSTROUTING -j $WEBPAGE_CHAIN 1>null 2>&1  
/sbin/iptables -t nat -F $WEBPAGE_CHAIN 1>/dev/null 2>&1
/sbin/iptables -t nat -X $WEBPAGE_CHAIN 1>/dev/null 2>&1

#add mangle rule
/sbin/iptables -t nat -N $WEBPAGE_CHAIN  1>/dev/null 2>&1
/bin/cat $WEBPAGE_FILE | while read f1 f2 f3 f4
do
    [ -z "$f4" ] && break
    if [ "$f1" = "ALL" ]; then
        ip1=`/bin/echo $LAN1_IPADDR | /usr/bin/cut -d '.' -f1`
                                ip2=`/bin/echo $LAN1_IPADDR | /usr/bin/cut -d '.' -f2`
                                ip3=`/bin/echo $LAN1_IPADDR | /usr/bin/cut -d '.' -f3`
                                ip4="0/24"
                                ip_net="$ip1.$ip2.$ip3.$ip4"
                                if [ "$f3" = "refuse" ]; then
                                                    iptables -t nat -I $WEBPAGE_CHAIN -s $ip_net -d $f4 -j DROP 2>/dev/null
                    else
                                  iptables -t nat -I $WEBPAGE_CHAIN -s $ip_net -d $f4 -j ACCEPT 2>/dev/null  //我要修改的地方
                    fi
    elif [ "$f1" = "ONE" ]; then
                    IPADDR="$f2"
                    if [ "$f3" = "refuse" ]; then
                                                    iptables -t nat -I $WEBPAGE_CHAIN -s $f2 -d $f4 -j DROP 2>/dev/null
                    else
                                  iptables -t nat -I $WEBPAGE_CHAIN -s $f2 -d $f4 -j ACCEPT 2>/dev/null  //我要修改的地方

                    fi
    else
        IPSTART=`/bin/echo $f2 |/usr/bin/cut -d "-" -f1`
                    IPEND=`/bin/echo $f2 |/usr/bin/cut -d "-" -f2`
                    ip1=`/bin/echo "$IPSTART" | /usr/bin/cut -d '.' -f1`
                    ip2=`/bin/echo "$IPSTART" | /usr/bin/cut -d '.' -f2`
                    ip3=`/bin/echo "$IPSTART" | /usr/bin/cut -d '.' -f3`
                    ip_net="$ip1.$ip2.$ip3"
                    #echo "$ip_net"
                    ips=`/bin/echo "$IPSTART" | /usr/bin/cut -d '.' -f4`
                    ipe=`/bin/echo "$IPEND" | /usr/bin/cut -d '.' -f4`
                    ipnum=$(($ipe-$ips))
                    while [ $ipnum -ge 0 ]
                    do
                             if [ "$f3" = "refuse" ]; then
                                                    iptables -t nat -I $WEBPAGE_CHAIN -s $ip_net.$ips -d $f4 -j DROP 2>/dev/null
                             else
                                  iptables -t nat -I $WEBPAGE_CHAIN -s $ip_net.$ips -d $f4 -j ACCEPT 2>/dev/null  //我要修改的地方

                             fi
                             ips=$(($ips+1))
                             ipnum=$(($ipnum-1))
                    done
    fi
done
/sbin/iptables -t nat -I POSTROUTING -j $WEBPAGE_CHAIN 1>null 2>&1

[ 本帖最后由 chuizx 于 2008-8-15 14:15 编辑 ]

论坛徽章:
0
52 [报告]
发表于 2008-08-15 14:20 |只看该作者
原帖由 ssffzz1 于 2008-8-15 14:06 发表
不是的是按照顺序匹配的原则,一旦有匹配就不再继续匹配后续的规则。

如果是这样的话,应该匹配到允许百度后就不应该去匹配DROP了啊,但实际情况是所有都DROP了。也就是断网了!

论坛徽章:
0
53 [报告]
发表于 2008-08-15 14:28 |只看该作者
原帖由 chuizx 于 2008-8-15 14:20 发表

如果是这样的话,应该匹配到允许百度后就不应该去匹配DROP了啊,但实际情况是所有都DROP了。也就是断网了!


个人猜测  不是forward的问题 你的默认规则是 accept 还是deny
input那个最后如果走的是deny 应该导致数据包会不来吧

能不能在自己机器上抓一下包 还有网关上

论坛徽章:
0
54 [报告]
发表于 2008-08-15 14:56 |只看该作者

回复 #53 ssffzz1 的帖子

哈哈  好像可以了,百度能上,其他的不可以。。但是我打iptables -I FORWARD -d www.baidu.com -j ACCEPT这命令时报错  我就改成这样iptables -I FORWARD -d 220.181.6.6-j ACCEPT   220.181.6.6是百度的IP。还有解释些为什么这样就行了呢,,非常感谢你啊!!!!!

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
55 [报告]
发表于 2008-08-15 15:03 |只看该作者
报错的话估计是你的DNS没有配置好。

屡次实验不成功,不是你的错误。因为我给你的脚本中没有放开DNS协议,导致域名无法解析,因此你的BAODU也就上不成了。

哎,看来对IPTABLES没有以前熟悉了,好久没有认真的配置过了。最近总是在搞路由器和防火墙,生疏了啊。

另外,建议你阅读那个IPTABLES教程。

论坛徽章:
0
56 [报告]
发表于 2008-08-15 15:05 |只看该作者

回复 #55 ssffzz1 的帖子

好的 。非常感谢你哈。我也在做这方面。可以的话加我QQ哈  275342410.

论坛徽章:
0
57 [报告]
发表于 2008-08-15 17:53 |只看该作者
iptables -I FORWARD -j DROP
iptables -I FORWARD -d www.baidu.com -j ACCEPT
iptables -I FORWARD -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -p udp -j ACCEPT

怎么把DNS打开,是不是吧53端口打开呢 ?
如下这样可以吗?
iptables -I FORWARD -j DROP
iptables -I FORWARD -d 0/0 -p tcp --dport 53 -j ACCEPT //添加这一行。
iptables -I FORWARD -d www.baidu.com -j ACCEPT
iptables -I FORWARD -d 192.168.0.0/24 -j ACCEPT
iptables -I FORWARD -p udp -j ACCEPT

论坛徽章:
0
58 [报告]
发表于 2008-08-15 19:19 |只看该作者
iptables 不支持域名过滤
iptables 会自动查询DNS把命令中的域名转换成IP地址,对于多地址域名要注意
iptables 用做网关过滤上网时,通常会把FORWARD默认规则置为DROP
     #iptables -P FORWARD DROP

    不能说#iptables -I FORWARD -j DROP 不对,只是不好控制这条规则在全部规则中的位置。

在实现域名过滤最好的方法还是使用代理服务器比较可靠。

[ 本帖最后由 abc3w 于 2008-8-15 19:20 编辑 ]

论坛徽章:
0
59 [报告]
发表于 2008-08-17 17:20 |只看该作者
看了你的IPTABLES-SAVE的结果就知道你添加的规则没有生效,所以才会报错。

论坛徽章:
0
60 [报告]
发表于 2008-08-20 15:01 |只看该作者
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP