LinuxSir.cn,穿越时空的Linuxsir!

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

iptables能设置超时吗?

[复制链接]
发表于 2006-2-21 11:36:36 | 显示全部楼层 |阅读模式
公司想在一个设备上嵌入一个防火强,要求连接在一段时间idle后,防火墙能够自动切断连接。不知道iptables有没有这个能耐,请知道的前人明示,谢谢!
 楼主| 发表于 2006-2-21 17:57:33 | 显示全部楼层
已经找到答案了,3x
回复 支持 反对

使用道具 举报

发表于 2006-2-21 18:05:57 | 显示全部楼层
能简单说说?我想知道。谢谢。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 13:56:19 | 显示全部楼层
iptables本身就设置的有超时时限,我在永远的 UNIX上 看到的,也核对过,似乎就是那样的.不过文章很长,我就把它的那句话抽出来:
[color="Red"]UDP连接的超时时间在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_udp.c文件中设置,如果改变了这个值,需要重新编译Linux内核源代码才能生效。下面是UDP连接超时时间的相关的源代码:


#define UDP_TIMEOUT (30*HZ)
#define UDP_STREAM_TIMEOUT (180*HZ)


一个UDP请求等待应答的时间是30*HZ(这个值一般是30秒)。在上面的例子中,等待的时间已经消耗了11秒,还剩余19秒,如果在这段时间之内没有收到应答分组,这个表项就会被删除。一旦收到了应答,这个值就被重置为30,UNREPLIED标志也被删除。

[color="Red"]tcp超时

所谓状态表项的超时值是指每个表项存在的最大时间,这些超时值的大小在/usr/src/linux/net/ipv4/netfilter/ip_conntrack_proto_tcp.c文件中设置。以下是相关的代码:


static unsigned long tcp_timeouts[]
= { 30 MINS, /* TCP_CONNTRACK_NONE, */
5 DAYS, /* TCP_CONNTRACK_ESTABLISHED, */
2 MINS, /* TCP_CONNTRACK_SYN_SENT, */
60 SECS, /* TCP_CONNTRACK_SYN_RECV, */
2 MINS, /* TCP_CONNTRACK_FIN_WAIT, */
2 MINS, /* TCP_CONNTRACK_TIME_WAIT, */
10 SECS, /* TCP_CONNTRACK_CLOSE, */
60 SECS, /* TCP_CONNTRACK_CLOSE_WAIT, */
30 SECS, /* TCP_CONNTRACK_LAST_ACK, */
2 MINS, /* TCP_CONNTRACK_LISTEN, */
};
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-2-23 14:03:19 | 显示全部楼层
再问个问题哈,我对iptables可以说不会,现在是现学现买.
[color="Red"]我想写一条(或多条)规则让只有在状态表中存在记录的内部网络流量流出以及相关联的外部流量流入,其他的流量一律就地干掉.
不知道有人会不,请指点,谢谢
回复 支持 反对

使用道具 举报

发表于 2006-2-23 19:43:40 | 显示全部楼层
噢,是要修改源码,明白了。谢谢。

没明白你的意思,因为只要一通讯,状态表就会有记录的了。。。。
回复 支持 反对

使用道具 举报

发表于 2006-2-25 19:13:08 | 显示全部楼层
长知识了     keke
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

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