1. [拓扑]
  2. 1.三宿主机
  3. eth0 : 212.75.218.2
  4. eth1 : 192.168.1.253/24
  5. eth1 : 192.168.1.254/24
  6.  
  7. 2.外网主机
  8. eth0 : 212.74.218.1
  9.  
  10. 3.内网客户端 (可以有很多,测试用一台)
  11. eth0 : 192.168.1.51/24
  12.  
  13. 4.内网服务器 (可以有很多,测试用一台)
  14. eth0 : 192.168.1.1/24
  15. [配置]
  16. [三宿主机]
  17. 1.linux server 当作防火墙来用,停掉所有的服务,将iptables默认策略设置为DROP
  18. iptable -P INPUT DROP
  19. iptable -P OUTPUT DROP
  20. iptable -P FORWARD DROP
  21.  
  22. 2.打开linux转发
  23. echo 1 > /proc/sys/net/ipv4/ip_forward
  24.  
  25. 3.添加路由表(默认有可以不用添加)
  26. route add -host 192.168.1.51 dev eth2
  27. route add -host 192.168.1.1 dev eth1
  28.  
  29. 4.添加目标地址转换(设置外网访问内网服务器)
  30. iptable -t nat -A PREROUTING -d 212.75.218.2 -t tcp --dport 80 -j DNET --to-destination 192.168.1.1:80 // 目标地址转化
  31. iptable -A FORWARD -d 192.168.1.1 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT // 数据包流入192.168.1.1设置为accept
  32. iptable -A FORWARD -s 192.168.1.1 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT // 数据包从192.168.1.1流出设置为accept
  33. //此时外网可以访问212.75.218.2会访问内网192.168.1.1的服务器 只限与tcp类型
  34.  
  35. 5.设置内网客户端访问外网
  36. iptable -t nat -A POSTROUTING -s 192.168.1.51 -p tcp -m state --state NEW,ESTABLISHED -j SNET --to-source 212.75.218.2 // 伪装成外网地址访问
  37. iptable -A FORWARD -s 192.168.1.51 -p tcp -m state --state NEW,ESTABLISHED -j ACCEPT // 添加内网用户端留出数据包设置为接受
  38. iptable -A FORWARD -d 192.168.1.51 -p tcp -m state --state ESTABLISHED -j ACCEPT // 内网客户端请求数据包流会设置为accept
  39. // 此时内网客户段可以访问外网数据了 只限与tcp类型
  40.  
  41.  
  42. [内网客户端]
  43. 1.设置ip地址
  44. ifconfig eth0 192.168.1.51/24 up
  45. 2.添加网关
  46. route add default gw 192.168.1.254
  47.  
  48. [内网服务器]
  49. 1.设置ip地址
  50. ifconfig eth0 192.168.1.1/24 up
  51. 1.添加网关
  52. route add default gw 192.168.1.253

  

版权声明:本文为luowen原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/luowen/p/3984052.html