免费注册 查看新帖 |

Chinaunix

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

一个高效、安全、通用的防火墙共享上网脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-05-12 00:58 |只看该作者 |倒序浏览
很多人反复在问Linux如何设置才能实现共享上网,干脆写一个步骤出来吧

1、vi /usr/local/sbin/firewall

  1. #! /bin/bash
  2. # Project by Platinum, 2005-05-12"

  3. # Set MODE (LAN or ADSL)
  4. MODE="ADSL"

  5. # Set default gateway (如果MODE==ADSL,此项可以忽略)
  6. GATEWAY="外网网关"

  7. # Set Interface WAN (如果MODE==ADSL,此项可以忽略)
  8. WAN_IP="外网IP地址"
  9. WAN_ETH="外网网卡"
  10. WAN_MASK="外网掩码"

  11. # Set Interface LAN
  12. LAN_IP="内网IP地址"
  13. LAN_NET="内网网络地址"
  14. LAN_ETH="内网网卡"
  15. LAN_MASK="内网掩码"

  16. # Set manager
  17. MANAGER_IP="内网管理员IP"
  18. MANAGER_MAC="内网管理员MAC"

  19. # Initialize modules
  20. modprobe ip_nat_ftp
  21. echo 1 > /proc/sys/net/ipv4/ip_forward

  22. # Initialize Interface LAN
  23. ifconfig $LAN_ETH $LAN_IP netmask $LAN_MASK

  24. # Initialize policy
  25. iptables -P INPUT DROP
  26. iptables -P FORWARD ACCEPT
  27. iptables -F
  28. iptables -t nat -F

  29. # Deny ACK attack
  30. iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP
  31. iptables -A FORWARD -p tcp ! --syn -m state --state NEW -j DROP

  32. # Initialize Rules
  33. iptables -A INPUT -i lo -j ACCEPT
  34. iptables -A INPUT -i $LAN_ETH -s $MANAGER_IP -m mac --mac-source $MANAGER_MAC -j ACCEPT

  35. # Added in 2006.02.08, accept all icmp packets except echo-request rate 5/s
  36. # ========== begin ==========
  37. iptables -A INPUT -p icmp --icmp-type 8 -m limit --limit 5/s -j ACCEPT
  38. iptables -A INPUT -p icmp --icmp-type 8 -j DROP
  39. iptables -A INPUT -p icmp -j ACCEPT
  40. # =========== end ===========

  41. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

  42. case "$MODE" in
  43.    LAN)
  44.       # Initialize Interface WAN
  45.       ifconfig $WAN_ETH $WAN_IP netmask $WAN_MASK
  46.       iptables -t nat -A POSTROUTING -s $LAN_NET -o $WAN_ETH -j SNAT --to $WAN_IP
  47.    ;;
  48.    ADSL)
  49.       iptables -t nat -A POSTROUTING -s $LAN_NET -o ppp0 -j MASQUERADE
  50.       GATEWAY=`ifconfig ppp0|grep inet|awk '{print $3}'|awk -F: '{print $2}'`
  51.    ;;
  52. esac

  53. ip route replace default via $GATEWAY
复制代码


2、chmod 700 /usr/local/sbin/firewall
  只有root权限才能读写执行

3、echo "/usr/local/sbin/firewall" >;>; /etc/rc.local
  让系统启动后自动执行脚本

4、reboot
  重启系统

自己根据自己的情况改一下就可以了,应该不难懂


注意:
如果是直接设置IP上网,MODE选择LAN
如果是用PPPOE拨号上网,MODE选择ADSL,且保证在执行这个脚本之前已经拨号


[ 本帖最后由 platinum 于 2006-8-14 20:42 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2005-05-12 08:55 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

我靠....
00:58,斑竹真是煞费苦心啊....
顶顶顶....

论坛徽章:
0
3 [报告]
发表于 2005-05-12 09:21 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

脚本这个东西偶就纳闷,一句话就能写明白的东西要写一百句。。。

论坛徽章:
0
4 [报告]
发表于 2005-05-12 09:23 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

[quote]原帖由 "采风"]脚本这个东西偶就纳闷,一句话就能写明白的东西要写一百句。。。 [/quote 发表:

这个修改起来非常方便,而且很智能啊!
不知道好表说不好,小心我揭你老底

论坛徽章:
0
5 [报告]
发表于 2005-05-12 09:26 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

版主辛苦了,感动ing ,支持!!!

论坛徽章:
0
6 [报告]
发表于 2005-05-12 09:49 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

谢谢  收藏

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
7 [报告]
发表于 2005-05-12 10:59 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

学习

论坛徽章:
0
8 [报告]
发表于 2005-05-12 11:01 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

[quote]原帖由 "寂寞烈火"]学习[/quote 发表:

写的不好,烈火哥多指点指点

论坛徽章:
0
9 [报告]
发表于 2005-05-12 17:02 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

支持!

论坛徽章:
0
10 [报告]
发表于 2005-05-12 17:35 |只看该作者

一个高效、安全、通用的防火墙共享上网脚本

很好的東西, 一可收藏, 二可學習. Yeah....
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP