免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1004 | 回复: 0
打印 上一主题 下一主题

iptables实战记录(转) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-09 18:15 |只看该作者 |倒序浏览

linux服务器既是上网的拨号服务器,同时也是公司的web server、mail server、ftp server等,域名动态解析,同时它与公司其它windows客户端构成了一个局域网,内网IP为192.168.0.1(eth1接口),外网网卡(eth0接口),拨号接口为ppp0,网内其它计算机的IP也都是192.168.0网段。192.168.0.2到192.168.0.16为公司工作人员(公司比较小,只有10来个人),192.168.0.240到192.168.0.243这几个IP是我和其它两个同事在用,需要实现的目标是外网只能访问服务器的www、mail、ftp、tomcat这几个服务、内网192.168.0.2到192.168.0.16这个IP段的同事们上班时间只能上外网的www、mail、ftp、tomcat并禁止使用QQ、192.168.0.240到192.168.0.243这个IP段的同事们可以无限制上网。下面是我的脚本内容。
work_firewall.sh:
# Display start message
echo "Starting iptables rules..."
# 设置变量
IPT=/sbin/iptables
INTERNET_SERVER=192.168.0.1
IP_ME="127.0.0.1"
IP_SPEC_RANGE="192.168.0.240/30"
IP_WORK_RANGE="192.168.0.2/28"
IP_ALL="192.168.0.0/24"
# 清除所有规则
$IPT -F
$IPT -t nat -F
# 重置所有链默认设置
$IPT -P INPUT DROP
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
# 1. 限制internet对web服务器的访问
# (1) 允许自己无限制访问自己
$IPT -A INPUT -s $IP_ME -j ACCEPT
# (2) 允许访问www服务
$IPT -A INPUT -p tcp --dport 80 -j ACCEPT
# (3) 允许访问ftp服务
$IPT -A INPUT -p tcp --dport 20 -j ACCEPT
$IPT -A INPUT -p tcp --dport 21 -j ACCEPT
# (4) 允许访问mail服务
$IPT -A INPUT -p tcp --dport 110 -j ACCEPT
$IPT -A INPUT -p tcp --dport 143 -j ACCEPT
$IPT -A INPUT -p tcp --dport 25 -j ACCEPT
# (5) 允许访问tomcat服务
$IPT -A INPUT -p tcp --dport 8080 -j ACCEPT
# 2. 允许工作人员通过局域网访问服务器
$IPT -A INPUT -s $IP_SPEC_RANGE -j ACCEPT
$IPT -A INPUT -s $IP_WORK_RANGE -j ACCEPT
# 3. 允许特殊IP无限制上网
$IPT -t nat -A PREROUTING -s $IP_SPEC_RANGE -j ACCEPT
# 4. 对工作范围内IP限制部分上网功能
# (1) 允许访问DNS和ECHO
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 53 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 42 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p udp --dport 7 -j ACCEPT
# (2) 禁止QQ的TCP登录
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 219.133.38.5 -p tcp -j DROP
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.165 -p tcp -j DROP
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.17.209.23 -p tcp -j DROP
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 218.18.95.153 -p tcp -j DROP
# (3) 禁止MSN登录
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 207.46.104.20 -j DROP
# (4) 允许访问www
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 80 -j ACCEPT
# (5) 允许访问ftp
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 20 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 21 -j ACCEPT
# (6) 允许访问mail
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 110 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 143 -j ACCEPT
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 25 -j ACCEPT
# (7) 允许访问tomcat
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d 0/0 -p tcp --dport 8080 -j ACCEPT
# (8) 禁止访问其它服务
$IPT -t nat -A PREROUTING -s $IP_WORK_RANGE -d ! $IP_ALL -j DROP
# 5. 共享上网
$IPT -t nat -A POSTROUTING -o ppp+ -j MASQUERADE
# 显示结束信息
echo "Completed iptables rules."
网上讲解iptables命令如何使用的文章已经数不胜数了,但真正要理解它的工作原理还是不太容易,也许是自己太笨周六那天竟然午饭都没吃苦苦思索了整整一天才慢慢有所领悟。netfilter/iptables共有三组规则表:filter、nat和mangle。filter表用于一般的信息包过滤,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则;nat表用于转发的信息包过滤,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则;mangle表用于高级路由,我此次没有用到,因此也没有深究,有空了再看看 ^_^。filter表包括INPUT链、OUTPUT链和FORWARD链;nat表包括PREROUTING链、POSTROUTING链和 OUTPUT链;mangle表包括PREROUTING链和OUTPUT链。filter表为默认规则表。
表名
功能
filter
用于一般的信息包过滤,包括INPUT链、
OUTPUT链和FORWARD链,如我的网络中192.168.0.1服务器自己访问internet资源时或者外网访问服务器本身时使用filter表规则
nat
用于转发的信息包过滤,包括PREROUTING链、POSTROUTING链和OUTPUT链,如我的局域网内客户端需要通过服务器访问外网时就需要用到nat表规则
mangle
用于高级路由,包括PREROUTING链和OUTPUT链
上面的脚本先清除了所有链的所有规则并重置了默认设置,其中INPUT链默认不接受外来访问服务器的任何数据包,接着第1步开放了服务器的80、20、 21、110、143、25和8080端口,第2步允许局域网内的192.168.0.2到192.168.0.16及192.168.0.240到 192.168.0.243的客户端访问服务器,第3步允许192.168.0.240及192.168.0.243无限制访问外网,第4步允许 192.168.0.2到192.168.0.16访问外网的80、20、21、110、143、25、8080及DNS和echo,第5步局域网内客户端共享上网。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/25044/showart_1389212.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP