linux iptables 做内网访问规则,怎么做?

eth0 内网 eth1外网 我只想内网访问如下端口:110 25 53 80 其他的都拒绝 怎么做? 我是这么做的:
iptables 默认策略是accpt
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 25
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 110
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 80
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 53
iptables -t filter -A FORWARD -i eth0 -j DROP
加了最后一条所有都不能访问了,去掉内外网无限制了。 应该怎么做?在线等,急

行了,应该在/etc/network/下子文件夹中的某个配置文件,但是事实上,因为linux有防火墙,所以事实上需要在防火墙的forward链上做转发,因为数据包是先碰到防火墙过滤后才进入内核空间,如果在防火墙转发,那个设置内核的端口转发就没什么意义了。

补充回答:
声明:本人主要使用的是debian系统,对于红帽不是非常熟悉,所以在配置文件的路径及命名上和你的实际情况会有出入,请酌情更改!!

首先,你需要更改/etc/sysctl.conf这个文件,找到如下行:
net.ipv4.ip_forward = 0
把0改成1打开内核转发,然后用source命令重读该配置文件。

然后你需要用以下命令打开forward链上所有的转发,这里只给你简单的实现forward,并没实现保护LAN的防火墙功能,请参阅参考资料获得iptables的详细配置方法!
iptables -A FORWARD -i eth1 -j ACCEPT
iptables -A FORWARD -o eth1 -j ACCEPT
service iptables save
service iptables restart

附注:
man iptables
命令格式:

# iptables [-t 表名] 命令 [链] [规则号] [条件] [规则]

说明:⑴ -t 表名 指定规则所在的表。表名可以是 filter ,nat ,mangle (小写)

⑵ 命令 (iptables的子命令)

-A 在指定链中添加规则

-D 在指定链中删除指定规则

-R 修改指定链中指定规则

-I 在指定规则前插入规则

-L 显示链中的规则

-N 建立用户链

-F 清空链中的规则

-X 删除用户自定义链

-P 设置链的默认规则

-C 用具体的规则链来检查在规则中的数据包

-h 显示帮助

⑶ 条件

–i 接口名 指定接收数据包接口

-o 接口名 指定发送数据包接口

-p [!]协议名 指定匹配的协议 (tcp , udp , icmp , all )

-s [!]ip地址 [/mask] 指定匹配的源地址

--sport [!]端口号 [:端口号] 指定匹配的源端口或范围

-d [!]ip地址 [/mask] 指定匹配的目标地址

--dport [!]端口号 [:端口号] 指定匹配的目标端口或范围

--icmp –type [!]类型号/类型名 指定icmp包的类型

注:8 表示request 0 表示relay (应答)

-m port --multiport 指定多个匹配端口

limit --limit 指定传输速度

mac --mac-source 指定匹配MAC地址

sate --state NEW,ESTABLISHED,RELATED,INVALID 指定包的状态

注:以上选项用于定义扩展规则

-j 规则 指定规则的处理方法

⑷ 规则

ACCEPT :接受匹配条件的数据包(应用于I NPUT ,OUTPUT ,FORWARD )

DROP :丢弃匹配的数据包(应用于INPUT ,OUTPUT ,FORWARD )

REJECT :丢弃匹配的数据包且返回确认的数据包

MASQUERADE :伪装数据包的源地址(应用于POSTROUTING且外网地址

为动态地址,作用于NAT )

REDIRECT :包重定向 (作用于NAT表中PREROUTING ,OUTPUT,使用要加上--to-port 端口号 )

TOS : 设置数据包的TOS字段(应用于MANGLE,要加上--set-tos 值)

SNAT : 伪装数据包的源地址(应用于NAT表中POSTROUTING链,要加上--to-source ip地址 [ip地址] )

DNAT : 伪装数据包的目标地址(应用于NAT表中PREROUTING链,要加上--to-destination ip地址 )

LOG :使用syslog记录的日志

RETURN :直接跳出当前规则链

