Chinaunix

标题: iptables限制ip访问 [打印本页]

作者: oufeng    时间: 2007-08-08 11:35
标题: iptables限制ip访问
各们高手:
    大家好!
   小弟现在有一个问题想请教。我现在有一个IP: 192.168.0.1,我想只允许192.168.0.0网段的可以访问,而其它的任何一个子网都不能访问,因为我们司有很多子网的,请问用iptables可以做到吗?还请大家赐教?
作者: oufeng    时间: 2007-08-08 12:18
对以上补充一下,我的服务器是两个网卡,eth0:192.168.128.171 eth1:192.168.0.1,我想eth0可以任何网段都可以访问。而192.168.0.1只能192.168.0.0网段才能访问。请问该如何设置呢?
作者: iamshiyu    时间: 2007-08-08 12:47
你的上个贴我不是回答了么?
作者: iamshiyu    时间: 2007-08-08 12:48
再说你也没说清网络结构,怎么帮你?
作者: oufeng    时间: 2007-08-08 12:57
是呀,我上贴没有说明好网络结构,是我的错,这次可否请你在帮帮我呀。
作者: oufeng    时间: 2007-08-08 13:05
具休情况是这样的,我有一个服务器,两个网卡,eth0:192.168.128.171   eth1:192.168.0.1 ,而eth0 是正常提供服务samba服务,就不对其进行限制了,就是让每一个网段可以访问。而eth1我是用于heartbeatg通信的,现在是在其它网段可以ping通192.168.0.1这个IP,现在偶尔出现这样的问题,我ping这个服务器的主机名是解析到192.168.0.1去了,这样就客户端无法加入samba网域。我的想法是通过iptables来对eth1进行限制,让它只能和本网段(192.168.0.0)可以能通信,而其它网段就不要通信,也就是说在其它网段就不能ping通192.168.0.1这个IP了。
           我这边的具休情况就是这样,还请赐教!谢谢意
作者: oufeng    时间: 2007-08-08 13:11
因为我这边是一个机子装两个网卡,所以我想请教一下,在iptabels后面是否可以加上eth1,来说明只是征对eth1进行控制,而不会限制到eth0呢,谢谢!
作者: iamshiyu    时间: 2007-08-08 14:06
你是说-o eth1或者-i eth1么?我还是不明白到底问题出在哪里,是说0.1那个段的ip不能访问samba了么?还是说samba开放的那个段有机器能访问0.1那个段了让你觉得不爽?
作者: oufeng    时间: 2007-08-08 16:37
你好:
    我刚才有事出去了一下,所以没有即时回复,请见谅。我的问题就是你说的最后一种。samba服务是征对全公司开放的,所以不能限制。现在就是在其它网段能访问到192.168.0.1让我觉得很不爽。我想只让192.168.0.1能和192.168.0.2通信,和其它机子都不能通信,不知你理解我的意思没有?谢谢!
