iptables 详细的使用指南

2016-08-15 23:08:14 6088

网关服务器安全策略

目标 : 网关服务器系统自生安全策略,只对内网用户开放22端口(sshd服务)

  #清空 filter table
  [root@localhost]# iptables -F -t filter
  [root@localhost]# iptables -X -t filter
  [root@localhost]# iptables -Z -t filter
  
  #清空 nat table
  [root@localhost]# iptables -F -t nat
  [root@localhost]# iptables -X -t nat
  [root@localhost]# iptables -Z -t nat
  
  #设置默认策略(INPUT链默认为DROP)
  [root@localhost]# iptables -t filter -P INPUT drop
  [root@localhost]# iptables -t filter -P OUTPUT ACCEPT
  [root@localhost]# iptables -t filter -P FORWARD ACCEPT
  
  #回环接口(lo),默认accept
  [root@localhost]# iptables -A INPUT -p ALL -i lo -j ACCEPT
  
  #只对内网用户开放sshd服务
  [root@localhost]# iptables -A INPUT -p tcp -s 192.168.138.0/24 --dport 22 -j ACCEPT

说明: 防火墙的策略顺序一般都是 从 非信任 ==> 信任,默认关闭所有访问权限,然后按照需要逐条开放访问权限.

共享上网(nat)

目标:使局域网的用户都可以访问外网的服务器

  [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
  [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

说明: SNAT 和 MASQUERADE 区别

SNAT : 不管是几个地址,必须明确的指定要SNAT的ip,适合网关服务器有固定地址或者是固定地址范围. MASQUERADE : 是针对ADSL动态拨号这种场景而设计,从服务器的网络接口上,自动获取当前ip地址来做NAT,这样就实现了动态SNAT地址转换

内网的服务器对外服务(端口映射)

目标:使外网用户可以访问到局域网192.168.138.21这台HTTP服务

  [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
  [root@localhost]# iptables -t nat -A PREROUTING -p tcp -m tcp --dport 80 -j DNAT --to-destination 192.168.138.21
  [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

在网关服务器进行透明代理

目标: 使局域网用户,访问外网web服务时,自动使用squid作web透明代理服务器。

  [root@localhost]# echo 1 > /proc/sys/net/ipv4/ip_forward
  [root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j DNAT --to 192.168.138.1
  [root@localhost]# iptables -t nat -A PREROUTING -s 192.168.138.0/24 -p tcp --dport 80 -i eth0 -j REDIRECT --to 3128 
  [root@localhost]# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: