আপনার অনুরোধ অনুযায়ী RHEL 8-এ DNS সার্ভার সেটআপের পুরো প্রক্রিয়াটি একটি Bash স্ক্রিপ্ট আকারে দেওয়া হলো। এই স্ক্রিপ্টটি bind
ইনস্টল করা থেকে শুরু করে জোন ফাইল তৈরি এবং সার্ভার চালু করার সব ধাপ সম্পন্ন করবে।
#!/bin/bash
# স্ক্রিপ্টটি root ইউজার হিসেবে চালাতে হবে
if [ "$EUID" -ne 0 ]; then
echo "Please run as root"
exit
fi
# Step 1: Install bind and bind-utils
echo "Installing bind and bind-utils..."
dnf install -y bind bind-utils
# Step 2: Backup the original named.conf
echo "Backing up the named.conf file..."
cp /etc/named.conf /etc/named.conf.backup
# Step 3: Modify named.conf
echo "Configuring /etc/named.conf..."
cat <<EOL > /etc/named.conf
options {
listen-on port 53 { 127.0.0.1; 192.168.1.10; }; # আপনার সার্ভারের IP
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";
allow-query { localhost; 192.168.1.0/24; }; # আপনার নেটওয়ার্ক IP
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
EOL
# Step 4: Configure zone in /etc/named.rfc1912.zones
echo "Configuring /etc/named.rfc1912.zones..."
cat <<EOL >> /etc/named.rfc1912.zones
zone "example.com" IN {
type master;
file "/var/named/example.com.forward";
allow-update { none; };
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "/var/named/example.com.reverse";
allow-update { none; };
};
EOL
# Step 5: Create forward and reverse zone files
echo "Creating forward and reverse zone files..."
cat <<EOL > /var/named/example.com.forward
\$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023092001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
@ IN A 192.168.1.10
ns1 IN A 192.168.1.10
EOL
cat <<EOL > /var/named/example.com.reverse
\$TTL 86400
@ IN SOA ns1.example.com. admin.example.com. (
2023092001 ; Serial
3600 ; Refresh
1800 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
@ IN NS ns1.example.com.
10 IN PTR example.com.
EOL
# Step 6: Update file permissions
echo "Updating file permissions..."
chown root:named /var/named/example.com.forward /var/named/example.com.reverse
chmod 640 /var/named/example.com.forward /var/named/example.com.reverse
# Step 7: Update firewall rules
echo "Updating firewall rules..."
firewall-cmd --add-service=dns --permanent
firewall-cmd --reload
# Step 8: Start and enable named service
echo "Starting and enabling named service..."
systemctl start named
systemctl enable named
# Step 9: Check named service status
echo "Checking named service status..."
systemctl status named
echo "DNS server setup completed successfully!"
-
একটি নতুন ফাইল তৈরি করুন, উদাহরণস্বরূপ:
setup_dns.sh
vi setup_dns.sh
-
এই স্ক্রিপ্টটি ফাইলে পেস্ট করুন।
-
ফাইলটিকে executable করতে নিচের কমান্ডটি দিন:
chmod +x setup_dns.sh
-
স্ক্রিপ্টটি চালানোর জন্য:
sudo ./setup_dns.sh
bind
এবংbind-utils
ইনস্টল করবে।named.conf
কনফিগার করবে।- ফরোয়ার্ড এবং রিভার্স জোন ফাইল তৈরি করবে।
- ফায়ারওয়াল কনফিগার করবে।
named
সার্ভিস চালু ও সক্রিয় করবে।
এই স্ক্রিপ্টটি সম্পূর্ণ প্রক্রিয়া স্বয়ংক্রিয় করবে, আপনাকে আলাদা করে কিছু কনফিগার করার প্রয়োজন নেই।