欢迎光临
我们一直在努力

Linux 命令操作与 DNS 服务器完整配置实践

实验目的

一、Linux 基础命令实操

  • 掌握 root 用户切换、目录创建(mkdir)、权限修改(chmod)及权限查看(ls -ld)的核心操作;
  • 熟练使用ps命令查看系统进程,结合grep过滤特定用户(root)的进程;
  • 运用find命令查找指定目录下的目标文件,通过管道与cp命令完成文件复制;
  • 掌握用户创建(useradd)、用户组管理(groupadd、usermod)及用户信息查询(grep、id);
  • 学会编写简单 Shell 脚本,实现日期写入文件与目录删除功能,并配置脚本可执行权限。
  • 二、DNS 服务器配置实操

  • 掌握 bind 服务程序的安装(yum)与版本验证(named -v);
  • 理解并配置 DNS 正向解析与反向解析,包括主配置文件、区域配置文件及数据文件的修改;
  • 区分 DNS 服务器之间的迭代查询与递归查询,通过dig命令与日志验证查询类型;
  • 学会通过访问控制列表(ACL)限制 DNS 服务的访问主机;
  • 了解 TSIG 加密机制的配置与作用,确保 DNS 数据传输的完整性;
  • 掌握 DNS 从服务器的部署流程,理解其分担主服务器负载、提升故障容错能力的核心作用。
  • 实验步骤

    一、root用户下的操作

    (1)首先切换到root用户,在/root目录下创建“自己姓名拼音”的目录,将该目录的权限改为所有用户具有读写的权限,使用ls命令查看修改的结果。

    首先登入普通用户,然后使用命令su -并输入root用户密码切换到root用户下。

    然后通过cd /root进入到根目录下,并且使用mkdir ###创建“自己姓名拼音”的目录。

    接着使用chown 777 /root/###将该目录的权限修改为所有用户具有读写的权限。

    最后使用ls -ld ###命令查看该目录的权限和其他信息。​​​

    (2)使用ps命令查看当前系统中所有运行的进程的详细信息,然后查找root用户运行的所有进程。

    使用ps aux查看系统中所有进程的详细信息。其他a表示显示所有用户的进程;u表示以用户为中心显示进程信息,包括所有进程所有者的用户名;x表示没有控制终端的进程。

           使用ps aux | grep ‘^root’命令,通过管道和grep命令过滤出”root”用户运行的所有进程。

    (3) 使用命令在/etc目录下查找所有以“nfs”为开头的文件,并把搜索结果中的第一个文件复制到第(1)小题创建的目录“/root/自己姓名拼音”下。

           首先使用find /etc -type f -name “nfs”查找出所有以”nfs”为开头的文件

            其次再使用命令find /etc -type f -name “nfs” | head -n 1查看所有以”nfs”为开头的文件中的第一个文件。这里可以看到是nfs.conf。

            然后使用命令cp $(find /etc -type f -name “nfs” | head -n 1) /root/###将文件复制到以“自己姓名拼音”创建的文件夹当中。再跳转到该目录下,查看是否复制成功。这里还可以使用ls /root/###进行查看该目录下的文件。

    (4)添加一个新用户,用户名为“自己姓名拼音123”,截止期限为2024-12-30,并通过/etc/passwd文件查看该新用户信息;将刚创建的新用户的基本组修改为cbin用户组,并查看设置情况。

    首先这里使用sudo useradd -e 2024-12-30 ###123命令创建以“自己姓名123”的新用户。

    其次,使用grep ###123 /etc/passwd查看该用户信息。

    然后,使用sudo usermod -g cbin ###123命令将用户修改为cbin用户组。这里可以看到cbin组不存在。

    可以通过getent group cbin查看是否有cbin用户组,可以看到没有返回值,即可确认没有cbin。接着就可以使用sudo groupadd cbin创建一个用户组,再使用sudo usermod -g cbin ###123命令将用户修改到cbin用户组。

    最后使用id ###123命令查看该用户的设置情况。

    (5)编写一个名称为“学号.sh”的shell脚本,实现如下功能:将当前日期和时间写入到文件“/home/xuehao.txt”中,然后删除第(1)小题中创建的“/root/自己姓名拼音”目录。

           首先使用vim 123.sh。加入内容

    date '+%Y-%m-%d %H:%M:%S' > /home/xuehao.txt

    rm -rf /root/###

    然后chmod +x 123.sh为脚本添加可执行命令。再使用./123.sh将脚本执行。

    接着使用cat /home/xuehao.txt查看运行结果,发现运行成功。

    最后再使用ls /root/###查看是否删除成功以“自己姓名拼音”的目录。

    二、完成DNS服务器的配置

    (1) 首先连接外网,安装bind服务程序

           使用yum install bind-chroot-y下载并安装bind服务程序。

    使用named -v命令查看是否成功安装。

    (2) 验证正向解析的过程,域名和ip可以自行配置

    首先通过rpm -qc bind查询bind软件配置文件存在路径。可以看到主配置文件在/etc/logrotate.d/named,区域配置文件在/etc/named.rfc1912.zones,区域数据配置文件在/var/named/named.localhost

    接下来就是修改这三个文件。首先使用vim /etc/named.conf修改主配置文件。这里可以看到将listen-on port 53修改为any;,allow-query修改为any;。

           然后使用vim /etc/named.rfc1912.zones修改区域配置文件。这里将原有的信息全部清空,只保留自己的域名解析信息。

    zone "virtual.com" IN { type master; file "virtual.com.zone"; allow-update {none;}; };

             接着使用cp -a /var/named/named.localhost /var/named/virtual.com.zone命令复制一份正向解析的模板文件。

             其次使用vim virtual.com.zone命令修改数据区域配置文件。

    $TTL 86400

    @   IN  SOA     ns.virtual.com. admin.virtual.com. (

                    2024122301 ; Serial

                    3600       ; Refresh

                    1800       ; Retry

                    1209600    ; Expire

                    86400 )    ; Minimum TTL

        IN  NS      ns.virtual.com.

    ns  IN  A       192.168.150.100

    www IN  A       192.168.150.110

    mail IN A       192.168.150.120

    ftp IN CNAME    www

    *   IN A        192.168.150.130

    virtual.com. IN A 192.168.150.100

    还有vim /var/named/virtual.com.zone

    使用systemctl stop firewalld.service和setenforce 0关闭防火墙

           再用命令systemctl restart named启动bind服务。

           最后使用nslookup命令,再使用ns.virtual.com就可以查看到解析成功

    (3) 验证反向解析的过程,域名和ip可以自行配置

           首先编辑区域配置文件,使用vim /etc/named.rfc1912.zones

    zone "150.168.192.in-addr.arpa" IN { type master; file "192.168.150.arpa"; allow-update {none;}; };

    Zone部分需要将ip地址反写。

    使用vim 192.168.150.apra命令对反向区域数据文件进行配置。

    $TTL 86400

    @   IN  SOA     ns.virtual.com. admin.virtual.com. (

                    2024122301 ; Serial

                    3600       ; Refresh

                    1800       ; Retry

                    1209600    ; Expire

                    86400 )    ; Minimum TTL

        IN  NS      ns.virtual.com.

    ; PTR records

    100  IN  PTR     www.virtual.com.

    110  IN  PTR     bbs.virtual.com.

    最后使用nslookup,再输入之前反向数据配置文件当中设置的ip,即可得到结果。

    (4) DNS服务器之间传输区域数据文件时,使用的是递归查询还是迭代查询?

           输入dig @192.168.150.100 virtual.com命令测试递归查询

           以及dig @192.168.150.100 virtual.com +norecurse命令测试迭代查询

           最后tail -f /var/log/messages查询日志是否涉及递归查询或者迭代查询。可以根据第一行得到迭代查询的尝试。由于解析失败,因此DNS服务器尝试通过其他上游服务器来获取答案。但是没有显示与递归查询直接有关的日志,特别是没有看到rd(递归请求)和ra(递归可用)的信息。

           因此根据上述实验可以得出DNS服务器之间传输区域数据文件时,使用的是迭代查询的结论。

    (5) 是否可以限制使用DNS域名解析服务的主机?如何限制?

           可以通过在DNS服务器的配置文件中限制某些主机使用该DNS服务。使用vim /etc/named.conf命令添加一个访问控制列表来限制哪些IP地址可以使用DNS服务。

     

    而后使用systemctl restart named命令重新启动DNS服务器。

    这里可以看到当IP为192.168.150.1想要使用IP时,DNS服务器拒绝连接。

    而这里IP为192.168.150.100连接DNS服务器时直接成功。

    (6) 当用户与DNS服务器之间传输数据配置文件时,是否可以使用TSIG加密机制来确保文件内容不被篡改?

           首先执行vim /etc/named/example.com.zone命令并且进行配置。

    $TTL 86400

    @ IN SOA ns1.example.com. admin.example.com. (

        2024122301 ; Serial

        3600       ; Refresh

        1800       ; Retry

        1209600    ; Expire

        86400      ; Minimum TTL

    )

    @ IN NS ns1.example.com.

    @ IN A 192.168.150.100

    ns1 IN A 192.168.150.100

           再执行chown root:named /var/named/example.com/zone

                         Chmod 644 /var/named/example.com.zone

    确保文件的权限,并且确保BIND用户有读取权限。

           执行rndc-confgen -a -k mykey命令,系统生成一个TSIG密钥文件,并且保存在/etc/rndc.key文件中。

           然后执行命令cat /etc/rndc.eky查看文件中的内容

           接着执行vim /etc/named.conf。加入下面的内容

    key "mykey" {

            algorithm hmac-md5;

            secret "TTZg6OPPwGiGfyUQP7l1dQ==";

    };

    zone "example.com" {

        type master;

        file "/var/named/example.com.zone";

        allow-update { key "mykey"; };

    };

           最后使用systemctl restart named重启DNS服务器,再执行dig @192.168.150.100 subdomain.example.com返回的值。

           综上可以得出当用户与DNS服务器之间传输数据配置文件时,可以使用TSIG加密机制来确保文件内容不被篡改

    (7) 部署DNS从服务器的作用是什么?

    在主服务器中执行vim /var/named/main.com.zone命令,进行配置文件。

    $TTL 86400  ; 默认 TTL 为 86400 秒(24小时)

    @    IN    SOA   ns1.main.com. admin.main.com. (

                  20240101 ; Serial 版本号(每次更新该文件时应增加)

                  3600     ; Refresh:从服务器多久更新一次(秒)

                  1800     ; Retry:从服务器失败后重新尝试的时间间隔(秒)

                  1209600  ; Expire:数据过期时间(秒)

                  86400 )  ; Minimum TTL:最小 TTL

         IN    NS    ns1.main.com.   ; 域名的 DNS 服务器

         IN    NS    ns2.main.com.

    ns1  IN    A     192.168.150.100    ; ns1.main.com 的 IP 地址

    ns2  IN    A     192.168.150.101    ; ns2.main.com 的 IP 地址

    @    IN    A     192.168.150.200    ; main.com 的 A 记录

    www  IN    CNAME  @                  ; www.main.com 的 CNAME 记录,指向 main.com

           再执行命令vim /etc/named.conf添加以下。

    zone "main.com" {

        type master;

        file "/var/named/main.com.zone";

        allow-transfer { 192.168.150.130; };

    };

    然后执行systemctl restart named重启DNS服务器。

           再跳转到从服务器中执行vim /etc/named.conf

    zone "suffraga.com"{

            type slave;

            file "/var/name/slaves/suffraga.com.zone";

            masters {192.168.150.100;};

    };

           再返回到主服务器当中,执行命令

    Named-checkconf /etc/named.conf

    Named-check zone main.com /var/named/main.com.zone

    对主服务器的配置和文件进行查错

           然后对从服务器当中执行

    Mkdir -p /var/named/slaves的命令创建/var/named/slaves目录,

    再执行Chown named:named /var/named/slaves

    Chmod 755 /var/named/slaves命令给该文件赋予权限

    最后执行Systemctl restart named重启DNS服务器,就可以在slaves查看到主服务器中的区域数据文件。

    赞(0)
    未经允许不得转载:171主机测评 » Linux 命令操作与 DNS 服务器完整配置实践
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址