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. adodb.stream对象的方法/属性

    Cancel 方法      使用方法如下      Object.Cancel      说明:取消执行挂起的异步 Execute 或 Open 方法的调用.Close   方法      使用方法 ...

  2. ListView控件的Insert、Edit和Delete功能(第二部分)

    本系列文章将通过一个简单的实例,结合我自己使用ListView的情况,展示如何用ASP.NET 3.5 ListView控件进行基本的Insert.Edit和Delete操作. 系统要求: Windo ...

  3. HTML+CSS Day05 基本CSS选择器、复合CSS选择器与CSS继承性

    1.基本CSS选择器 (1)标记选择器 <style>                       h1{ color:red; font-size:25px;}           &l ...

  4. Animals and Puzzle

    Animals and Puzzle time limit per test 5 seconds memory limit per test 512 megabytes input standard ...

  5. sqlserver 2008 查看表描述,和表结构

    sp_help sys_user sp_columns   sys_user --表结构 THEN obj.name ELSE '' END AS 表名, col.colorder AS 序号 , c ...

  6. Android中购物车的全选、反选、问题和计算价格

    此Demo主要解决的是购物车中的全选,反选计算价格和选中的条目个数的问题,当选中几条时,点击反选,会把当先选中的变为不选中,把不选中的变为选中.点击全选会全部选中,再次点击时,变为全部不选中. //- ...

  7. 基于Sublime Text搭建Python IDE

    http://loosky.net/2967.html(包括SublimeREPL插件的安装和设置快捷键) SublimeCodeIntel,智能提示功能,查找自定义函数引用的快捷键--Alt+鼠标左 ...

  8. 利用BFS求最短路

    利用BFS求图的最短路, POJ3984 #define _CRT_SECURE_NO_DEPRECATE #include<iostream> #include<string.h& ...

  9. 前端知识复习二(js)

    JS的作用 页面特效 移动端 异步交互(AJAX) 服务器端开发(node.js) 由ECMAScript和dom(操作网页上的api).bom组成(操作浏览器的部分api) 输出到页面内容 cons ...

  10. java项目(java project)如何导入jar包的解决方案列表

    右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add ex ...