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. Json与Gson讲解

    1 json的含义: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.JSON采用完全独立于语言的文本格式,这些特性使JSON成为理想的数据交换语言.易于 ...

  2. C++调用C#之C# COM控件

    C#做界面真的是比C++方便多了,所以尝试了一下,使用C++做核心功能(例如绘图),然后用C#来做节目(例如对话框),考虑到以后可能不能使用.net,使用DLL做一个隔离层,隔离C++和C#,方便以后 ...

  3. 用for while 成绩的有效输入

    #include "stdio.h" void main() { int score,s; printf("请输入你的成绩:"); scanf("%d ...

  4. useradd adduer 的区别

    区别 1). 使用useradd时,如果后面不添加任何参数选项,例如:#sudo useradd test创建出来的用户将是默认“三无”用户:一无Home Directory,二无密码,三无系统She ...

  5. HDU 4612 Warm up(双连通分量缩点+求树的直径)

    思路:强连通分量缩点,建立一颗新的树,然后求树的最长直径,然后加上一条边能够去掉的桥数,就是直径的长度. 树的直径长度的求法:两次bfs可以求,第一次随便找一个点u,然后进行bfs搜到的最后一个点v, ...

  6. FZU 2140 Forever 0.5(将圆离散化)

    主要就是将圆离散化,剩下的都好办 #include<iostream> #include<cstdio> #include<cstring> #include< ...

  7. android 数据存储分配的一些事

    应用程序在运行的过程中如果需要向手机上保存数据,一般是把数据保存在SDcard中的.大部分应用是直接在SDCard的根目录下创建一个文件夹,然后把数据保存在该文件夹中.这样当该应用被卸载后,这些数据还 ...

  8. POJ - 3061 Subsequence(连续子序列和>=s的最短子序列长度)

    Description A sequence of N positive integers (10 < N < 100 000), each of them less than or eq ...

  9. USACO Section 1.3 Wormholes 解题报告

    题目 题目描述 在一个二维平面上有N个点,这N个点是(N/2)个虫洞的端点,虫洞的特点就是,你以什么状态从某个端点进去,就一定会以什么状态从另一端的端点出来.现在有一头牛总是沿着与X轴正方向平行的直线 ...

  10. MFC添加背景图片三种方法

    方法一: 1.声明成员变量CBrush m_brush;2.在InitDialog中添加代码: ? CBitmap bmp; bmp.LoadBitmap(IDB_BITMAP1);  //IDB_B ...