1. ACL :访问控制列表放在named.conf的头部,如果acl的内容太多,可以另创建一个文件,将acl放在该文件中,再在主配置文件named.conf用include 将文件加载进来(记得放在头部)

访问控制列表的作用:可以用在配置文件像allow-query{ mynet; }; 使我们只需要定义一个acl,而不需要敲多遍同样的地址
示例:
# vim /etc/named.conf
acl mynet {
10.0.0.0/16;
192.168.10.10;
172.16.0.0/24;
};

BIND默认预定义了4个名称的地址匹配列表
any:所有主机
localhost:本机
localhosts:本地网络上的所有主机
none:不匹配任何地址

2. also-notify:主动通知从域名服务器进行更新,在主域名服务器进行更新后,而不需要在等规定的时间后才通知从域名服务器进行更新
# vim /etc/named.conf
options {
also-notify { 10.0.5.151; };
};

3. 基于视图(view)的域名服务器

(1) 分离解析(split)
作用:将来自不同地址的客服机请求解析同一域名时,为其提供不同的解析结果

案例:现在我在我之前做的主域名服务器做视图域名服务器,现在这台主机由两个网卡,ip分别是192.168.100.20,192.168.200.20,我现在要实现如果是192.168.100.0的网段的主机做域名解析,例如nslookup dns.hngd.com,将返回该域名的IP为192.168.100.20;如果是192.168.200.0的网段的主机做域名解析,例如nslookup dns.hngd.com,将返回该域名的IP为192.168.200.20。

1. 在named.conf主配置文件中为不同的客户机地址启用不同的zone区域设置,各自使用独立的数据文件
[root@主人 ~]# cat /etc/named.conf

options {
listen-on port 53 { any; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
allow-query { any; };
recursion yes;

dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;

/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";

managed-keys-directory "/var/named/dynamic";
};

/*logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
*/

view 'internal' { //内部网络
match-clients{ 192.168.100.0/24; }; //匹配192.168.100.0网段的客户机
zone "hngd.com" IN{
type master;
file "inter.hngd.zones";
allow-update { none; };
};

zone "100.168.192.in-addr.arpa" IN{
type master;
file "inter.192.168.100.zone";
allow-update{ none; };
};
};
view 'external' { //外部网络
match-clients{ 192.168.200.0/24; }; //匹配192.168.200.0网段的客户机
zone "hngd.com" IN{
type master;
file "exter.hngd.zones";
allow-update { none; };
};

zone "200.168.192.in-addr.arpa" IN{
type master;
file "exter.192.168.100.zone";
allow-update{ none; };
};
};

#include "/etc/named.rfc1912.zones";
#include "/etc/named.root.key";

2. 配置zone文件

[root@主人 ~]# cat /var/named/inter.hngd.zones
$ORIGIN hngd.com.
$TTL 1D
@ IN SOA dns.hngd.com. admin.hngd.com. (
2016032012
1D
1H
1W
3H
)
NS dns.hngd.com.
NS slave.hngd.com.
MX 5 mail.hngd.com.
slave IN A 192.168.100.2
dns IN A 192.168.100.20
mail IN A 192.168.100.10
www IN A 192.168.100.11
bbs IN CNAME www

[root@主人 ~]# cat /var/named/inter.192.168.100.zone
$ORIGIN 100.168.192.in-addr.arpa.
$TTL 1D
@ IN SOA dns.hngd.com. admin.hngd.com. (
2016032012
1D
1H
1W
3H
)
NS dns.hngd.com.
20 IN PTR dns.hngd.com.
10 IN PTR mail.hngd.com.
11 IN PTR www.hngd.com.
2 IN PTR slave.hngd.com.

[root@主人 ~]# cat /var/named/exter.hngd.zones
$ORIGIN hngd.com.
$TTL 1D
@ IN SOA dns.hngd.com. admin.hngd.com. (
2016032012
1D
1H
1W
3H
)
NS dns.hngd.com.
MX 5 mail.hngd.com.
dns IN A 192.168.200.20
mail IN A 192.168.200.10
www IN A 192.168.200.11
bbs IN CNAME www

[root@主人 ~]# cat /var/named/exter.192.168.100.zone
$ORIGIN 200.168.192.in-addr.arpa.
$TTL 1D
@ IN SOA dns.hngd.com. admin.hngd.com. (
2016032012
1D
1H
1W
3H
)
NS dns.hngd.com.
20 IN PTR dns.hngd.com.
10 IN PTR mail.hngd.com.
11 IN PTR www.hngd.com.
2 IN PTR slave.hngd.com.

3. 注意要将zone数据文件的属主和属组都改为named
-rw-r--r-- 1 named named 243 3月 27 10:20 exter.192.168.100.zone
-rw-r--r-- 1 named named 238 3月 27 10:20 exter.hngd.zones
-rw-r--r-- 1 named named 243 3月 20 19:07 inter.192.168.100.zone
-rw-r--r-- 1 named named 283 3月 20 19:05 inter.hngd.zones

4. 将/etc/resolv.conf文件的nameserver 改为192.168.100.20
5. 重启named服务
6. 关闭防火墙和selinux
7. 测试:发现同一个域名在不同网段获取到不同的ip
[root@主人 ~]# nslookup dns.hngd.com 192.168.100.20
Server: 192.168.100.20
Address: 192.168.100.20#53

Name: dns.hngd.com
Address: 192.168.100.20

[root@主人 ~]# nslookup dns.hngd.com 192.168.200.20
Server: 192.168.200.20
Address: 192.168.200.20#53

Name: dns.hngd.com
Address: 192.168.200.20

题外话:一个文件的属主如果被删除,那我们再用ls -l来查询该文件时会发现文件的属主是一个数字,该数字就是用户的UID
[root@lcl ~]# ll aa
-rw-r--r-- 1 aa bb 5 3月 22 15:30 aa
[root@lcl ~]# userdel aa
[root@lcl ~]# ll aa
-rw-r--r-- 1 516 bb 5 3月 22 15:30 aa


安全设置

allow-transfer{ 192.168.100.2; }; 只允许192.168.100.2主机传递主域名服务器的数据

事务签名
TSIG:保障主从DNS之间的复制安全性
*使用对称加密技术
*在主DNS上生成密钥

生成密钥
[root@lcl ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n host 域名|视图名
-a:算法
-b:生成的密钥的长度
-n:名称
主DNS有视图的话则对每个视图要生成一个密钥

----------
案例:我还是拿之前那台主DNS做TSIG事务签名,实现安全通信
当前主DNS有两个网卡:192.168.200.20,192.168.100.20
从DNS有两个网卡:192.168.200.1,192.168.100.1

1. 在主DNS上生成密钥(每个视图都要生成一个密钥)

[root@主人 ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n host internal
Kinternal.+157+18216
[root@主人 ~]# dnssec-keygen -a HMAC-MD5 -b 128 -n host external
Kexternal.+157+33008
[root@主人 ~]# cat Kexternal.+157+33008.key //公钥、私钥是一致的
external. IN KEY 512 3 157 KW2B3L1xyD26/P9dYAQv+w==
[root@主人 ~]# cat Kexternal.+157+33008.private
Private-key-format: v1.3
Algorithm: 157 (HMAC_MD5)
Key: KW2B3L1xyD26/P9dYAQv+w==
Bits: AAA=
Created: 20160327153349
Publish: 20160327153349
Activate: 20160327153349

2. 在主配置文件中加载密钥

#/etc/named.conf
key "internal" {
algorithm hmac-md5;
secret "0iTnpUvY5kOBjFkAAFN6xA==";
};

key "external" {
algorithm hmac-md5;
secret "KW2B3L1xyD26/P9dYAQv+w==";
};

3. 设置主服务器的named.conf配置文件,在具体视图中使用密钥访问

#/etc/named.conf
view 'internal' {
match-clients{ 192.168.100.0/24; };
server 192.168.100.1 { keys { internal; }; }; //指定从DNS的ip,并且需要通过密钥进行数据传输
zone "hngd.com" IN{
type master;
file "inter.hngd.zones";
allow-update { none; };
allow-transfer { key internal; }; //从主DNS获取数据文件需要通过密钥认证
also-notify {192.168.100.1; }; // master端配置, 修改配置后主动给slave发送更新通告消息
};

zone "100.168.192.in-addr.arpa" IN{
type master;
file "inter.192.168.100.zone";
allow-update{ none; };
allow-transfer { key internal; };
also-notify {192.168.100.1; };
};
};
view 'external' {
match-clients{ 192.168.200.0/24; };
server 192.168.200.1 { keys { external; }; };
zone "hngd.com" IN{
type master;
file "exter.hngd.zones";
allow-update { none; };
allow-transfer { key external; };
also-notify {192.168.200.1; };
};

zone "200.168.192.in-addr.arpa" IN{
type master;
file "exter.192.168.100.zone";
allow-update{ none; };
allow-transfer { key external; };
also-notify {192.168.200.1; };
};
};

4.在从服务器上配置密钥认证访问

key "internal" {
algorithm hmac-md5;
secret "0iTnpUvY5kOBjFkAAFN6xA==";
};

key "external" {
algorithm hmac-md5;
secret "KW2B3L1xyD26/P9dYAQv+w==";
};

view "internal" {
match-clients{ 192.168.100.0/24; };
server 192.168.100.20 { keys { internal; }; };
zone "hngd.com" IN{
type slave;
file "slaves/inter.hngd.zones";
masters { 192.168.100.20; };
notify-source 192.168.100.20; //默认是*, 表示当前的主机ip, 可以指定某个ip和port, ip必须在slave的master中包含,然后经过抓包(在master上抓取向slave发送NOTIFY信息的包)发现

};

zone "100.168.192.in-addr.arpa" IN{
type slave;
file "slaves/inter.192.168.100.zone";
masters { 192.168.100.20; };
notify-source 192.168.100.20;
};
};
view "external" {
match-clients{ 192.168.200.0/24; };
server 192.168.200.20 { keys { external; }; };
zone "hngd.com" IN{
type slave;
file "slaves/exter.hngd.zones";
masters { 192.168.200.20; };
masters { 192.168.200.20; };
notify-source 192.168.200.20;
};

zone "200.168.192.in-addr.arpa" IN{
type slave;
file "slaves/exter.192.168.100.zone";
masters { 192.168.200.20; };
notify-source 192.168.200.20;
};
};

5. 配置好上面这些后,在从DNS上重启named服务,再查看/var/named/slaves,如果是否看到下面的数据文件

6. 如果没有,看看主从DNS服务器的防火墙和selinux有没有关闭,还有/etc/resolv.conf文件nameserver有没有写成相应的dns的ip
7. 如果还是没有,看看/var/log/messgage,查看错误信息,如果是主从服务器没有同步的原因,那就进行

主从域名服务器要求时间同步,如果主从域名服务器时间不同步则会造成从域名服务器不能生成数据文件,查看/var/message发现时钟不同步,所以我们可以通过下面的方法来实现同步(主、从服务器都需要进行安装)
1.查看/etc/xinetd.d/下面有没有time-dgram、 time-stream
[root@主人 ~]# ls /etc/xinetd.d/
chargen-dgram daytime-stream echo-dgram tcpmux-server
chargen-stream discard-dgram echo-stream time-dgram
daytime-dgram discard-stream rsync time-stream

2. 如果没有,需要安装xinetd
[root@localhost xinetd.d]# yum install xinetd
3.安装完后,启动time-dgram、 time-stream,xinetd服务
[root@localhost xinetd.d]# chkconfig time-dgram on
[A[root@localhost xinetd.d]# chkconfig time-stream on

[root@localhost xinetd.d]# service xinetd restart
Stopping xinetd: [FAILED]
Starting xinetd: [ OK ]

4.rdate -s [目标主机的ip] :实现同步
[root@主人 ~]# rdate -s 192.168.100.1

[DNS]ACL、also-notify、视图服务器及安全设置的更多相关文章

  1. 于网站主机,DNS,域名解析,Web服务器关系详解

    /*本文将介绍网站主机,DNS,域名解析,Web服务器关系,转载请保留以下版权*/ /*启明星工作室 www.dotnetcms.org  提供会议室预定系统,请假系统,helpdesk,工作日志系统 ...

  2. DNS 解析域名以便通过服务器来访问的

    域名解析系统 就是把你要访问的网址转换成ip,然后你才能访问的东西 解析www.xxxx.com这类网址为IP来访问服务器 举例: 打个比方 ===>>> 你想去海底捞,但是只知道“ ...

  3. CentOS Linux上搭建PPPoE服务器及拨号设置

    CentOS Linux上搭建PPPoE服务器及拨号设置 搭建PPPoE,成功了的话,就觉得超级简单,在CentOS Linux更是5步左右就能搞定. 1.安装pppoe,安装完成后,会有pppoe- ...

  4. Linux服务器安全登录设置记录

    在日常运维工作中,对加固服务器的安全设置是一个机器重要的环境.比较推荐的做法是:1)严格限制ssh登陆(参考:Linux系统下的ssh使用(依据个人经验总结)):     修改ssh默认监听端口    ...

  5. nginx服务器绑定域名和设置根目录的方法

    nginx服务器绑定域名以及设置根目录非常方便,首先进入nginx安装目录,然后执行 vim conf/nginx.conf 打开nginx的配置文件,找到 server { ..... ..... ...

  6. Windows Server 2008 R2服务器系统安全设置参考指南

    Server 2008 R2服务器系统安全设置参考指南  重点比较重要的几部 1.更改默认administrator用户名,复杂密码 2.开启防火墙 3.安装杀毒软件 1)新做系统一定要先打上补丁(升 ...

  7. 【转载】 IIS服务器防盗链设置

    在实际运行的服务器环境中,我们自己网站中的资源一般不希望被外部网站引用,被外部网站引用IIS网站中的资源文件,一是会加重了服务器的负担,二是占用了你自己服务器的外网带宽资源,因此我们希望防止盗链这种情 ...

  8. iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态

    iOS 11开发教程(二十)iOS11应用视图美化按钮之设置按钮的状态 在示例2-2中,设置按钮的标题和颜色时,需要对按钮的状态进行设置,表示按钮在某一状态下的标题和标题颜色是什么样子.例如,UICo ...

  9. iOS 11开发教程(十九)iOS11应用视图美化按钮之设置按钮的外观

    iOS 11开发教程(十九)iOS11应用视图美化按钮之设置按钮的外观 美化按钮说白了就是对按钮的属性进行设置,设置按钮的属性有两种方法:一种是使用编辑界面中的属性检查器:另一种是使用代码进行设置.以 ...

随机推荐

  1. Myeclipse 创建 Web Maven项目

    1.创建Web项目 添加Maven支持 2.pom.xml 报如下错误: 解决办法: pom.xml里面添加依赖: <dependency> <groupId>com.thou ...

  2. 常见html标签

    1.flash嵌入标签 <object> <embed allowscriptaccess="always" allowfullscreen="true ...

  3. linux 查看 cpu 和内存的命令 - top

    1.查看内存,cpu ,当前进程task数目, 每个进程的cpu, 内存使用率, 用top 命令: 在这个页面,按 P,下面的进程排序,以cpu使用率降序排列. 按M,按内存使用率降序排列: 按N, ...

  4. CodeForces 429B Working out 动态规划

    Description Summer is coming! It's time for Iahub and Iahubina to work out, as they both want to loo ...

  5. GDB调试程序常用命令

    1.在xv6 内核中 通过 nm kernel | grep _start 找到kernel的起始地址是0010000c 8010b50c D _binary_entryother_start 801 ...

  6. php 个推的例子

    个推   http://docs.getui.com/server/php/start/ <?php /** * Created by PhpStorm. * User: xiaochao * ...

  7. php 编程效率(1)

    用单引号代替双引号来包含字符串,这样做会更快一些.因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中 ...

  8. cc2530 -----SampleApp.c解析

    /************************************************************************************************** ...

  9. java 对象的组合,一个类组合到另一个类中(例如手机卡装到手机上)

    Example4_9.java public class Example4_9 { public static void main(String args[]) { SIM simOne = new ...

  10. Boyer Moore算法(字符串匹配)

    上一篇文章,我介绍了KMP算法. 但是,它并不是效率最高的算法,实际采用并不多.各种文本编辑器的"查找"功能(Ctrl+F),大多采用Boyer-Moore算法. Boyer-Mo ...