DNS(Domain Name System)是一种用于将可读的域名(如www.baidu.com)转换为计算机可理解的IP地址(如192.168.1.1)的分布式命名系统,它使用户能够通过的域名访问网站而不是记住复杂的IP地址。
● 主机名与全称域名的比较:
① 主机名(Hostname):
主机名是计算机或设备在本地网络内的名称,通常用于在局域网中唯一标识设备,它通常是一个相对简单的名称,不包含完整的域名结构;
② 全称域名(Fully Qualified Domain Name,FQDN):
全称域名是一个完整的、全球唯一的域名标识符,,它包括主机名、子域名、二级域名、顶级域名等,例如 "www.baidu.com",FQDN 主要用于将可读的域名映射到IP地址,以便在全球互联网上找到特定的计算机或服务器。
① 域名查询请求:
在Web浏览器或其他网络应用程序中输入一个域名时,计算机首先会将该请求发送给本地 DNS 服务器。
② 本机 DNS 解析器查询:
本机DNS解析器会首先检查自己的缓存,则解析器会直接返回IP地址 ;如果没有缓存或缓存过期,本地DNS解析器会向本地DNS服务器发送DNS查询请求。
③ 本地 DNS 服务器查询:
本地 DNS 服务器由本地的互联网服务提供商提供,当本地 DNS 服务器接收到查询请求后,会检查自己的缓存,看是否有该域名的解析结果。如果有,它会返回IP地址给本机 DNS 解析器;如果没有缓存或缓存过期,它将启动DNS解析过程。
④ DNS解析过程:
本地DNS服务器首先向根域DNS服务器发送查询请求,询问它关于顶级域(如.com、.org)的信息,然后继续向二级域DNS服务器发送查询请求,直到获取到最终的目标域名的IP地址。
yum install -y bind
bind(Berkeley Internet Name Domain)是一款广泛使用的开源DNS服务器软件,允许在 Linux 系统上配置和运行DNS服务器。
vim /etc/named.conf
这个配置文件包括了DNS服务器的设置、区域配置、日志设置等。
options {
listen-on port 53 { 监听服务器的 IP; };
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";
secroots-file "/var/named/data/named.secroots";
recursing-file "/var/named/data/named.recursing";
allow-query { any; };
① listen-on port 53 { 监听服务器的 IP; };
listen-on 主要关注DNS服务器监听的接口和端口,以确定它在哪些网络接口上等待查询请求:
● port 53 表示 DNS 服务器将监听标准 DNS 服务端口,即 53 端口。
● { 监听服务器的 IP; } 指定了允许的监听 IP 地址,这个用于限制 DNS 服务器只接受特定接口上的DNS查询请求。
② allow-query { any; };
allow-query 主要关注DNS服务器允许哪些客户端发送查询请求,以确定查询请求的源IP地址范围:
{ any; } 表示允许任何 IP 地址的客户端进行查询,意味着所有客户端都可以向该 DNS 服务器发送查询请求。
vim /etc/named.rfc1912.zones
这个文件用于私有网络或内部域的DNS配置,这些区域的配置包括域名、区域类型、文件路径等。
① 配置示例:
● 正向区域:配置用于将域名解析为IP地址的正向区域
zone "example.com" IN {
type master;
file "example.com.zone";
};
● 反向区域:配置用于将IP地址解析为域名的反向区域
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
};
② 本实验配置:
zone "48.cn" IN {
type master;
file "48.cn.zone";
allow-update { none; };
};
● file "48.cn.zone":48.cn.zone 是区域数据文件的文件名,区域数据文件是DNS服务器用来存储特定DNS区域(Zone)中的域名记录的文本文件,这些文件包含了将域名映射到IP地址以及其他DNS信息的记录。
在 /var/named 下将一个空的区域数据文件命名为 48.cn.zone
cd /var/named
cp -p named.empty 48.cn.zone
vim 48.cn.zone
$TTL 3H
@ IN SOA @ root.48.cn. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 192.168.48.100
www IN A 192.168.48.100
● root.48.cn:指定当前区域的管理员为 root,根域名为 48.cn;
● A 192.168.48.100 ;www IN A 192.168.48.100:
将192.168.48.100这个ip地址与根域名和子域名相关联。
systemctl start named
systemctl enable named
systemctl stop firewalld
● 客户端测试:
客户端配置DNS服务器:
关闭防火墙,ping 域名:
Web(World Wide Web)是一种信息传递系统,它基于互联网(Internet)技术,允许用户在全球范围内访问和浏览文本、图像、音频、视频等多种类型的数据。
常见的 web 服务器:apache、nginx、tomcat
yum install -y apache
systemctl start apache
systemctl enable apache
apache 的默认页面:
mkdir /www/48 -p:递归创建网站根目录
配置主页文件,当访问 www.48.cn 时,页面显示48,而不是 apache 默认页面
vim /www/48/index.html
vim /etc/httpd/conf.d/48.conf
DocumentRoot /www/48
ServerName www.48.cn
●
● DocumentRoot:网站根目录;ServerName:网站配置的域名
Require all granted
●
● Require all granted:指定这个目录的访问权限,"all"表示允许所有用户访问这个目录。
systemctl restart httpd
systemctl stop firewalld
setenforce 0
客户机访问 www.48.cn:
开启防火墙和SELinux有助于提高 Linux 系统的安全性,减少潜在的风险和威胁。
systemctl start firewalld
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=dns --permanent
● firewall-cmd: 这是 Firewalld 的命令行工具,用于管理防火墙规则;
● --add-service=http: 告诉Firewalld要添加一个名为"http"的服务,通常对应HTTP协议(端口80)的通信 ;
● --add-service=dns: 添加一个名为"dns"的服务,通常对应DNS协议(端口53)的通信;
● --permanent: 将这个规则永久保存到防火墙配置中,以便在系统重启后保留。
chcon -t httpd_sys_content_t /www -R
● chcon:change context,是一个用于更改文件或目录的SELinux安全上下文的命令;
● -t httpd_sys_content_t:"httpd_sys_content_t" 是一个SELinux安全上下文类型,通常用于将文件或目录标记为Apache HTTP服务器(httpd)的内容。这表明"/www"及其内容将被视为Web服务器的内容,以便Apache可以访问这些文件;
● -R:表示递归地为目录及其子目录设置相同的安全上下文。
查看网页访问效果: