LinuxSir.cn,穿越时空的Linuxsir!

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

大家看看我的前后两份iptables脚 本,请教版主等高手们!

[复制链接]
发表于 2005-8-17 13:12:17 | 显示全部楼层 |阅读模式
这份脚本是先前的!我执行这份后我的内网可以上网了,相应的samba,dns,http,dns,vpn,dhcp,qmail服务也正常!但我发现安全系数不高,所以就写了第二份脚本!大家先看我的第一分脚本:
说明:eth1是内网!eth0是外网也就是ppp0
echo '1'>/proc/sys/net/ipv4/ip_forward
iptables -F
iptables -P INPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m multiport --dports 443,139,80,21,53,110,25 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -m multiport --dports 138,137,67,53 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -m multiport --dports 110,80,25 -j ACCEPT
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died: "
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "

接着看我的第二份脚本:我执行这分脚本后内网就不能上网了!我看了很多次脚本内容,没找到要怎么做,麻烦大家帮忙
iptables -N bad_tcp_packets
iptables -N allowed
iptables -N icmp_packets
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -t nat -P PREROUTING ACCEPT
iptables -t nat -P POSTROUTING ACCEPT
iptables -t nat -P OUTPUT ACCEPT
iptables -t mangle -P PREROUTING ACCEPT
iptables -t mangle -P OUTPUT ACCEPT
iptables -F
iptables -t nat -F
iptables -t mangle -F
iptables -X
iptables -t nat -X
iptables -t mangle -X
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
iptables -A bad_tcp_packets -p tcp ! --syn -m state --state NEW -j LOG --log-level INFO --log-prefix "New not syn:"
iptables -A bad_tcp_packets -p TCP ! --syn -m state --state NEW -j DROP
iptables -A allowed -p TCP --syn -j ACCEPT
iptables -A allowed -p TCP -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A allowed -p TCP -j DROP
iptables -A INPUT -p tcp -j bad_tcp_packets
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i eth1 -p tcp -m multiport --dports 443,139,80,21,53,110,25 -j ACCEPT
iptables -A INPUT -i eth1 -p udp -m multiport --dports 138,137,67,53 -j ACCEPT
iptables -A INPUT -p tcp --dport 1723 -j ACCEPT
iptables -A INPUT -p gre -j ACCEPT
iptables -A INPUT -i ppp0 -p tcp -m multiport --dports 110,80,25 -j ACCEPT
iptables -A INPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level INFO --log-prefix "IPT INPUT packet died: "
iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.0.0/24 -j MASQUERADE
iptables -A FORWARD -p TCP -j bad_tcp_packets
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT FORWARD packet died: "
iptables -A OUTPUT -p ALL -s 127.0.0.1 -j ACCEPT
iptables -A OUTPUT -p ALL -s 192.168.0.0/24 -j ACCEPT
iptables -A OUTPUT -o ppp0 -j ACCEPT
iptables -A OUTPUT -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level DEBUG --log-prefix "IPT OUTPUT packet died: "
发表于 2005-8-17 17:08:11 | 显示全部楼层
是不是应该增加防止port scan扫描的规则??

  # NMAP FIN/URG/PSH
  iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL FIN,URG,PSH -j DROP

  # Xmas Tree
  iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL ALL -j DROP

  # Another Xmas Tree
  iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP

  # Null Scan(possibly)
  iptables -A INPUT -i eth0 -p tcp --tcp-flags ALL NONE -j DROP

  # SYN/RST
  iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,RST SYN,RST -j DROP

  # SYN/FIN -- Scan(possibly)
  iptables -A INPUT -i eth0 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-17 17:27:28 | 显示全部楼层
谢谢!好像和这个没有关!我现在用了第二个规则后内网连网都不能上!
回复 支持 反对

使用道具 举报

发表于 2005-8-18 08:47:27 | 显示全部楼层
你能上内网不能上,应该是nat的问题吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-18 12:20:58 | 显示全部楼层
Post by netjune
你能上内网不能上,应该是nat的问题吧



可不可以看看我的两个脚本!帮我改一下!行不?

非常感谢!这个问题我已经解决!
回复 支持 反对

使用道具 举报

发表于 2005-8-18 13:58:52 | 显示全部楼层
要习惯在部署好所有之后才打开转发,甚至是一启用网络就是在安全防护状态.
像windows下的天网就有这个问题,就是网络已经启动,防火墙还没起来.有一个非安全期.
在最后打开转发
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-8-18 19:32:40 | 显示全部楼层
genv:

你说得很对!非常感谢!这个问题现在已经解决!!
回复 支持 反对

使用道具 举报

发表于 2005-8-19 16:55:03 | 显示全部楼层

应该是这名的

iptables -A INPUT -p tcp -j bad_tcp_packets
一开始就把包丢掉了
回复 支持 反对

使用道具 举报

发表于 2005-9-2 23:13:17 | 显示全部楼层
楼上shimuqiheb的说法有问题
你说    iptables -A INPUT -p tcp -j bad_tcp_packets 一开始就把包丢掉了
-A INPUT应该和服务器那台机有关。和内网的机无关。
我个人觉得应该在
iptables -A FORWARD -p TCP -j bad_tcp_packets
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 21 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/24 -p udp --dport 53 -j ACCEPT
后添加     iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT 这句话
为什么:因为你的-p 是DROP 而你仅仅允许从192.168.0.0/24的包单向通过(包括从内网的syn),但从外网来的包都因为-P而DROP了,试试看,我们再探讨。我的email是pengchong@163.com
回复 支持 反对

使用道具 举报

发表于 2005-9-2 23:45:41 | 显示全部楼层
Post by shimuqiheb
iptables -A INPUT -p tcp -j bad_tcp_packets
一开始就把包丢掉了


我认为:
说的是对的,应该是一开始就把坏的TCP包扔掉。然后再处理。这个是不管什么机器,只要是经过本机的,都要过滤一次的。
回复 支持 反对

使用道具 举报

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

本版积分规则

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