3. iptables子命令的使用实例

⑴ 添加规则

#iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.3 –j DROP

(拒绝192.168.0.3主机发送icmp请求)

# iptables –A INPUT –p icmp –-icmp-type 8 –s 192.168.0.0/24 –j DROP

(拒绝192.168.0.0网段ping 防火墙主机,但允许防火墙主机ping 其他主机)

# iptables –A OUTPUT –p icmp –-icmp-type 0 –d 192.168.0.0/24 –j DROP

(拒绝防火墙主机向192.168.0.0网段发送icmp应答,等同于上一条指令)

# iptables –A FORWARD –d -j DROP

(拒绝转发数据包到,前提是必须被解析)

# iptables –t nat –A POSTROUTING –s 192.168.0.0/24 –j SNAT –-to-source 211.162.11.1

(NAT,伪装内网192.168.0.0网段的的主机地址为外网211.162.11.1,这个公有地址,使内网通过NAT上网,前提是启用了路由转发)

# iptables –t nat –A PREROUTING –p tcp --dport 80 –d 211.162.11.1 –j DNAT -–to-destination 192.168.0.5
(把internet上通过80端口访问211.168.11.1的请求伪装到内网192.168.0.5这台WEB服务器,即在iptables中发布WEB服务器,前提是启用路由转发)

# iptables –A FORWARD –s 192.168.0.4 –m mac --mac-source 00:E0:4C:45:3A:38 –j ACCEPT
(保留IP地址,绑定 IP地址与MAC地址)

