Linux安全管理-Iptables-NAT技术应用

  此文是对前面博文《 Linux网络服务-LAMP之基于NFS+Fastcgi的LAMP搭建 》的延伸,在外网与内网之间加了一台Linux网关服务器;

  实验需求:

  1.DNS Server、Web Server的都是我内网服务器,故他们都是使用内网地址;

  2.WAN Clients来访问我的网站http://www.maoqiu.com时是通过Filrewall的外网地址进行访问,并且解析的域名为Firewall外网卡的地址;

  3.LAN Clients能访问内网的Web Server,并且解析的域名为内网Web Server的真实IP地址;

  实验说明:

  此次实验是通过上次实验做的一个延伸实验,像后端这些服务器的搭建我就不再这里赘述,主要是Iptables的配置,

  如果不清楚去看前面的博文,有疑问请留言。

  实验步骤:

  1.配置DNS服务

  我们知道如果DNS如果要解析来自不同客户端的IP地址,那么就需要用到智能DNS-View,所以下面开始配置DNS服务

  (1)编辑dns服务的主配置文件:

  [root@ns ~]# vim /etc/named.conf

  options {

  directory       "/var/named";

  dump-file       "/var/named/data/cache_dump.db";

  statistics-file "/var/named/data/named_stats.txt";

  allow-query     { any; };

  recursion yes;

  rrset-order {  class IN type A name "www.maoqiu.com" order cyclic;  };

  };

  logging {

  channel default_debug {

  file "data/named.run";

  severity dynamic;

  };

  };

  include "/etc/named.rfc1912.zones";

  (2)编辑区域配置文件

  [root@ns ~]# vim /etc/named.rfc1912.zones

  acl LAN {  #定义的ACL

  172.16.0.0/16;

  };

  view LAN {  #针对我内网网段内的用户对应的解析

  match-clients { LAN; };  #凡是匹配到ACL中的条目都通过这个视图中的区域数据文件进行解析

  zone "." IN {

  type hint;

  file "named.ca";

  };

  zone "localhost.localdomain" IN {

  type master;

  file "named.localhost";

  allow-update { none; };

  };

  zone "localhost" IN {

  type master;

  file "named.localhost";

  allow-update { none; };

  };

  zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa" IN {

  type master;

  file "named.loopback";

  allow-update { none; };

  };

  zone "1.0.0.127.in-addr.arpa" IN {

  type master;

  file "named.loopback";

  allow-update { none; };

  };

  zone "0.in-addr.arpa" IN {

  type master;

  file "named.empty";

  allow-update { none; };

  };

  zone "maoqiu.com" IN {

  type master;

  file "maoqiu.com.zone.lan";

  };

  zone "41.16.172.in-addr.arpa" IN {

  type master;

  file "172.16.41.zone.lan";

  };

  };

  view wan {  #针对除了我内网网段内的用户对应的解析

  match-clients { any; };

  zone "maoqiu.com" IN {

  type master;

  file "maoqiu.com.zone.wan";

  };

  };

  #注意,对于内网区域数据文件一定要将其他区域数据文件包含在View中,根区域也不例外,对于外网客户我这里只做一个区域文件即可

  (3)创建正向和方向的区域数据文件:

  [root@ns ~]# cd /var/named/

  #编辑针对内网服务器两台Web Server的正向区域数据文件

  [root@ns named]# vim maoqiu.com.zone.lan

  $TTL 6400

  @       IN SOA  ns.maoqiu.com. admin.maoqiu.com (

  2014032701      ; serial

  1D      ; refresh

  1H      ; retry

  1W      ; expire

  3H )    ; minimum

  IN      NS      ns

  ns      IN      A       172.16.41.3

  www     IN      A       172.16.41.1

  www     IN      A       172.16.41.2

  #编辑针对内网服务器两台Web Server的反向区域数据文件

  [root@ns named]# vim 172.16.41.zone.lan

  $TTL 6400

  @       IN SOA  ns.maoqiu.com. admin.maoqiu.com (

  2014032701      ; serial

  1D      ; refresh

  1H      ; retry

  1W      ; expire

  3H )    ; minimum

  IN      NS      ns.maoqiu.com.

  3       IN      PTR     ns.maoqiu.com.

  1       IN      PTR     www.maoqiu.com.

  2       IN      PTR    www.maoqiu.com.

  #编辑针对WAN Clients来访问时需要解析的区域数据文件

  [root@ns named]# vim maoqiu.com.zone.wan

  $TTL 6400

  @       IN SOA  ns.maoqiu.com. admin.maoqiu.com (

  2014032701      ; serial

  1D      ; refresh

  1H      ; retry

  1W      ; expire

  3H )    ; minimum

  IN      NS      ns

  ns      IN      A       172.16.41.3

  www     IN      A       10.10.10.1

  (4)修改区域数据文件属性

  [root@ns named]# chmod 640 maoqiu.com.zone.* 172.16.41.zone.lan

  [root@ns named]# chown root:named maoqiu.com.zone.* 172.16.41.zone.lan

  (5)LAN Clients测试(注意:客户端的DNS需要指定DNS Server)

  OK!LAN Client测试完毕,我再去访问一下web服务器

  通过curl -I 获取HTTP首页信息。

  现在LAN Client也能访问网络内的Web Server了

  2.配置Linux网关服务器,

  由拓扑图可见,作为Linux网关服务器它需要两张网卡,一张连接内网、一张连接外网(网卡IP信息配置略)

  我们需要在上面操作就是通过Iptables来发布我们内网的Web服务和DNS服务

  (1)发布Web服务

  [root@FireWall ~]# iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 80 -j DNAT –to-destination 172.16.41.1

  [root@FireWall ~]# iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 80 -j DNAT –to-destination 172.16.41.2

  (2)发布DNS服务

  [root@FireWall ~]#iptables -t nat -A PREROUTING -d 10.10.10.1 -p tcp –dport 53 -j DNAT –to-destination 172.16.41.3

  [root@FireWall ~]#iptables -t nat -A PREROUTING -d 10.10.10.1 -p udp –dport 53 -j DNAT –to-destination 172.16.41.3

  3.测试:

  (1)外网测试DNS是否能够解析到

  OK!外网客户端解析到的域名对应的IP地址就是我Firewall上面外网卡的地址

  (2)测试访问web

  OK!外网也可以访问,实验完成!

  总结:

  1.iptables的原理以及基本应用请参考博文《Linux安全管理-Iptables原理及其应用》

  2.在本实验中主要重点就是DNS的解析配置以及Iptables的配置

  3.实验过程中,由于两台Web Server和DNS Server没有指定Linux网关即使服务器端收到了请求,但是在响应时却找不到回应目标,故服务器的Gateway要指向Linux网关服务器内网卡地址,Web Server的DNS要指向DNS Server!WAN Clients无需指定其网关,但是DNS需要指定!

 

上一篇:安卓防火墙 PS DroidWall

下一篇:关于Session 生命周期的安全分析