学习用bind搭建DNS
来源:互联网 发布:厦门西岐网络 编辑:程序博客网 时间:2024/06/06 03:57
编译环境:centos7,使用bind-9.10.5.tar.gz源码包
./configure --prefix=/usr/local/named --enable-threads --enable-shared --with-libtool && make && make install
①添加named用户和组:groupadd named && useradd -s /sbin/nologin -d /usr/local/named[编译bind的目录] -g named named
操作后忽略file exists的报错;然后passwd -l named禁止named作为用户登录.
②搭建chroot环境:
chroot环境是为了服务器的安全,但是编译的bind是没有chroot目录的,使用rpm包就有对应的bind-chroot,所以要先创建环境
进入安装路径下cd /usr/local/named,创建chroot下的多个目录:mkdir -p chroot/{dev,etc,var/{data,log,named,run}}
对dev创建虚拟设备文件:首先查看自身系统下的 ls -lL /dev/null /dev/zero /dev/random ,会回显:
crw-rw-rw- 1 root root1, 3 May 17 23:42 /dev/null
crw-rw-rw- 1 root root1, 8 May 17 23:42 /dev/random
crw-rw-rw- 1 root root1, 5 May 17 23:42 /dev/zero
然后在/usr/local/named/chroot/dev下执行
mknod null c 1 3;mknod random c 1 8;mknod zero c 1 5 (对应值相同)
③创建配置文件
创建主配置文件:touch /usr/local/named/chroot/etc/named.conf
创建辅助配置文件:touch /usr/local/named/chroot/etc/named.zones
生成rndc文件:/usr/local/named/sbin/rndc-confgen > /usr/local/named/chroot/etc/rndc.conf
添加rndc.key:cat /usr/local/named/chroot/etc/rndc.conf |tail -10 |head -9 |sed s/^#\ //g >/usr/local/named/chroot/etc/named.conf [通过rndc-confgen生成rndc.conf,文件包含注释段为rndc.key,截取rndc.key导入named.conf]
然后编辑named.conf添加options和zone[链接]named.conf的详解
/usr/local/named/chroot/etc/named.conf
key "rndc-key" { algorithm hmac-md5; secret "G1UGnX9eRSoITBDciFwDuh=="; //之前通过rndc-confgen生成的密钥};controls { inet 127.0.0.1 port 953 //通过953端口对dns进行操作 allow { 127.0.0.1; } keys { "rndc-key"; }; //允许的主机};options { //使用双斜杠对named.conf添加注释 listen-on port 53 { any; }; //监听端口 listen-on-v6 port 53 { ::1; }; //监听ipv6 directory "/var/named"; //区域文件目录,这里由于chroot,可能不好理解,chroot机制将/usr/local/named/chroot变成了bind应用的根目录"/",所以此处的/var/named实际上是/usr/local/named/chroot/var/named pid-file "/var/run/named.pid" //文件进程pid位置 dump-file "/var/named/data/cache_dump.db"; //执行rndc dumpdb时,存放数据库文件的位置 statistics-file "/var/named/data/named_stats.txt"; //执行rndc stats时,存放统计信息的位置 allow-query { any; }; //允许普通查询的主机 allow-recursion { any; }; //允许递归查询的主机 forwarders { 114.114.114.114; }; //转发使用的列表};acl "mylan" { 127.0.0.0/8; 192.168.0.0/16; }; //相当于定义mylan = 127.0.0.0/8 和 192.168.0.0/16, mylan是自定义名logging { channel default_debug { //定义通道,channel channel_name file "/var/log/named.run"[options]; //定义输出位置与方式 severity dynamic; //定义消息严重性 //可选错误等级参数:critical>error>warning>notice>info>debug,dynamic是特殊值,匹配服务器当前调试级别 }; channel log { file "/var/log/dns.log" versions 10 size 1m; //versions:同时允许存在10个版本该文件,size:文件大小上限为1m serverity debug 9; print-time yes; //是否在消息添加时间前缀 print-severity yes; //是否在消息中添加消息严重性前缀 print-category yes; //是否消息中添加消息类别前缀 }; category default { default_debug; log; }; //指定类别信息使用对应通道输出 //可用的类别名:client 处理客户端请求 | config 配置文件分析和处理 | database 同BIND内部数据库相关的消息,用来存储区数据和缓存记录 | default 匹配所有未明确指定通道的类别 | dnssec 处理 DNSSEC 签名的响应 | general 包括所有未明确分类的 BIND 消息 | lame-servers 发现错误授权,即残缺服务器 | network 网络操作 | notify 区更新通知消息 | queries 查询日志 | resolver 名字解析,包括对来自解析器的递归查询信息 | security 批准/非批准的请求 | update 动态更新事件 };view localhost { //定义视图 view view_name match-clients { mylan; }; //匹配主机源地址,此处引用了上文定义的 mylan,也可以使用 192.168.0.0/8等匹配 match-destinations { any; }; //匹配主机目的地址 //view可以使用部分options参数和zone参数 include "/etc/named.zones"; //包含其他文件,此处包含的为zone的部分,路径为chroot作为根的路径};
[链接]named.conf的logging详解
/usr/local/named/chroot/etc/named.zones [其实zone也属于named.conf的一部分,只是独立出来就可以多次引用,如果没有必要可以合并编辑]
zone "." IN { type hint; //zone文件类型,hint为根 file "root.zone"; //对应的配置文件位置};zone "localhost" IN { //正解zone,从域名到IP type master; //主域,还有forward:转发域;slave:辅助域等 file "localhost.zone"; allow-update { none; }; //不允许提交更新,此处可以使用其他选项,可以看上文的链接};zone "0.0.127.in-addr.arpa" IN { //反解zone,从IP到域名,将IP反写和添加对应尾缀in-addr.apra type master; file "named.localhost"; allow-update { none; };};
测试例子:/usr/local/named/chroot/var/named/test.zone
//zone内容zone "www.test.com" IN { type master; file "test.zone";};//test.zone内容;test.zone文件已经不属于配置文件,使用的注释为";";[链接]区域数据文件详解$TTL 86400@ IN SOA test.com. root ( 42 ;serial (d.adams) 3H ;refresh 15M ;retry 1W ;expiry 1D ) ;minimum;FQND(域名) TTL IN RPT(记录资源类型) IP IN NS ns.test.com IN A 192.168.100.16 ;下文测试会用到
④启动与测试
将named更改属主 chown -R named /usr/local/named
对应的配置文件都编辑好和放在对应的位置之后,可以先使用
/usr/local/named/sbin/named-checkconf来检查配置,由于编译的缘故,需要指定chroot路径
/usr/local/named/sbin/named-checkconf -t /usr/local/named/chroot /etc/named.conf [-t指定chroot目录,再添加要检查的chroot对应目录下的/etc/named.conf]
同样的,检测没有异常后,同样使用指定方式来启动
/usr/local/named/sbin/named -t /usr/local/named/chroot -c /etc/named.conf -u named
使用 netstat -tnlp|grep 53,查看端口是不是已经启动,如果启动了,那named.conf应该没有大问题了
然后用 nslookup www.test.com localhost[或本服务器的IP],如果正确回显
Server: localhostAddress: 127.0.0.1#53Name: www.test.comAddress: 192.168.100.16
那就证明可以正确解析了,配置也就到此完结
- 学习用bind搭建DNS
- 利用bind搭建dns
- 使用Bind搭建DNS服务
- 使用bind搭建权威DNS、智能DNS
- linux DNS服务器的搭建(bind)
- Redhat 6.4 用bind 搭建DNS服务器
- centos6.8搭建DNS服务器(bind)
- 使用bind搭建权威DNS服务器
- bind主从DNS服务器搭建(1)
- Ubuntu系统搭建bind DNS服务器
- 对比学习用 Keras 搭建 CNN RNN 等常用神经网络
- centos6.5 bind-DNS服务器bind的搭建详解
- DNS BIND 搭建企业内部高可用DNS服务器
- DNS BIND 搭建域名智能解析DNS服务器之配置
- centos6.5环境DNS-本地DNS服务器bind的搭建
- Bind DNS
- 反射 学习用例
- 自己学习用javabean
- 新概念4-4
- java--if条件控制
- LaTex调整文章行间距
- CodeForce 416 (Div. 2) A. Vladik and Courtesy
- ICLR2017 paper: FASTER CNNS WITH DIRECT SPARSE CONVOLUTIONS AND GUIDED PRUNING 笔记
- 学习用bind搭建DNS
- 频道管理(移动,删除,添加 )
- C/S与B/S模式对比
- WebStorm使用教程
- QT MSVC2013/ vs2013 C2440: “初始化”: 无法从“initializer-list”转换为“***” 错误
- UMLet的安装及使用
- 算法谜题81 再论名人问题
- Failed to resolve: com.android.support.constraint:constraint-layout:1.0.2
- JNI调用VC++代码