BIND编译安装
对于没有rpm包,需要源代码编译安装。
1、下载源代码:bind-9.12.2-P1.tar.gz,解压:tar -xf bind-9.12.2-P1.tar.gz
2、完善环境:
1)增加用户组named:groupadd -g 53 named
2)增加用户named(系统用户):useradd -r -u 53 -g named named
3、执行configure:进入加压后的目录,执行
./configure --prefix=/usr/local/bind9 --sysconfdir=/etc/named/ --disable-ipv6 --disable-chroot --enable-threads
make
make install
4、编译安装后,没有配置文件,即没有named.conf和named.rfc1912.zones等配置文件;没有rndc相关的配置文件;所以需要手工建立。同时相关命令也不能直接调用,相关库文件、头文件、资料文件需要添加到搜索路径中,即导出这些文件:
1)导出二进制命令路径,需要将路径输出到PATH环境变量中:在/etc/profile.d/下建立named.sh文件,内容如下: export PATH=/usr/local/bind9/bin:/usr/local/bind9/sbin:$PATH
然后重读一下文件:. /etc/profile.d/named.sh ,然后就可以直接调用这些命令了。
2)导出库文件,其他程序用到这些开发库,如果不导出,也无法使用,即找不到,所以要导出:
在/etc/ld.so.conf.d/下新建named.conf文件,内容是bind的库文件位置:
/usr/local/bind9/lib
然后要通知系统重读此配置文件,生成库文件搜索路径:ldconfig -v
3)导出头文件:ln -sv /usr/local/bind9/include/ /usr/include/named
4)导出帮助手册,即man目录,即将安装的man目录加入到搜索路径中,编辑/etc/man.config文件:添加MANPATH路径:
5)创建bind的配置文件/etc/named/named.conf,因为我们编译安装是配置了配置文件路径是/etc/named。
options {
directory "/var/named"; //全局配置只配置这一项就可以运行了,其他采用默认配置
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
然后这些库文件也需要我们自己创建:/var/named/named.ca、/var/named/localhost.zone、/var/named/named.local
根节点库文件,可以通过:dig -t NS . @ip获得,这里ip是可以连接互联网的机器:
将结果拷贝到named.ca中:dig -t NS . @192.168.138.2 > /var/named/named.ca
创建解析库文件:/var/named/localhost.zone:
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2024052401
1h
5m
7d
1d )
IN NS localhost.
localhost. IN A 127.0.0.1
解析库文件:/var/named/named.local
$TTL 1d
@ IN SOA localhost. admin.localhost. (
2024052401
1h
5m
7d
1d )
IN NS localhost.
1 IN PTR localhost.
6)修改文件权限:
/var/named/下的所有文件:chmod 640 ./* ; chown :named *
chmod 640 /etc/named/named.conf ; chown :named /etc/named/named.conf
5、启动服务,成为缓存名称服务器:
named -u named -f -g -d 3,运行于前台
named -u named,运行于后台
启动过程中多次出现某目录或文件权限不够的提示,即permission denied,修改其属组权限后,系统运行正常
6、配置rndc,使用rndc工具时,提示
[root@study610-f2 named]# rndc reload
rndc: neither /etc/named/rndc.conf nor /etc/named/rndc.key was found
使用rndc-confgen产生:
按照提示分别拷贝相关内容到rndc.conf和named.conf中
# 以下为named.conf文件内容
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
allow-update { none; };
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
allow-update { none; };
};
zone "mytestcc.com" IN {
type master;
file "mytestcc.com.zone";
allow-update { none; };
};
# Use with the following in named.conf, adjusting the allow list as needed:
key "rndc-key" {
algorithm hmac-sha256;
secret "JS3jsXcMavvFVDGsjokYVhvml8h5dhwnvvrZJElW0F0=";
};
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
# End of named.conf
# 以下为rndc.conf文件内容
# Start of rndc.conf
key "rndc-key" {
algorithm hmac-sha256;
secret "JS3jsXcMavvFVDGsjokYVhvml8h5dhwnvvrZJElW0F0=";
};
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
# End of rndc.conf
重新启动named进程,即可使用rndc进行管理。
远程登录:
登录到主机中,经历了 本地终端——>远程终端——>安全远程终端 几个阶段,最开始,主机提供相应的硬件接口,在此接口上连接VGA和键盘,实现登录主机,即本地终端登录,此时主机不需要额外的进程来处理与终端的通讯,随着网络的发展,出现在远端通过网络登录主机的需求,要实现的是同本地终端类似的功能,因为需要通过网络连接,并且要把网络包内容并在主机上解包并并运行其中的内容,就需要额外进程来负责,分为服务器端和客户端,服务器端实现接收客户端的输入内容,与主机交互将内容交给主机执行,将主机执行结