作者: oufeng    时间: 2007-08-08 17:52
我想192.168.0.1只能和192.168.0.2通信,而不能和其它任何一个IP通信。我大概写了一下,你帮我看一下。:
iptables -A INPUT -i eth1 -s 192.168.0.2 -p /tcp -j ACCEPT
可是执行后,还是在其它网段可以ping 通192.168.0.1,请帮我分析一下应如何实现我的这个想法,先谢了。
作者: oufeng    时间: 2007-08-08 18:12
我想192.168.0.1只能和192.168.0.2通信,而不能和其它任何一个IP通信。我大概写了一下,你帮我看一下。:
iptables -A INPUT -i eth1 -s 192.168.0.2 -p /tcp -j ACCEPT
可是执行后,还是在其它网段可以ping 通192.168.0.1,请帮我分析一下应如何实现我的这个想法,先谢了。
作者: ssffzz1    时间: 2007-08-08 20:18
在192.168.0.1的机器上(设eth1的IP:192.168.0.1
iptables -A INPUT -i eth1 -s 192.168.0.2 -d 192.168.0.1 -j ACCEPT
iptables -A INPUT -i eth1 -j DROP
作者: oufeng    时间: 2007-08-08 21:43
你好!
   首先谢谢你对我的帮助,我的eth1和eth0是同一台服务器,也不是说我的这台服务器装了两个网卡,eth0对应的IP是192.168.128.171 eth1对应的IP是192.168.0.1,通过你这样的设置,就该对eth0没有影响吧,因为eth0我是对所有网络服务的,我的看法,对吗?请指教。
作者: ssffzz1    时间: 2007-08-08 21:59
应该是和你想的一样。但是如果有别的规则就难说了。
试一下吧!
作者: oufeng    时间: 2007-08-08 22:10
我没有用iptables设置其它规则的,你所说的其它规则是什么呢?请赐教!谢谢
作者: 金西    时间: 2007-08-08 22:14
在连接状态进行控制
作者: ssffzz1    时间: 2007-08-08 22:14
目前,没什么教的了。
可不可以自己试一下吧。如果不可以继续讨论
作者: oufeng    时间: 2007-08-08 22:20
好的,我先测试一下,谢谢你我帮助。其实我要的很简单,就是让192.168.0.2和192。168。0。1 相互通信就可以,不要和其它的网段通信,仅此而已,非常谢谢你。
作者: asusarhai    时间: 2007-08-09 11:26
iptables -A INPUT -i eth1 -p TCP -s 192.168.0.1/24 -j ACCEPT
是不是可以這樣寫啊
具體的我也每看懂
我是小鳥
作者: liuzheng666    时间: 2007-08-09 14:23
不同子网之间因该是不能直接通许的吧?
可以通讯的俄话也应该是通过router或者三层交换实现吧。如果这样的话直接在router或者3Lswitch上把这条路由清掉就可以了
作者: oufeng    时间: 2007-08-09 16:23
路由是没有了,是三层交换机路由的,在交换机里面设置很麻烦吧,要是用iptables实现了就理简单了,我今天试了一下,忘了加"-i eth1" 这个参数,我的这台机子整个网络都断了,吓我一蹼。
作者: oufeng    时间: 2007-08-09 16:27
我就是这样按以下规则试的,忘了加“-i eth1"这个参数,使我的服务器网络全断了,网络中断了十分钟。
iptables -A INPUT  -s 192.168.0.2 -d 192.168.0.1 -j ACCEPT
iptables -A INPUT  -j DROP
作者: xiaoger    时间: 2007-08-10 10:32
提示: 作者被禁止或删除 内容自动屏蔽
作者: oufeng    时间: 2007-08-12 11:21
各位高手:
   我按以下规则设置可在其它网段还是可以ping 通192.168.0.2.不知为什么,请大家帮我看看。
iptables -A INPUT -i eth1  -s 192.168.0.2 -d 192.168.0.1 -j ACCEPT
iptables -A INPUT  -i eth1 -j DROP
作者: ssffzz1    时间: 2007-08-12 21:15
原帖由 oufeng 于 2007-8-12 11:21 发表
各位高手:
   我按以下规则设置可在其它网段还是可以ping 通192.168.0.2.不知为什么,请大家帮我看看。
iptables -A INPUT -i eth1  -s 192.168.0.2 -d 192.168.0.1 -j ACCEPT
iptables -A INPUT  -i eth1  ...


哦,你的要求是只允许192.168.0.1 和192.168.0.2单独进行通讯,而他们2台机器和任何一台都不能通讯啊。
那么你再加:

1、

iptables -A FORWARD -s 192.168.0.2 -d DROP
或者:
iptables -A FORWARD -s 192.168.0.2 -d DROP
或者2句都加。

如果需要同网段的和192.168.0.2也不能通讯,那么只能在192.168.0.2上做。如下:

iptables -A INPUT -s 192.168.0.1 -j ACCEPT

iptables -A INPUT -s 0.0.0.0 -j DROP

iptables -A FORWARD -s 0.0.0.0 -j DROP


最后:建议LZ看看置顶的IPTABLES教程。
作者: oufeng    时间: 2007-08-13 17:42
你好:
   你好,我是一台机子装了两块网卡,而我只是想对其中的一个网卡进行以上的你所说的限制, 可否在你提供给我的规则中加上-i eth1这个参数,因为我只想对eth1进行限制,请指教?
作者: ssffzz1    时间: 2007-08-13 18:55
应该可以加,不过如果指定了源或目的的话加了也没什么用。你自己实验一下吧
作者: a0402850    时间: 2007-08-14 15:46
如果只局限于ETH1的话我觉得INPUT,OUTPUT,FORWARD所有的包,然后在加上一条FORWARD就可以了!~

用有态防火墙好简单的!~

我毕业设计就是弄这个!
作者: ssffzz1    时间: 2007-08-14 22:13
原帖由 a0402850 于 2007-8-14 15:46 发表
如果只局限于ETH1的话我觉得INPUT,OUTPUT,FORWARD所有的包,然后在加上一条FORWARD就可以了!~

用有态防火墙好简单的!~

我毕业设计就是弄这个!


INPUT,OUTPUT,FORWARD所有的包,然后在加上一条FORWARD

1、这句看了N遍,不明白啥意思。
2、什么叫有态防火墙。
作者: ljlzyn    时间: 2007-08-20 20:54
应该实现不了吧!!!
作者: ssffzz1    时间: 2007-08-20 21:07
原帖由 ljlzyn 于 2007-8-20 20:54 发表
应该实现不了吧!!!




可以,绝对没问题。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2