⑵删除规则
# iptables –D INPUT 3
# iptables –t nat –D OUTPUT –d 192.168.0.3 –j ACCEPT
⑶插入规则
# iptables –I FORWARD 3 –s 192.168.0.3 –j DROP
# iptables –t nat –I POSTROUTING 2 –s 192.168.0.0/24 –j DROP
⑷修改规则
# iptables –R INPUT 1 –s 192.168.0.2 –j DROP
⑸显示规则
# iptables –L (默认表中的所有规则)
# iptables –t nat –L POSTROUTING
⑹清空规则
# iptables –F
# iptables –t nat –F PREROUTING
⑺设置默认规则
# iptables –P INPUT ACCEPT
# iptables –t nat –P OUTPUT DROP
(注:默认规则可以设置为拒绝所有数据包通过,然后通过规则使允许的数据包通过,这种防火墙称为堡垒防火墙,它安全级别高,但不容易实现;也可以把默认规则设置为允许所有数据包通过,即鱼网防火墙,它的安全级别低,实用性较差。)
⑻建立自定义链
# iptables –N wangkai
⑼删除自定义链
# iptables –X wangkai
⑽应用自定义链
# iptables –A wangkai –s 192.168.0.8 –j DROP
# iptables –A INPUT –j wangkai
(注:要删除自定义链,必须要确保该链不被引用,而且该链必须为空,如要删除上例定义的自定义链方法为:
# iptables –D INPUT –j wangkai
# iptables -F wangkai
# iptables -X wangkai
另外,团IDC网上有许多产品团购,便宜有口碑
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-03-28
iptables -P FORWARD ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 25 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 110 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 80 -j ACCEPT
iptables -t filter -A FORWARD -i eth0 -p tcp --dport 53 -j ACCEPT
iptables -t filter -A FORWARD -I eth0 -j DROP
做内网访问规则,我这边也没法实验,不知道对不本回答被提问者采纳
第2个回答  2011-03-30
把最后一条改成
iptables -P FORWARD DROP

试试

linux iptables的问题 ,要指定只允许一段IP TCP访问,是先拒绝所有,再允...
首先要了解iptables工作原理(规则是按上到下的顺序匹配的)和添加规则的方式,-A 参数为append(个人理解,错误望指证)追加,而 -I 参数为 insert(也是个人理解,学习方式不同)插入。我举个例子你可能就会懂了,假设现在的防火墙中有这一条规则(我不太记的具体显示了,示例一下吧)-A INPUT -p...

linux 怎么用 iptables 限制主机访问某网站?
iptables -t filter -A OUTPUT -s host_ip -p udp --dport 80 -j DROP host_ip 为此网站的web服务器的ip地址。

Linux防火墙iptables限制几个特定ip才能访问服务器?
linux下要使用iptables限制只有指定的ip才能访问本机则需要先设置一个默认的规则iptables有默认的规则,它可以适用于所有的访问。因为只有指定或特定的ip地址才能访问本机 延展阅读:总之不管是阻止所有的服务还是只阻止指定的服务,我们可以先将默认的规则设置为所有ip都不可访问,然后再手动添加ip地址到白名...

Linux下针对路由功能配置iptables的方法详解
卸载旧的iptables代码如下:rpm -e iptables-1.3.5-9.1.el5 iptables-ipv6-1.3.5-9.1.el5 iptstate-1.4-2.el5 --nodeps安装新的iptables,以支持新的netfiler模块代码如下:tar -jsvf iptables-1.4.6.tar.bz2 -C \/usr\/srccd \/usr\/src\/netfilter-layer7-v2.23cd iptables-1.4.3forward-for-kernel-2.6.20fo...

管理Linux系统的端口访问限制linux限制访问端口
为了管理Linux系统端口访问,可以使用iptables命令,iptables -A INPUT 来添加端口访问限制规则。举个例子,如果要限制80端口,我们可以使用以下命令添加对应的规则:iptables -A INPUT -p tcp –dport 80 -j DROP 此外,我们还可以使用iptables -L命令查看被应用的规则列表:[root@test ~]# ...

【转载】通过iptables实现端口转发和内网共享上网
那么Linux如何做SNAT 呢?环境配置如下: 当内网节点10.1.1.12需要访问202.2.2.2的web服务器,发送数据包时先路由到10.1.1.1节点,随后(在10.1.1.1节点配置SNAT)将源IP改为60.1.1.1后送出。同时在ip_conntrack表里面做一个记录:内网的哪一个ip的哪个端口访问的这个web服务器,自己把它的源地址改成多少了,端口改成多少...

Linux防火墙iptables限制几个特定ip才能访问服务器。
linux下要使用iptables限制只有指定的ip才能访问本机则需要先设置一个默认的规则 iptables有默认的规则,它可以适用于所有的访问 因为只有指定或特定的ip地址才能访问本机 所以可以将默认的规则设置为所有访问全部阻止(当然这里需要注意下,如果你要设置的机器是在远端,比如vps则需要注意在设置默认规则的同时...

iptables允许指定IP访问内网,其它全部拒绝,允许内网访问全部外网,请大 ...
wan_if=cloudbr0 wan_vip_ip="192.168.1.102\/24 192.168.10.0\/24" #外网可以访问内网的IP或IP网段,如果没有,可以为""。特定外网IP可以访问内网,其余外网IP不能访问内网 for vip_ip in $wan_vip_ip; do iptables -A FORWARD -i $wan_if -o $lan_if -s $vip_ip -j ACCEPT ...

在linux上的iptables防火墙上怎么设置信任MAC地址访问端口
iptables -A INPUT -p tcp --dport 110 -j ACCEPT (4) 允许25(smtp)端口的数据包进入,如果不加这规则,就只能通过web页面来发信(无法用OE或Foxmail等来发)iptables -A INPUT -p tcp --dport 25 -j ACCEPT (5)允许21(ftp)端口的数据包进入(传数据) iptables -A INPUT -p tcp --d...

Linux iptables 命令
iptables 是 Linux 管理员用来设置 IPv4 数据包过滤条件和 NAT 的命令行工具。查看规则的命令格式为: iptables [-t tables] [-L] [-nv]列出 filter table INPUT 链的规则:列出 nat table 三条链的规则:列出 filter table 三条链的规则:红框中的内容为链的名称及其默认策略,filter 表中所有...

相似回答