红联Linux门户
Linux帮助

iptables 应用小记

发布时间:2009-04-19 18:14:03来源:红联作者:lijingen
[i=s] 本帖最后由 lijingen 于 2009-4-20 16:36 编辑 [/i]

[hide=190]测试过了,希望给点意见[code]
#=============================
#SOFT FIREWALL FOR IPTABLES SCRIPTS
#=============================
###################################
#---wan->-eht0------eth1-->--lan--1720.0.0/25
###################################
#! /bin/sh
#=============================
#打开转发
#=============================
echo '1' >/proc/sys/net/ipv4/ip_forward
echo '1' >/proc/sys/net/ipv4/ip_dynaddr
echo '1' >/proc/sys/net/ipv4/tcp_ecn
echo '1' >/proc/sys/net/ipv4/syncookies
echo '1' >/proc/sys/net/ipv4/icmp_echo_ignore_brodcasts
#========================
#清除规则
#========================
iptables -F
iptables -X
iptables -Z
iptables -t nat -F
iptables -t nat -X
iptables -t nat -Z
iptables -t mangle -F
iptables -t mangle -X
iptables -t mangle -Z
#=========================
#默认策略
#=========================
iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP
#=========================
#允许ssh
#=========================
#iptables -A INPUT -p tcp -s 192.168.204.1 --dport 22 -j ACCEPT
#iptables -A OUTPUT -p tcp -d 192.168.204.60 --sport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sprot 22 -j ACCEPT
#================================================================
#允许本地连接
#========================================
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT
#========================================
#允许soft firewall ping
#==================================================================
#iptables -A INPUT -i eth0 -p icmp --icmp-type echo-reply -j ACCEPT
#iptables -A OUTPUT -o eth1 -p icmp --icmp-type echo-request -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-reply -j ACCEPT
iptables -A OUTPUT -p icmp --icmp-type echo-request -j ACCEPT
#====================================================================
#允许外网某台机器可以ping,这里的外网机器为192的网段eth0
#====================================================================
iptables -A INPUT -s 192.168.204.1 -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -d 192.168.204.1 -p icmp --icmp-type 0 -j ACCEPT
#====================================================================
#允许内网机器ping,这是内网eth1
#====================================================================
iptables -A INPUT -s 172.0.0.2 -p icmp --icmp-type 8 -j ACCEPT
iptables -A OUTPUT -d 172.0.0.2 -p icmp --icmp-type 0 -j ACCEPT
#====================================================================
#禁止 135 137 138 139 445的端口请求
#处理IP碎片数量,防止攻击,允许每秒100个
#转发链的监控.开启转发功能
iptables -A FORWARD -f -m limit --limit 100/s --limit-burst 100 -j ACCEPT
iptables -A FORWARD -p tcp -m multiport --dport 135,137,138,139,445 -j DROP
iptables -A FORWARD -i eth0 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
#iptables -A FORWARD -i eth1 -o eth0 -j ACCEPT
#------------------------
#dns
#------------------------
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --sport 53 -m state --state ESTABLISHED -j ACCEPT
#===================================================
#端口映射,eth0外网接口,eth1内网接口
#====================================================
#web服务
#--------------------------------------------
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.204.60 --dport 80 -j DNAT --to-destination 172.0.0.2:80
iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 172.0.0.2 -sport 80 -j SNAT --to-source 192.168.204.60:80

iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.204.60 --dport 25 -j DNAT --to-destination 172.0.0.3:25
iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 172.0.0.3 -sport 25 -j SNAT --to-source 192.168.204.60:25
iptables -t nat -A PREROUTING -i eth0 -p tcp -d 192.168.204.60 --dport 110 -j DNAT --to-destination 172.0.0.3:110
iptables -t nat -A POSTROUTING -o eth0 -p tcp -s 172.0.0.3 -sport 110 -j SNAT --to-source 192.168.204.60:110

iptables -A FORWARD -i eth0 -p tcp --dport 80 -d 172.0.0.2 -j ACCEPT
iptables -A FORWARD -i eth1 -s 172.0.0.2 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -s 172.0.0.3 -p tcp --sport 25 -m state --state ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -s 172.0.0.3 -p tcp --sport 110 -m state --state ESTABLISHED -j ACCEPT

iptables -A FORWARD -i eth1 -m state --state NEW -j ACCEPT
iptables -A FORWARD -o eth1 -d 172.0.0.0/25 -p tcp -m multiport --dport 80,25,110 -j ACCEPT
iptables -A FORWARD -i eth1 -j ACCEPT

#iptables -t nat -A PREROUTING -s 192.168.1.0/24 -p tcp --dport 80 -i eth0 -j REDIRECT --to 3128
#iptables -t nat -A PREROUTING -d a.b.c.d -p tcp --dport 80 -j DNAT --to 192.168.1.10
#iptables -t nat -A POSTROUTING -d 192.168.1.10 -p tcp --dport 80 -j SNAT --to 192.168.1.1


#=================================================================
#source nat,上网
#====================================================================
#上网为动态ip
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
#上网为静态ip
iptables -t nat -A POSTROUTING -s 172.0.0.0/25 -p tcp -o eth0 -j SNAT --to 192.168.204.60
#上网为adsl
#iptables -t nat -A POSTROUTING -o ppp0 -s 192.168.62.0/24 -j MASQUERADE

#------------------------------------------------------------
#iptables -I FORWARD -p udp --dport 53 -m string --string "tencent" --algo bm -j DROP
#iptables -I FORWARD -p tcp -m multiport --dport 80,443 -m layer7 --l7proto qq -j DROP
#iptables -I FORWARD -p udp --dport 8000 -j DROP
#iptables -I FORWARD -p tcp -m layer7 --l7proto socks -j DROP
#iptables -I FORWARD -p tcp -m layer7 --l7proto httpagent -j DROP
#iptables -I FORWARD -p udp --dport 53 -m string --string "messenger" --algo bm -j DROP
#iptables -I FORWARD -p tcp -m multiport --dport 80,443 -m layer7 --l7proto msnmessenger -j DROP
#iptables -I FORWARD -p udp --dport 1863 -j DROP

#---------------------------------------------------------------------------
#iptables -t mangle -I FORWARD -m mac --mac-sources XX:XX:XX:XX:XX:XX -j CONNMARK --set-mark 1
#iptables -I FORWARD -m connmark --mark 1 -j ACCEPT
#原理:
#1、在 mangle 表里把该 MAC 地址产生的所有连接做个标记
#2、在 filter 表里把符合连接标记的所有数据包提前放走,不受后面策略限制
#
#不知道能否成功,原因:不知道 mangle 表的 FORWARD 读取 mac 地址时是否正确
#上qq
#iptables -t mangle -I PREROUTING -m mac --mac-source 00:0C:E7:B0:B9:E2 -j CONNMARK --set-mark 1
# iptables -I FORWARD -m connmark --mark 1 -j ACCEPT
#或者iptables -t mangle -I FORWARD -m mac --mac-source 00:1A:73:8E:09:C6 -j CONNMARK --set-mark 1
#iptables -t mangle -I PREROUTING -m mac --mac-source 00:0C:76:B0:29:82 -j CONNMARK --set-mark 1
#iptables -I FORWARD -m connmark --mark 1 -j ACCEPT
#=======================================================================================================


[/code][/hide]
文章评论

共有 83 条评论

  1. aust_zhang 于 2010-01-21 17:30:39发表:

    sfasfasf

  2. aust_zhang 于 2010-01-21 17:30:38发表:

    asfasdfdasfdasf

  3. aust_zhang 于 2010-01-21 17:30:32发表:

    asfasdfdasfdasf

  4. aust_zhang 于 2010-01-21 17:30:19发表:

    safadsf

  5. aust_zhang 于 2010-01-21 17:30:18发表:

    safadsf

  6. aust_zhang 于 2010-01-21 17:30:16发表:

    safadsf

  7. aust_zhang 于 2010-01-21 17:30:13发表:

    safafdaf

  8. aust_zhang 于 2010-01-21 17:29:57发表:

    sadfasf

  9. aust_zhang 于 2010-01-21 17:29:54发表:

    sadfasf

  10. aust_zhang 于 2010-01-21 17:29:50发表:

    sdfasfas

  11. haitao0228 于 2010-01-21 14:00:32发表:

    我哪有那么高的积分啊,救命啊

  12. jjk334 于 2010-01-20 11:03:59发表:

    积分貌似不够...

  13. jjk334 于 2010-01-20 11:03:45发表:

    积分貌似不够...

  14. applemind 于 2010-01-17 23:19:39发表:

    想看看!!

  15. jack_xuwei 于 2010-01-15 11:15:21发表:

    没积分 呀 ,好想看 呢

  16. bit 于 2010-01-15 08:39:45发表:

    学习下。。。

  17. qrpengx 于 2010-01-14 10:29:44发表:

    很强悍的脚本,呵呵

  18. jack_xuwei 于 2010-01-13 20:36:01发表:

    回一帖 ,加权限 ?

  19. jack_xuwei 于 2010-01-13 20:35:41发表:

    看不到呀 ,难道权限 不够 呀 ,想看看呢

  20. wing001 于 2010-01-13 12:08:39发表:

    look

  21. lzping520 于 2010-01-13 03:09:39发表:

    郁闷,看不到。、。。

  22. 地下发动机 于 2010-01-12 16:34:43发表:

    等积
    分.....

  23. djfml 于 2009-12-20 09:21:43发表:

    -_-b 竟然要这么高的积分?

  24. linux.leo 于 2009-12-17 17:04:45发表:

    看看先

  25. ribicn2001 于 2009-12-15 15:07:15发表:

    en ,这个不错。想看下。谢谢了!!!

  26. szlfeng 于 2009-12-14 20:03:32发表:

    看看

  27. szlfeng 于 2009-12-14 19:34:32发表:

    看不了啊。积分低。。晕

  28. bobo504 于 2009-12-01 23:34:49发表:

    靠,我都没看过我多少分

  29. swjm119 于 2009-12-01 15:44:40发表:

    verygood

  30. wangyoubang 于 2009-07-29 23:49:57发表:

    要是楼主吧基于模块的Iptables策略在多写几条更棒。我给你加分。

  31. wangyoubang 于 2009-07-29 23:48:51发表:

    不错 的

  32. kafan160 于 2009-07-23 14:33:12发表:

    回了,咋个看不到了呢

  33. kafan160 于 2009-07-23 14:32:01发表:

    靠,权限有点高!

  34. igdxigdx 于 2009-05-13 23:32:30发表:

    积分少了,看不到啊。

  35. chenzhj 于 2009-05-13 11:22:23发表:

    这个保密看一下

  36. flowerzheng 于 2009-04-30 14:54:29发表:

    很好,很有用

  37. longjiuxiong 于 2009-04-29 17:22:36发表:

    看不到,加油中。

  38. xuyiqiang 于 2009-04-28 22:15:40发表:

    很好~~!!!

  39. l460618498 于 2009-04-25 20:49:11发表:

    怎么看不到啊

  40. xllongxiao 于 2009-04-24 17:54:30发表:

    Redhat.Enterprise.Linux.V5.iso