iptables 资料

 

  
  
  
  
  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  

你可能感兴趣的:(资料,表)