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

发布于 2022-10-03 03:03:19 字数 3217 浏览 21 评论 0

很多人反复在问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 编辑 ]

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(9

把时间冻结 2022-10-10 03:03:19

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

新人笑 2022-10-10 03:03:19

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

谁对谁错谁最难过 2022-10-10 03:03:19

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

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

不美如何 2022-10-10 03:03:19

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

小鸟爱天空丶 2022-10-10 03:03:19

谢谢  收藏

蓝眼泪 2022-10-10 03:03:19

学习

偏爱你一生 2022-10-10 03:03:19

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

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

放手` 2022-10-10 03:03:19

支持!

情绪操控生活 2022-10-10 03:03:19

很好的東西, 一可收藏, 二可學習. Yeah....

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文