LinuxSir.cn,穿越时空的Linuxsir!

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

我的iptables配置,大家帮忙看下如何优化?

[复制链接]
发表于 2004-12-4 16:20:16 | 显示全部楼层 |阅读模式
这是我用squid+iptables实现透明代理后,在iptables做的访问限制,默认禁止用户访问所有internet资源,然后再开QQ,MSN,联众,及一般的FTP,WEB访问,和允许使用Foxmail和OUTLOOK等下载邮件.(测试通过)
但目前对内网用户没有任何的防范,不知道该如何优化OUTPUT这一规则链?请大家帮忙看看.



#=========================加载模块===============================#
# 整理核心支持模块之清单
/sbin/depmod -a
# 加载会用到的模块
/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe iptable_filter
/sbin/modprobe iptable_mangle
/sbin/modprobe iptable_nat
/sbin/modprobe ipt_LOG
/sbin/modprobe ipt_limit
/sbin/modprobe ipt_state
/sbin/modprobe ip_conntrack_ftp
/sbin/modprobe ip_nat_ftp

#========================允许转发=============================#
# 启动IP 转发
echo 1 >/proc/sys/net/ipv4/ip_forward

#=======================初始化和摄制默认策略=================#
# 清除所有已设定之规则,回复到不设防状态
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P FORWARD ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -t nat -P PREROUTING ACCEPT
/sbin/iptables -t nat -P POSTROUTING ACCEPT
/sbin/iptables -t nat -P OUTPUT ACCEPT
/sbin/iptables -t mangle -P PREROUTING ACCEPT
/sbin/iptables -t mangle -P OUTPUT ACCEPT
/sbin/iptables -F
/sbin/iptables -t nat -F
/sbin/iptables -t mangle -F
/sbin/iptables -X
/sbin/iptables -t nat -X
/sbin/iptables -t mangle -X
# 定义默认安全策略
/sbin/iptables -P INPUT DROP       ##拒绝所有外部发往本机的数据包,即禁止所有对内部的数据包通过
/sbin/iptables -P OUTPUT ACCEPT   ##允许所有内部发往外部的包通过
/sbin/iptables -P FORWARD DROP   ##不允许所有数据包转发

#==========================新建链==============================#
# 防止SYN-Flooding链
/sbin/iptables -N syn-flood
/sbin/iptables -A syn-flood -m limit --limit 1/s --limit-burst 4 -j RETURN
/sbin/iptables -A syn-flood -j DROP
# 防止Ping of Death链
iptables -N ping
iptables -A ping -p icmp --icmp-type echo-request -m limit --limit 1/second -j RETURN
iptables -A ping -p icmp -j REJECT

#======================Filter表的INPUT链========================#
# Filter表的INPUT链
# 允许本机Loopback 接口,即127.0.0.1
iptables -A INPUT -i lo -j ACCEPT
#允许icmp包通过,即允许ping
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 0 -j ACCEPT    #Ping应答
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 3 -j ACCEPT    #响应状态
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 5 -j ACCEPT    #重定向
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 8 -j ACCEPT    #Ping请求
iptables -A INPUT -p ICMP -s 0/0 --icmp-type 11 -j ACCEPT   #生存时间
# 允许要求联机封包或响应封包进入
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
# 允许源地址为服务器ip段发往防火墙内网卡的包进入(服务器向外网提供服务时用,默认注释)
#iptables -A INPUT -i eth1 -s $SERVER_IP -p tcp -j ACCEPT
# 在对内访问的连接中,只要是INVALID(即无效的连接)就丢弃该包
iptables -A INPUT -p all -m state --state INVALID -j DROP
# 防止 SYN-Flooding
iptables -A INPUT -i eth1 -p tcp --syn -j syn-flood
iptables -A INPUT -i eth1 -p tcp ! --syn -m state --state NEW -j DROP  
# 防止 Ping of Death
iptables -A INPUT -p icmp --icmp-type echo-request -m state --state NEW -j ping
# 自己内网用户不做访问限制
iptables -A INPUT -p all -s 192.168.0.0/255.255.0.0 -j ACCEPT

#=====================Filter表的OUTPUT链=====================#
# Filter表的OUTPUT链
# 允许本机Loopback 接口,即127.0.0.1
/sbin/iptables -A OUTPUT -o lo -j ACCEPT

#=====================Filter表的FORWARD链=====================#
# Filter表的FORWARD链
# 处理IP碎片(FORWARD)
iptables -A FORWARD -m limit --limit 3/minute --limit-burst 3 -j LOG --log-level debug --log-prefix "IPT FORWARD packet died: "
# 允许PING
iptables -A FORWARD -s 192.168.0.0/16 -p icmp -j ACCEPT
# DNS端口
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 53 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p udp --dport 53 -j ACCEPT
# FTP端口
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 20:21 -j ACCEPT
# WEB端口
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 80 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 8000 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 8080 -j ACCEPT
# MSN端口,1863为连接端口,80为备用端口.443为HTTPS必需打开,6891-6900为数据传输端口
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 443 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 1863 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 6891:6900 -j ACCEPT
# 视频下载或收看
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 554 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 1755 -j ACCEPT
# POP3,IMAP,SMTP
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 25 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 110 -j ACCEPT
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 143 -j ACCEPT
# QQ聊天工具
iptables -A FORWARD -s 192.168.0.0/16 -p udp --dport 8000 -j ACCEPT
# 联众游戏端口,
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 2000 -j ACCEPT     #游戏大厅
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 1007 -j ACCEPT     #暗棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 2002 -j ACCEPT     #聊天室
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 2005 -j ACCEPT     #麻将
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3030 -j ACCEPT     #红心大战
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3050 -j ACCEPT     #五子棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3060 -j ACCEPT     #桥牌
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3100 -j ACCEPT     #跳棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3200 -j ACCEPT     #中国象棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3300 -j ACCEPT     #国际象棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3400 -j ACCEPT     #四国军棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 4000:4100 -j ACCEPT     #GICQ
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3000 -j ACCEPT     #围棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3001 -j ACCEPT     #俄罗斯方块
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3002 -j ACCEPT     #三打一
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3003 -j ACCEPT     #斗地主
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3004 -j ACCEPT     #升级
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3005 -j ACCEPT     #梭哈
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3006 -j ACCEPT     #拱猪
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3007 -j ACCEPT     #够级
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3008 -j ACCEPT     #双扣
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3010 -j ACCEPT     #跑得快
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3012 -j ACCEPT     #飞行棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3013 -j ACCEPT     #拼图
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3015 -j ACCEPT     #台球
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3016 -j ACCEPT     #原子
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3017 -j ACCEPT     #510k
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3018 -j ACCEPT     #憋7
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3019 -j ACCEPT     #黑白棋
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3020 -j ACCEPT     #锄大地
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3021 -j ACCEPT     #炒地皮
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3022 -j ACCEPT     #炸弹人
iptables -A FORWARD -s 192.168.0.0/16 -p tcp --dport 3023 -j ACCEPT     #敲三家
#当建立联机状态时,允许数据互相转发
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

#==========================透明代理=================================#
#透明代理
/sbin/iptables -t nat -A PREROUTING -i eth0 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 3128
/sbin/iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j SNAT --to-source 172.16.0.15


======================================================================
发表于 2004-12-4 20:38:21 | 显示全部楼层
基本上iptables -A FORWARD -s 的没有什么大的效果~你是想控制网络?
这会耗更多资源的~

建议用别的软件去控制或者总体过滤~

但基本iptables兄弟都是用的正确~资源上多注意一点就可以~
发表于 2004-12-4 22:25:56 | 显示全部楼层
建议用别的软件去控制或者总体过滤

版主能介绍一下这方面的东西吗?
发表于 2004-12-5 06:15:37 | 显示全部楼层
FORWARD不用写这么多吧,你就是nat+squid。可在FORWARD 链上把NetBIOS禁止掉。
 楼主| 发表于 2004-12-5 19:28:07 | 显示全部楼层
现在是提到的端口才打开,然后其他都禁止.
还有就是安全隐患有些是内部用户造成的,不知道要怎么去限制他们
发表于 2004-12-9 20:48:17 | 显示全部楼层
你都iptables -t nat -A POSTROUTING -s 192.168.0.0/255.255.0.0 -o eth1 -j SNAT --to-source 172.16.0.15
所以,后面的那些FORWARD chain用处不大吧。多个端口可以用-m multiport
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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