LinuxSir.cn,穿越时空的Linuxsir!

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

如何用iptables使本地机只能接收来自WEB服务器返回的数据包?而其它对本地机的连接被D

[复制链接]
发表于 2003-5-23 13:30:17 | 显示全部楼层 |阅读模式
1,访问web服务器时, 服务器返回的数据包所连接的本机端口是随机的吗?



2,如果要用iptables来使本机的WEB访问正常,即可以使web服务器返回的数据包被

accept,而其它未受权的对本机端口的连接被drop,

这条INPUT规则应该如何写呢???
机子是adsl动态IP上网
 楼主| 发表于 2003-5-23 13:37:17 | 显示全部楼层
我的意是说,机子对外网的访问没有任何限质,

但访问 web服务器时,服务器要返回数据包呀,

要怎样用iptables 才能使返回的数据包accept??
发表于 2003-5-23 14:34:51 | 显示全部楼层
iptables -N mine
iptables -A mine -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A mine -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A INPUT -j mine
iptables -A OUTPUT -j mine
iptables -A FORWARD -j mine
 楼主| 发表于 2003-5-23 15:15:54 | 显示全部楼层
谢谢“转悠悠”兄!!!!!!
 楼主| 发表于 2003-5-23 15:25:41 | 显示全部楼层
iptables -A mine -m state --state NEW -i ! ppp0 -j ACCEPT

这条语句是什么意思?又是-m state参数不懂得,

能否详细介绍一下 -m 的参数?或者给我一个网址,让我自己去看,不要是洋文~~呵,看不懂,

非常感谢!!!
 楼主| 发表于 2003-5-23 15:43:25 | 显示全部楼层
转悠悠兄,有错呀,我把iptables写在/etc/rc.d/firewall
执行时,出现以下错误:
iptables: Chain already exists
iptables: No chain/target/match by that name

这是iptables配置文件
iptables -F INPUT
iptables -F OUTPUT
iptables -F FORWARD
                                                                                
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
                                                                                
#iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 21 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
#iptables -A INPUT -p tcp -m tcp --dport 110 -j ACCEPT
                                                                                
#iptables -A INPUT -i eth0 -m state --state ESTABLISHED,RELATED -j ACCEPT
                                                                                
iptables -N mine
iptables -A mine -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A mine -m state --state NEW -i ! ppp0 -j ACCEPT
iptables -A INPUT -j mine
iptables -A output -j mine
iptables -A FORWARD -j mine
是哪边错了??苦呀,
 楼主| 发表于 2003-5-23 15:44:11 | 显示全部楼层
补充错误:而且还不能上网了,,
发表于 2003-5-23 21:13:37 | 显示全部楼层
 楼主| 发表于 2003-5-24 01:04:16 | 显示全部楼层
状态匹配   -from iptables How to
最有用的匹配标准是'state'扩展。它负责解释'ip_conntrack'模块的connection-tracking分析。 这是推荐使用的(好东东)。
通过指定'-m state'来允许附加的'--state'选项,匹配用逗号分割的状态列表('!'标志表明不符合那些状态(的状态))。
NEW
由新连接创建的包
ESTABLISHED
属于已存在连接的包(也就是说,响应的包)
RELATED
和一个已存在连接有关,但不是它的一部分的包。如ICMP错误,或者(已加载FTP模块)一个建立FTP数据连接的包。
INVALID
由于以下原因而不能被识别的包:包括内存不足和不是相应当前任何连接的ICMP错误。通常这些包会被丢弃。
这个强大的匹配扩展的一个例子:
# iptables -A FORWARD -i ppp0 -m state ! --state NEW -j DROP
搞定~!~
iptables -F OUTPUT
iptables -F FORWARD
                                                                                
iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD DROP
                                                                                

iptables -A INPUT -i ppp0 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i ppp0 -m state --state NEW -j ACCEPT
;)
发表于 2003-5-24 12:48:23 | 显示全部楼层
两点建议给PROLIFE:
1. 应该允许lo界面上的INPUT,因为有些应用程序要用到lo界面。
iptables -A INPUT -i lo -j ACCEPT
2. 你接受state NEW,就意味着有人可以联接到你的机器。如果你不开任何服务的话,这样做是没有必要的,而且会有安全问题。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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