注册 登录
电子工程世界-论坛 返回首页 EEWORLD首页 频道 EE大学堂 下载中心 Datasheet 专题
daicheng的个人空间 https://home.eeworld.com.cn/space-uid-78216.html [收藏] [复制] [分享] [RSS]
日志

iptables 资料

已有 1728 次阅读2010-10-14 17:09 |

  1. 转:
  2. 表  
  3.  filter     #用于过滤  
  4.  nat     #做NAT  
  5. 链  
  6.  input   =>filter #目的ip是本机的数据包  
  7.  forward   =>filter #穿过本机的数据包  
  8.  prerouting  =>nat  #修改目的地址(DNAT)  
  9.  postrouting  =>nat  #修改源地址(SNAT)  
  10.   
  11. iptables -t 要操作的表 操作命令 要操作的链 规则号码 匹配条件 -j 匹配到以后的命令   
  12. iptables -I INPUT -j DROP   #-t 默认为filter  
  13. iptables -I INPUT 3 -j DROP   #链接里插入一条规则(插入第三条)  
  14.   
  15. iptables -D INPUT 3    #按号码匹配删除  
  16. iptables -D INPUT -s 192.168.0.1 -j DROP #按内容匹配删除  
  17.   
  18. iptables -R INPUT 3 -j ACCEPT   #将原来3的规则改为-j ACCEPT  
  19.   
  20. iptables -P INPUT DROP    #设置默认规则  
  21.   
  22. iptables -F INPUT    #清空filter表INPUT链中的所有规则  
  23. iptables -t nat -F PREROUTING   
  24. iptables -t nat vxnL PREROUTING     
  25.  --# v: 显示详细信息  
  26.  --# x: 在v的基础上,禁止自动单位换算  
  27.  --# n: 只显示IP地址和端口号码,不显示域名和服务名称  
  28. ========匹配条件  
  29. -i  -i eth0     #流入接口(是否从网口eth0进来)  
  30. -o      #流出接口  
  31. -s  -s 192.168.1.0/24    #来源地址  
  32. -d      #目的地址  
  33. -p  -p icmp --icmp-type    #协议类型  
  34. --sport  --sport 1000:3000   #来源的端口  
  35. --dport  --dport 1000:  :3000   #目的的端口1000:(1000端口以上) :3000(3000端口以下)  
  36.   
  37. -s 192.168.0.1 -d www.sina.com -p tcp -dport 80  
  38. ================================  
  39. iptables -A INPUT -j ACCEPT   #允许所有访问本机IP的数据包通过  
  40. iptables -A FORWARD -s 192.168.0.1 -j DROP #阻止来源地址为192.168.80.39的数据包通过本机  
  41.   
  42. -j DNAT      #目的地址转换,DNAT支持转换为单IP,也支持转换到IP址  
  43.   
  44. 池  
  45. iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.0.3:80  
  46. #把从ppp0进来的要访问tcp/80的数据包的地址改为192.168.0.3  
  47.   
  48. -j SNAT      #源地址转换  
  49. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1  
  50. #将内网192.168.0.0/24的源地址改为1.1.1.1,用于nat表  
  51. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j SNAT --to 1.1.1.1-1.1.1.10  
  52. #修改成为一个地址池   
  53.   
  54. -j MASQUERADE     #动态源地址转换  
  55. iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -j MASQUERADE  
  56. #将源地址为192.168.0.0/24的数据包进行地址伪装  
  57.   
  58. ===================附加模块  
  59. state      #按包状态匹配  
  60. mac      #按来源mac匹配  
  61. limit      #按包速率匹配  
  62. multiport     #多端口匹配  
  63.   
  64. --state  
  65.   -m state      #new,related,established,invalid  
  66.  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
  67.  #包状态 RELATED(衍生态),ESTABLISHED(连接态),NEW(有别于tcp的syn),INVALID(不被识别的)  
  68.  iptables -A FORWARD -m mac --mac-source XX:XX:XX:XX:XX:XX -j DROP  
  69.  #阻断来自某MAC地址的数据包通过本机  
  70.  iptables -A FORWARD -d 192.168.0.1 -m limit --limit 50/s -j ACCEPT  
  71.  #用一定速率去匹配数据包  
  72.  iptables -A INPUT -p tcp -m multiport --dports 21,22,25,80,110 -j ACCEPT  
  73.  #一次匹配多个端口  
  74.   
  75.   
  76. =======================================实例分析===================================  
  77. 单服务器的防护:  
  78.  iptables -A INPUT -i lo -j ACCEPT  
  79.  iptables -A INPUT -p tcp -m multiport --dport 22,80 -j ACCEPT  
  80.  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
  81.  iptables -P INPUT DROP  
  82. 制作网关:  
  83.  echo "1" > /proc/sys/net/ipv4/ip_forward    #启用路由转发  
  84.  iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o ppp0 -j MASQUERADE  
  85. 限制内网用户:filter->forward  
  86.  iptables -A FORWARD -s 192.168.0.3 -j DROP  
  87.  iptables -A FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP  
  88.  iptables -A FORWARD -d www.163.com -j DROP  
  89. 内网做对外服务器:  
  90.  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 80 -j DNAT --to 192.168.1.1  
  91.  iptables -t nat -A PREROUTING -i ppp0 -p tcp --dport 81 -j DNAT --to 192.168.1.2:80  
  92.   
  93. ========================================连接追踪模块=================================  
  94. 主动模式(ACTIVE)  
  95.  使用连接追踪模块(打开tcp/20,防火墙打开高范围端口,配置ftp,减小被动模式端口范围)  
  96.   modprobe ip_nat_ftp  
  97.   iptables -A INPUT -p tcp --dport 21 -j ACCEPT  
  98.   iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
  99.   iptables -P INPUT DROP  
  100. 被动模式(PASSIVE)  
  101.   
  102. =============================网关策略=================================  
  103. echo "1" > /proc/sys/net/ipv4/ip_forward  
  104. echo "1" > /proc/sys/net/ipv4/tcp_syncookies  
  105. echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses   
  106. modprobe ip_nat_ftp  
  107.   
  108. 堵:  
  109.  iptables -A FORWARD -p tcp --dport 80 -j DROP  
  110.  iptables -A FORWARD -p tcp --dport yyy:zzz -j DROP  
  111. 通:  
  112.  iptables -A FORWARD -p tcp --dport xxx -j ACCEPT  
  113.  iptables -A FORWARD -p tcp --dport yyy:zzz -j ACCEPT  
  114.  iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j ACCEPT  
  115.  iptables -P FORWARD DROP  
  116.   
  117. ==========================三大纪律五项注意=============================  
  118. 3: filter nat mangle  
  119. 5: prerouting,input,forward,output,postrouting  
  120.   
  121. ==========================注意事项==============================  
  122.  #养车好的习惯  
  123.  iptables -vnL  
  124.  iptables -t nat -vnL  
  125.  iptables-save  
  126.  #注意逻辑顺序  
  127.  iptables -A INPUT -p tcp --dport xxx -j ACCEPT  
  128.  iptables -I INPUT -p tcp --dport yyy -j ACCEPT  
  129.   
  130. ==========================FAQ======================================  
  131.  iptables -m 模块名 -h  
  132.  /lib/modules/`uname -r`/kernel/net/ipv4/netfilter  #模块存放的路径  
  133.  modprobe ip_nat_ftp      #加载模块  
  134.   
  135. =========================实战======================================  
  136.  iptables -A INPUT -i lo -j ACCEPT  
  137.  iptables -A INPUT -i eth1 -p tcp --dport 22 -j ACCEPT  
  138.  iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT  
  139.  iptables -P INPUT DROP  
  140.  iptables -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 j SNAT --to 202.106.0.254  
  141.   
  142.  iptables -t nat -A POSTROUTING -d 202.106.0.254 -p tcp --dport 80 -j DNAT --to 172.17.0.1  
  143.  iptables -A FORWARD -i eth2 -p eth1 -m state --state NEW -j DROP 
评论 (0 个评论)

facelist doodle 涂鸦板

您需要登录后才可以评论 登录 | 注册

热门文章