LinuxSir.cn,穿越时空的Linuxsir!

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

求助 Linux AS 4 下 Iptables 的应用.. 高手进.

[复制链接]
发表于 2005-8-4 18:07:59 | 显示全部楼层 |阅读模式
偶用REDHAT AS 4 UP1,默认加载了Iptables ,我修改了 /etc/sysconfig/iptables 文件下面是
我修改成功的Iptables 文件,开了SMTP,POP3,LDAP,SAMBA,APACHE,SSH,FTP.服务,防止外部主机Ping 本机,现在本机只可以Ping 自己,和127.PING 别的机器都不行.

请问我在IPTABLES 加什么规则,可以实现别人PING 不到我,我可以任意PING 别人..!

下面是我的配置文件 红色部分是我添加的,对IPTABLE 不熟,可依然PING 不通别的主机.请高手指点.


# Firewall configuration written by system-config-securitylevel
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:RH-Firewall-1-OUTPUT -[0:0]
:RH-Firewall-1-INPUT - [0:0]
-A OUTPUT -j RH-Firewall-1-OUTPUT
-A INPUT -j RH-Firewall-1-INPUT
-A FORWARD -j RH-Firewall-1-INPUT
-A RH-Firewall-1-OUTPUT -p icmp --icmp-type any -j ACCEPT
-A RH-Firewall-1-INPUT -i lo -j ACCEPT
-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP
-A RH-Firewall-1-INPUT -p 50 -j ACCEPT
-A RH-Firewall-1-INPUT -p 51 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp --dport 5353 -d 224.0.0.251 -j ACCEPT
-A RH-Firewall-1-INPUT -p udp -m udp --dport 631 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 25 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 110 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 389 -j ACCEPT
-A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
COMMIT
发表于 2005-8-4 18:19:00 | 显示全部楼层
告诉你原理吧,
1,先放过来自本地去往任何地址的icmp包.
2,然后把所有icmp包都drop掉,
因为系统匹配一个包的时候先匹配到第一条,如果是从本地去往别处的那在这里已经放过了.
然后如果是别处到你这里的,不能正确匹配第一条,到第二条,结果是drop.
其实这样实际上是行不通的.
回来给你解释!出去一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-4 18:29:55 | 显示全部楼层
谢谢,原理我也是这样理解的。

现在的问题是我加上OUTPUT ICMP 出去的包都是ACCEPT 为什么不能生效呢,?

语法错误, (但是Service Iptables restart 并没有提示任何错误)

向你请教.
回复 支持 反对

使用道具 举报

发表于 2005-8-4 18:36:59 | 显示全部楼层
那就是语法错误咯,你多看看文档就可以了.而且文档也不长
回复 支持 反对

使用道具 举报

发表于 2005-8-5 01:30:15 | 显示全部楼层
搜索一个别人写的script。也可以安装一些脚本辅助生成程序,按需要生成自己的script。
回复 支持 反对

使用道具 举报

发表于 2005-8-5 10:26:59 | 显示全部楼层
OUTPUT缺省的策略是ACCEPT,所以根本不用指定OUTPUT icmp ACCEPT rule。问题是你确定你试的外部IP是接受PING的吗?最好拿你的DNS服务器试。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-5 11:11:43 | 显示全部楼层
我的Server 是在内部网络测试的, 都是192.168.0.0 的网段.  我的IP 192.168.0.253

外部网络肯定是没有问题,我Ping 192.168.0.1 (网关) 都不可以,

不过我把-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP(DROP 变成ACCEPT),就可以PIng

了, 如果用DROP, 别人就Ping 不到我了,现在关键是我想Ping 别人也不行了,只能Ping 本机,所以我想指

一条ICMP OUT 策略在IPTABLES 上.
回复 支持 反对

使用道具 举报

发表于 2005-8-5 12:30:04 | 显示全部楼层
Post by ocsic
我的Server 是在内部网络测试的, 都是192.168.0.0 的网段.  我的IP 192.168.0.253

外部网络肯定是没有问题,我Ping 192.168.0.1 (网关) 都不可以,

不过我把-A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP(DROP 变成ACCEPT),就可以PIng

了, 如果用DROP, 别人就Ping 不到我了,现在关键是我想Ping 别人也不行了,只能Ping 本机,所以我想指

一条ICMP OUT 策略在IPTABLES 上.

把icmp-type any 改为icmp-type echo-request .还是DROP或REJECT. 再试试。我的意见还是不要OUTPUT那条冗余的指令。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-5 13:09:10 | 显示全部楼层
谢谢,斑竹 yongjian, 改成 -A RH-Firewall-1-INPUT -p icmp --icmp-type echo-request  -j DROP,

就OK了,你的意见是正确的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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