Linux主域名服务器一键部署

#!/bin/bash
#DNS主域名服务
#user li 20250325
 
#检查是否为root用户
if
  [  "$USER"  != "root"   ]
then
   echo "错误:非root用户,权限不足!"
  exit  0
fi
 
#防火墙与高级权限
systemctl stop firewalld && systemctl disable firewalld  && echo "防火墙已经关闭"
sed -i 's/SELINUX=*/SELINUX=disabled/g'  /etc/selinux/config  &&   setenforce 0  && echo "关闭selinux"
 
#安装BIND相关工具
yum install -y bind
if
    [ $? = 0 ]
    then
            echo "安装成功"
    else
            echo "安装失败"
            sleep 5
            exit 0
fi
 
#设置变量
read -ep "请设置DNS区域名(如xiaomao.com):"  a
read -ep "请输入本机IP地址:"  b
read -ep "请输入反向解析的IP地址(如1.168.192):" c
ip="$b"
d=$(echo "$ip" | cut -d '.' -f 4)
 
#配置BIND主配置文件
cp /etc/named.conf /etc/named/conf.bak
sed -i 's/listen-on port 53 { 127.0.0.1; };/listen-on port 53 { any; };/g' /etc/named.conf
sed -i 's/allow-query     { localhost; }/allow-query     { any; }/g' /etc/named.conf
 
echo "zone "$a" IN {
    type master;
    file \"/var/named/$a.zone\";
};
zone "$c.in-addr.arpa" IN {
    type master;
    file \"/var/named/$c.rev\";
};" >> /etc/named.rfc1912.zones
 
#创建正向解析区域文件
echo "\$TTL 86400
@   IN  SOA  ns.$a. admin.$a. (
            2025032501 ; Serial
            3600       ; Refresh
            1800       ; Retry
            604800     ; Expire
            86400      ; Minimum TTL
)
@   IN  NS   ns.$a.
$a. IN  A       $b
ns       IN  A       $b
" > /var/named/$a.zone
 
#创建反向解析区域文件
echo "\$TTL 86400
@   IN  SOA  ns.$a. admin.$a. (
            2025032501 ; Serial
            3600       ; Refresh
            1800       ; Retry
            604800     ; Expire
            86400      ; Minimum TTL
)
@       IN  NS   ns.$a.
$d     IN  PTR  $a.
" > /var/named/$c.rev
 
#调整权限
chown named:named /var/named/$a.zone /var/named/$c.rev
chmod 640 /var/named/$a.zone /var/named/$c.rev
 
#启动BIND服务并设置为开机自启
systemctl enable named   &&   systemctl start named
if
       [ $? = 0 ]
then
     echo "服务启动成功"
     else
     echo "服务启动失败,10秒后退出"
      sleep  10
   exit  0
fi

你可能感兴趣的:(服务器,linux,运维)