安装DNS(BIND)并部署主、从域服务
#!/bin/bash
# 检查是否为 root 用户
if [ "$(id -u)" != "0" ]; then
echo "不是 root 你安装个啥啊,你配吗?"
sleep 5
exit 1
fi
# 安装 BIND
echo "正在安装 BIND..."
yum install -y bind bind-utils
# 检查安装是否成功
if [ $? -ne 0 ]; then
echo "BIND 安装失败,请检查 YUM 源是否可用。"
exit 1
fi
# 配置主 DNS
echo "正在配置主 DNS..."
# 备份原始配置文件
mv /etc/named.conf /etc/named.conf.bak
# 配置 named.conf 文件
cat > /etc/named.conf <<EOF
options {
listen-on port 53 { any; };
allow-query { any; };
recursion yes;
};
zone "." IN {
type hint;
file "named.ca";
};
zone "example.com" IN {
type master;
file "example.com.zone";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "192.168.1.zone";
allow-update { none; };
};
EOF
# 创建主区域文件
mkdir -p /var/named
cat > /var/named/example.com.zone <<EOF
\$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023101001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN A 192.168.1.100
ns1 IN A 192.168.1.100
www IN A 192.168.1.100
EOF
# 创建反向区域文件
cat > /var/named/192.168.1.zone <<EOF
\$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023101001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
100 IN PTR ns1.example.com.
EOF
# 配置从 DNS(可选)
echo "正在配置从 DNS..."
# 在主 DNS 的配置文件中添加从 DNS 的配置
cat >> /etc/named.conf <<EOF
zone "example.com" IN {
type slave;
file "example.com.zone";
masters { 192.168.1.200; }; # 从 DNS 的 IP 地址
};
EOF
# 启动 named 服务
echo "启动 named 服务..."
systemctl enable named
systemctl start named
# 配置防火墙
echo "配置防火墙..."
firewall-cmd --permanent --add-port=53/tcp
firewall-cmd --permanent --add-port=53/udp
firewall-cmd --reload
echo "BIND 安装和配置完成!"
echo "主 DNS 已配置,从 DNS 配置已添加到主 DNS 中。"