centos 从dns(linux修改dns)

大家好,感谢邀请,今天来为大家分享一下centos 从dns的问题,以及和linux修改dns的一些困惑,大家要是还不太明白的话,也没有关系,因为接下来将为大家分享,希望可以帮助到大家,解决大家的问题,下面就开始吧!

CentOS系统怎样安装DNS服务器

CentOS系统安装DNS服务器方法

DNS安装配置

在 RHEL5、6中 DNS都是用的是 bind软件包,而在 RHEL/CentOS 7用的是 unbound安装包,配置文件也有了改变。我们来看一下:

2.1.安装:

代码如下:

[root@linuxprobe~]# yum-y install unbound

Loaded plugins: langpacks, product-id, subscription-manager

This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.

Resolving Dependencies

---> Running transaction check

---> Package unbound.x86_64 0:1.4.20-19.el7 will be installed

---> Finished Dependency Resolution

·····

启动服务

代码如下:

[root@linuxprobe~]# systemctl restart unbound//启动DNS服务

[root@linuxprobe~]# systemctl enable unbound

ln-s‘/usr/lib/systemd/system/unbound.service‘‘/etc/systemd/system/multi-user.target.wants/unbound.service‘

//下次系统重启自动启动DNS服务

2.2.修改配置文件

unbound安装好之后,缺省配置文件在/etc/unbound/unbound.conf。

2.2.1.修改端口监听地址

相当于 RHEL6配置文件中的:listen-on port 53{ any;};

查看默认监听地址

代码如下:

[root@linuxprobe~]# netstat-tunlp|grep unbound

tcp 0 0 127.0.0.1:53 0.0.0.0:* LISTEN 3333/unbound

tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3333/unbound

tcp6 0 0::1:53:::* LISTEN 3333/unbound

tcp6 0 0::1:8953:::* LISTEN 3333/unbound

udp 0 0 127.0.0.1:53 0.0.0.0:* 3333/unbound

udp6 0 0::1:53:::* 3333/unbound

//默认监听本地回环地址,也就是现在只有自己能访问DNS服务,其它主机不能访问本机的DNS服务

修改监听地址代码如下:

[root@linuxprobe~]# vim/etc/unbound/unbound.conf

……

38# interface: 0.0.0.0

39 interface: 0.0.0.0

……

//找到38行,复制去掉注释行,打开监听全网功能。

重启服务查看

代码如下:

[root@linuxprobe~]# systemctl restart unbound

[root@linuxprobe~]# netstat-tunlp|grep unbound

tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 3461/unbound

tcp 0 0 127.0.0.1:8953 0.0.0.0:* LISTEN 3461/unbound

tcp6 0 0::1:8953:::* LISTEN 3461/unbound

udp 0 0 0.0.0.0:53 0.0.0.0:* 3461/unbound

//现在53号端口监听的是0.0.0.0,即所有网段都监听。

2.2.2.修改允许查询的范围

在 RHEL6中,DNS配置文件中有这样一句:allow-query{ localhost;};。此句定义的是允许向本机查询(迭代&递归)的主机范围,localhost代表只有本机可以向本机查询。而在配置中,经常改 localhost为 any,让所有主机能够向本机查询 DNS。所以,在 RHEL7中,也要做这样的修改,只不过修改内容不同而已,如下:

代码如下:

[root@linuxprobe~]# vim/etc/unbound/unbound.conf

……

177# access-control: 0.0.0.0/0 refuse

178 access-control: 0.0.0.0/0 allow

179# access-control: 127.0.0.0/8 allow

……

找到配置文件/etc/unbound/unbound.conf的第177行,缺省为注释行,把内容改为允许访问,然后保存退出,重启服务即可。

2.2.3.创建解析文件

RHEL/CentOS 5、6系统中,DNS的解析文件分正向和反向两个解析文件,并且有解析文件的模板文件。但是在 RHEL7中,正反向解析文件合并为一个,并且无模板文件,需自己创建,路径可以在主配置文件中查看:

代码如下:

[root@linuxprobe~]# vim/etc/unbound/unbound.conf

……

453# You can add locally served data with

454# local-zone:"local." static

455# local-data:"mycomputer.local. IN A 192.0.2.51"

//正向解析可参考语法

456# local-data:‘mytext.local TXT"content of text record"‘

457#

458# You can override certain queries with

459# local-data:"adserver.example.com A 127.0.0.1"

460#

461# You can redirect a domain to a fixed address with

462#(this makes example.com, www.example.com, etc, all go to 192.0.2.3)

463# local-zone:"example.com" redirect

464# local-data:"example.com A 192.0.2.3"

465#

# Shorthand to make PTR records,"IPv4 name" or"IPv6 name".

467# You can also add PTR records using local-data directly, but then

468# you need to do the reverse notation yourself.

469# local-data-ptr:"192.0.2.3 www.example.com"

//反向解析参考语法

470

471 include:/etc/unbound/local.d/*.conf

472

473# service clients over SSL(on the TCP sockets), with plain DNS inside

……

查看本机FQDN

代码如下:

[root@linuxprobe~]# hostname

linuxprobe.example.com

//由此可知,域名为example.com

创建解析文件代码如下:

[root@linuxprobe~]# vim/etc/unbound/local.d/example.conf

local-zone:"example.com." static

local-data:"example.com. 86400 IN SOA ns.example.com. root 1 1D 1H 1W 1H"

local-data:"ns.example.com. IN A 192.168.10.10"

local-data:"linuxprobe.example.com. IN A 192.168.10.10"

local-data-ptr:"192.168.10.10 ns.example.com."

local-data-ptr:"192.168.10.10 linuxprobe.example.com."

查看RHEL6上解析文件以作对比

代码如下:

[root@linuxprobe~]# vim/var/named/named.localhost

$TTL 1D

@ IN SOA@ rname.invalid.(

0; serial

1D; refresh

1H; retry

1W; expire

3H); minimum

NS@

A 127.0.0.1

AAAA::1

2.3.禁用服务用户

每个服务都是有其专用的服务用户,DNS的服务用户为 unbound,实际情况下服务用户的启用有可能有安全隐患,这里要禁用服务用户。

代码如下:

[root@linuxprobe~]# vim/etc/unbound/unbound.conf

······

211# if given, user privileges are dropped(after binding port),

212# and the given username is assumed. Default is user"unbound".

213# If you give"" no privileges are dropped.

214#username:"unbound"

215 username:""

216

217# the working directory. The relative files in this config

······

如上,找到配置文件的第214行,删除unbound即可,删除后为:username”“。

2.4.验证

代码如下:

[root@linuxprobe~]# unbound-checkconf

unbound-checkconf: no errors in/etc/unbound/unbound.conf

验证无配置问题,即可重启服务

复制代码代码如下:

[root@linuxprobe~]# systemctl restart unbound

dns验证:

修改本机DNS

代码如下:

[root@linuxprobe~]# vim/etc/sysconfig/network-scripts/ifcfg-eth0

HWADDR=00:0C:29:70:····

TYPE=Ethernet

····

IPADDR="192.168.10.10"

PREFIX="24"

···

DNS1=192.168.10.10

NAME=eth0

ONBOOT=no

[root@linuxprobe~]# systemctl restart network

nslookup验证

代码如下:

[root@linuxprobe~]# nslookup

linuxprobe.example.com.

192.168.10.10

ok dns设置成功

PS:关闭防火墙

在本次实验中我们关闭了 linux的3大防火墙。当没有关闭防火墙时,远程主机验证可能出现故障,这时需要在 DNS服务器防火墙上开放 DNS服务。我们以 firewall防火墙为例,修改一下:

代码如下:

[root@linuxprobe~]# systemctl stop iptables

[root@linuxprobe~]# systemctl stop ebtables

[root@linuxprobe~]# systemctl disable iptables

[root@linuxprobe~]# systemctl disable ebtables

[root@linuxprobe~]# firewall-cmd--add-service=dns--permanent

success

[root@linuxprobe~]# firewall-cmd--reload

success

[root@linuxprobe~]# firewall-cmd--list-all

public(default, active)

interfaces: eth0

sources:

services: dhcpv6-client dns ssh

ports:

masquerade: no

forward-ports:

icmp-blocks:

rich rules:

//DNS服务器上Firewall开放DNS访问ok

CentOS修改DNS的常用方式

Linux操作系统中的DNS配置主要分为临时修改与永久修改两种。针对CentOS环境,下面将对这两种修改方式进行详细介绍。

对于临时修改DNS地址,操作如下:

1.首先,使用SSH工具登录基于CentOS的国外VPS服务器。

2.执行命令“sudo vim/etc/resolv.conf”,进入配置文件。

3.修改文件内容,将主DNS地址修改为8.8.8.8,备用DNS地址修改为8.8.4.4,同时添加域名信息“search localhost”。

4.通过“wq”命令保存并退出编辑,此时配置会实时生效,但重启系统后会失效。

针对永久修改DNS地址,操作步骤为:

1.使用“sudo–i”命令切换到超级用户权限。

2.进入配置目录“cd/etc/resolvconf/resolv.conf.d/”,使用“vim base”编辑文件。

3.添加DNS配置信息“nameserver 8.8.8.8”和“nameserver 8.8.4.4”。

4.通过“wq”命令保存并退出,配置修改后重启系统,DNS地址配置将永久生效。

为确保服务器对外提供正确的DNS解析服务,还需检查端口状态。使用以下命令查询指定端口是否开启:

firewall-cmd--query-port=端口号/协议

例如,查询2231端口状态使用命令“firewall-cmd--query-port=2231/tcp”。

同时,了解当前系统开启的所有端口状态,可以使用以下命令:

firewall-cmd--list-port

CentOS7实现DNSDHCP动态更新详解

windows域里有一个功能,dhcp把新分发的ip数据发给DNS服务器,这样只要知道一个人的电脑名字就可以很方便的远程。

linux当然也能很好的实现类似的功能。man 5 dhcpd.conf有详细描述。

昨天运维帮组织线下的沙龙,又拍云的运维总监邵海杨先生分享了一句“千金难买早知道”。是啊,就在实现动态更新的功能上,在网上找了不少博客,照着做又遇到各种问题,最后不不知道到底什么原理实现的。早知道认真看一下man,问题早解决了,对实现的原理也理解得深些。所以,在这个信息爆炸的时代,很多时候真的互联网没有让人更聪明,反而大量的信息经常把人淹没了。技术,还是需要静下心来去钻研的。

dhcp和dns的基本配置资料比较完善,此处不再赘述。有心的朋友认真看一下man 5 dhcpd.conf,瞧一眼下面配置中标红的部分,相信就能搞定了。

另外分享一个dns chroot的流程,先安装 bind,调通named,然后再安装bind-chroot

执行/usr/libexec/setup-named-chroot.sh/var/named/chroot on

停用named,启用named-chroot即可

systemctl disabled named; systemctl stop named

systemctl enable named-chroot;systemctl start named-chroot

[root@pxe~]# cat/etc/dhcp/dhcpd.conf

ddns-update-style interim;

ddns-updates on;

do-forward-updates on;

allow client-updates;

allow bootp;

allow booting;

#allow client-updates;

option space Cisco_LWAPP_AP;

option Cisco_LWAPP_AP.server-address code 241= array of ip-address;

option space pxelinux;

option pxelinux.magic code 208= string;

option pxelinux.configfile code 209= text;

option pxelinux.pathprefix code 210= text;

option pxelinux.reboottime code 211= unsigned integer 32;

option architecture-type code 93= unsigned integer 16;

subnet 192.168.1.0 netmask 255.255.255.0{

authoritative;

option routers 192.168.1.1;

option subnet-mask 255.255.255.0;

option broadcast-address 192.168.1.255;

option domain-name"it.lab";

option domain-name-servers 192.168.1.200;

range dynamic-bootp 192.168.1.100 192.168.1.199;

key SEC_DDNS{

algorithm hmac-md5;

secret 7ObhTIhKeDFMR2SbbS5s8A==;

};

ddns-domainname"it.lab";

zone it.lab.{

primary 192.168.1.200;

key SEC_DDNS;

}

zone 1.168.192.in-addr.arpa.{

primary 192.168.1.200;

key SEC_DDNS;

}

default-lease-time 600;

max-lease-time 7200;

class"pxeclients"{

match if substring(option vendor-class-identifier, 0, 9)="PXEClient";

next-server 192.168.1.200;

if option architecture-type= 00:07{

filename"uefi/syslinux.efi";}

else{

filename"bios/pxelinux.0";}

#filename"pxelinux.0";}

}

}

[root@pxe~]# cat/etc/named.conf

//

// named.conf

//

// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS

// server as a caching only nameserver(as a localhost DNS resolver only).

//

// See/usr/share/doc/bind*/sample/ for example named configuration files.

//

options{

listen-on port 53{ 127.0.0.1;192.168.1.200;};

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;};

/*

- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.

- If you are building a RECURSIVE(caching) DNS server, you need to enable

recursion.

- If your recursive DNS server has a public IP address, you MUST enable access

control to limit queries to your legitimate users. Failing to do so will

cause your server to become part of large scale DNS amplification

attacks. Implementing BCP38 within your network would greatly

reduce such attack surface

*/

recursion no;

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";

pid-file"/run/named/named.pid";

session-keyfile"/run/named/session.key";

};

logging{

channel default_debug{

file"data/named.run";

severity dynamic;

};

};

zone"." IN{

type hint;

file"named.ca";

};

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

include"/etc/named.root.key";

key SEC_DDNS{

algorithm hmac-md5;

secret 7ObhTIhKeDFMR2SbbS5s8A==;

};

zone"it.lab" IN{

type master;

file"it.lab.forward";

allow-update{ key SEC_DDNS;};

};

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

type master;

file"1.168.192.reverse";

allow-update{ key SEC_DDNS;};

};

阅读剩余
THE END