Red Hat (RHEL/CentOS) 7 کے لیے کروٹ ماحول میں BIND DNS سرور سیٹ اپ کرنے کے لیے مرحلہ وار گائیڈ

کورس کے طلباء کے لیے تیار کردہ مضمون کا ترجمہ "لینکس سیکیورٹی". اس سمت میں ترقی کرنے میں دلچسپی رکھتے ہیں؟ Ivan Piskunov کی ماسٹر کلاس کی نشریات کی ریکارڈنگ دیکھیں "ونڈوز اور میک او ایس کے مقابلے لینکس میں سیکیورٹی"

Red Hat (RHEL/CentOS) 7 کے لیے کروٹ ماحول میں BIND DNS سرور سیٹ اپ کرنے کے لیے مرحلہ وار گائیڈ

اس آرٹیکل میں، میں آپ کو RHEL 7 یا CentOS 7 پر DNS سرور سیٹ اپ کرنے کے مراحل سے آگاہ کروں گا۔ میں نے مظاہرہ کے لیے Red Hat Enterprise Linux 7.4 استعمال کیا۔ ہمارا مقصد فارورڈ اور ریورس لوک اپ زونز کے لیے بالترتیب ایک A ریکارڈ اور ایک PTR ریکارڈ بنانا ہے۔

سب سے پہلے، DNS سرور کے لیے ضروری rpm پیکجز انسٹال کریں۔

نوٹ: RHEL کے لیے آپ کے پاس ہونا ضروری ہے۔ فعال RHN سبسکرپشن، یا آپ کر سکتے ہیں۔ ایک مقامی آف لائن ذخیرہ قائم کریں۔، جس کے ساتھ پیکیج مینیجر "yum" ضروری rpm پیکجز اور انحصار کو انسٹال کر سکتا ہے۔

# yum install bind bind-chroot caching-nameserver

میری ترتیبات:

# hostname
golinuxhub-client.example
Мой IP-адрес 192.168.1.7
# ip address | egrep 'inet.*enp0s3'
    inet 192.168.1.7/24 brd 192.168.1.255 scope global dynamic enp0s3

چونکہ ہم chroot استعمال کریں گے، ہمیں سروس کو غیر فعال کرنے کی ضرورت ہے۔

# systemctl stop named
# systemctl disable named

پھر مطلوبہ فائلوں کو کروٹ ڈائرکٹری میں کاپی کریں۔
نوٹ. دلیل کا استعمال کریں۔ -p ایک ٹیم میں cp حقوق اور مالکان کے تحفظ کے لیے۔

[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/etc/*  /var/named/chroot/etc/
‘/usr/share/doc/bind-9.9.4/sample/etc/named.conf’ -> ‘/var/named/chroot/etc/named.conf’
‘/usr/share/doc/bind-9.9.4/sample/etc/named.rfc1912.zones’ -> ‘/var/named/chroot/etc/named.rfc1912.zones’

پھر زون سے وابستہ فائلوں کو نئے مقام پر کاپی کریں۔

[root@golinuxhub-client ~]# cp -rpvf /usr/share/doc/bind-9.9.4/sample/var/named/* /var/named/chroot/var/named/
‘/usr/share/doc/bind-9.9.4/sample/var/named/data’ -> ‘/var/named/chroot/var/named/data’
‘/usr/share/doc/bind-9.9.4/sample/var/named/my.external.zone.db’ -> ‘/var/named/chroot/var/named/my.external.zone.db’
‘/usr/share/doc/bind-9.9.4/sample/var/named/my.internal.zone.db’ -> ‘/var/named/chroot/var/named/my.internal.zone.db’
‘/usr/share/doc/bind-9.9.4/sample/var/named/named.ca’ -> ‘/var/named/chroot/var/named/named.ca’
‘/usr/share/doc/bind-9.9.4/sample/var/named/named.empty’ -> ‘/var/named/chroot/var/named/named.empty’
‘/usr/share/doc/bind-9.9.4/sample/var/named/named.localhost’ -> ‘/var/named/chroot/var/named/named.localhost’
‘/usr/share/doc/bind-9.9.4/sample/var/named/named.loopback’ -> ‘/var/named/chroot/var/named/named.loopback’
‘/usr/share/doc/bind-9.9.4/sample/var/named/slaves’ -> ‘/var/named/chroot/var/named/slaves’
‘/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.ddns.internal.zone.db’ -> ‘/var/named/chroot/var/named/slaves/my.ddns.internal.zone.db’
‘/usr/share/doc/bind-9.9.4/sample/var/named/slaves/my.slave.internal.zone.db’ -> ‘/var/named/chroot/var/named/slaves/my.slave.internal.zone.db’
```bash
Теперь давайте посмотрим на основной файл конфигурации.
```bash
# cd /var/named/chroot/etc/

name.conf کے مواد کو صاف کریں اور درج ذیل کو پیسٹ کریں۔

[root@golinuxhub-client etc]# vim named.conf
options {
        listen-on port 53 { 127.0.0.1; any; };
#       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";
        allow-query     { localhost; any; };
        allow-query-cache { localhost; any; };
};

logging {
        channel default_debug {
                file "data/named.run";
                severity dynamic;
        };
};

view my_resolver {
        match-clients      { localhost; any; };
        recursion yes;
        include "/etc/named.rfc1912.zones";
};

زون کی مخصوص معلومات کو شامل کرنا ضروری ہے۔ /var/named/chroot/etc/named.rfc1912.zones. ذیل میں اندراجات شامل کریں۔ example.zone فائل فارورڈ لوک اپ زون فائل ہے، اور example.rzone - ریورس زون فائل۔

اہم نوٹ: ریورس لوک اپ زون 1.168.192 پر مشتمل ہے کیونکہ میرا IP ایڈریس 192.168.1.7 ہے

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

zone "1.168.192.in-addr.arpa" IN {
        type master;
        file "example.rzone";
        allow-update { none; };
};

زونز سے وابستہ فائلیں یہاں موجود ہیں:

# cd /var/named/chroot/var/named/

اگلا، ہم فارورڈ اور ریورس زونز کے لیے فائلیں بنائیں گے۔ فائل کے نام وہی ہوں گے جو اوپر فائل میں ہیں۔ name.rfc1912.zones. ہمارے پاس پہلے سے ہی کئی ڈیفالٹ ٹیمپلیٹس ہیں جنہیں ہم استعمال کر سکتے ہیں۔

# cp -p named.localhost  example.zone
# cp -p named.loopback example.rzone

جیسا کہ آپ دیکھ سکتے ہیں، تمام فائلوں اور ڈائریکٹریوں کی موجودہ اجازتیں اس سے تعلق رکھتی ہیں۔ جڑ.

[root@golinuxhub-client named]# ll
total 32
drwxr-xr-x. 2 root root    6 May 22  2017 data
-rw-r--r--. 1 root root  168 May 22  2017 example.rzone
-rw-r--r--. 1 root root  152 May 22  2017 example.zone
-rw-r--r--. 1 root root   56 May 22  2017 my.external.zone.db
-rw-r--r--. 1 root root   56 May 22  2017 my.internal.zone.db
-rw-r--r--. 1 root root 2281 May 22  2017 named.ca
-rw-r--r--. 1 root root  152 May 22  2017 named.empty
-rw-r--r--. 1 root root  152 May 22  2017 named.localhost
-rw-r--r--. 1 root root  168 May 22  2017 named.loopback
drwxr-xr-x. 2 root root   71 Feb 12 21:02 slaves

صارف کو بطور مالک ظاہر کرنے کے لیے تمام فائلوں کی اجازتوں کو تبدیل کریں۔ جڑ اور گروپ نام.

# chown root:named *

لیکن ڈیٹا کے لیے مالک ہونا ضروری ہے۔ نامزد: نام دیا گیا۔.

# chown -R  named:named data
# ls -l
total 32
drwxr-xr-x. 2 named named    6 May 22  2017 data
-rw-r--r--. 1 root  named  168 May 22  2017 example.rzone
-rw-r--r--. 1 root  named  152 May 22  2017 example.zone
-rw-r--r--. 1 root  named   56 May 22  2017 my.external.zone.db
-rw-r--r--. 1 root  named   56 May 22  2017 my.internal.zone.db
-rw-r--r--. 1 root  named 2281 May 22  2017 named.ca
-rw-r--r--. 1 root  named  152 May 22  2017 named.empty
-rw-r--r--. 1 root  named  152 May 22  2017 named.localhost
-rw-r--r--. 1 root  named  168 May 22  2017 named.loopback
drwxr-xr-x. 2 root  named   71 Feb 12 21:02 slaves

اپنی فارورڈ زون فائل میں درج ذیل مواد شامل کریں۔ یہاں ہم لوکل ہوسٹ (golinuxhub-client) کے لیے A ریکارڈ بناتے ہیں اور دوسرا سرور (golinuxhub-server) کے لیے۔

# vim example.zone
$TTL 1D
@       IN SOA  example. root (
                                        1       ; serial
                                        3H      ; refresh
                                        15M     ; retry
                                        1W      ; expire
                                        1D )    ; minimum

                IN NS           example.

                        IN A 192.168.1.7
golinuxhub-server       IN A 192.168.1.5
golinuxhub-client       IN A 192.169.1.7

اگلا، ریورس زون فائل میں مواد شامل کریں۔ یہاں ہم golinuxhub-client اور golinuxhub-server کے لیے PTR ریکارڈ بناتے ہیں۔

# vim example.rzone
$TTL 1D
@       IN SOA  example. root.example. (
                                        1997022700      ; serial
                                        28800           ; refresh
                                        14400           ; retry
                                        3600000         ; expire
                                        86400  )        ; minimum

        IN NS   example.
5       IN PTR  golinuxhub-server.example.
7       IN PTR  golinuxhub-client.example.

اس سے پہلے کہ ہم سروس شروع کریں۔ نامزد کروٹ، آئیے زون فائل کی کنفیگریشن چیک کرتے ہیں۔

[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.zone
zone golinuxhub-client.example/IN: loaded serial 1
OK

[root@golinuxhub-client named]# named-checkzone golinuxhub-client.example example.rzone
zone golinuxhub-client.example/IN: loaded serial 1997022700
OK

سب کچھ اچھا لگتا ہے۔ اب درج ذیل کمانڈ کا استعمال کرتے ہوئے کنفیگریشن فائل کو چیک کریں۔

[root@golinuxhub-client named]# named-checkconf -t /var/named/chroot/ /etc/named.conf

لہذا، سب کچھ کامیابی سے مکمل کیا گیا تھا.

[root@golinuxhub-client named]# echo $?
0

اہم نوٹ: میرے پاس SELinux اجازت دینے والے موڈ میں ہے۔

# getenforce
Permissive

سب کچھ اچھا لگ رہا ہے، لہذا یہ ہماری سروس شروع کرنے کا وقت ہے نامزد کروٹ .

[root@golinuxhub-client named]# systemctl restart named-chroot

[root@golinuxhub-client named]# systemctl status named-chroot
● named-chroot.service - Berkeley Internet Name Domain (DNS)
   Loaded: loaded (/usr/lib/systemd/system/named-chroot.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2018-02-12 21:53:23 IST; 19s ago
  Process: 5236 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
  Process: 5327 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (code=exited, status=0/SUCCESS)
  Process: 5325 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
 Main PID: 5330 (named)
   CGroup: /system.slice/named-chroot.service
           └─5330 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot

Feb 12 21:53:23 golinuxhub-client.example named[5330]: managed-keys-zone/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 0.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.127.in-addr.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.168.192.in-addr.arpa/IN/my_resolver: loaded serial 1997022700
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone example/IN/my_resolver: loaded serial 1
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: zone localhost.localdomain/IN/my_resolver: loaded serial 0
Feb 12 21:53:23 golinuxhub-client.example named[5330]: all zones loaded
Feb 12 21:53:23 golinuxhub-client.example named[5330]: running
```bash
Убедитесь, что resolv.conf содержит ваш IP-адрес, чтобы он мог работать в качестве DNS-сервера.
```bash
# cat /etc/resolv.conf
search example
nameserver 192.168.1.7
```bash
Давайте проверим наш DNS-сервер для обратной зоны, используя dig.
```bash
[root@golinuxhub-client named]# dig -x 192.168.1.5

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -x 192.168.1.5
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;5.1.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
5.1.168.192.in-addr.arpa. 86400 IN      PTR     golinuxhub-server.example.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400   IN      NS      example.

;; ADDITIONAL SECTION:
example.                86400   IN      A       192.168.1.7

;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:13:17 IST 2018
;; MSG SIZE  rcvd: 122

جیسا کہ آپ دیکھ سکتے ہیں، ہمیں ہماری درخواست (QUERY) کا مثبت جواب (ANSWER) ملا۔

[root@golinuxhub-client named]# dig -x 192.168.1.7

; <<>> DiG 9.9.4-RedHat-9.9.4-50.el7 <<>> -x 192.168.1.7
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55804
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;7.1.168.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:
7.1.168.192.in-addr.arpa. 86400 IN      PTR     golinuxhub-client.example.

;; AUTHORITY SECTION:
1.168.192.in-addr.arpa. 86400   IN      NS      example.

;; ADDITIONAL SECTION:
example.                86400   IN      A       192.168.1.7

;; Query time: 1 msec
;; SERVER: 192.168.1.7#53(192.168.1.7)
;; WHEN: Mon Feb 12 22:12:54 IST 2018
;; MSG SIZE  rcvd: 122

ہم اسی طرح ڈائریکٹ زون کو چیک کر سکتے ہیں۔

[root@golinuxhub-client named]# nslookup golinuxhub-client.example
Server:         192.168.1.7
Address:        192.168.1.7#53

Name:   golinuxhub-client.example
Address: 192.169.1.7

[root@golinuxhub-client named]# nslookup golinuxhub-server.example
Server:         192.168.1.7
Address:        192.168.1.7#53

Name:   golinuxhub-server.example
Address: 192.168.1.5

یہ مضمون قدرے پرانا ہے جیسا کہ RHEL 7 میں اب آپ کو بائنڈ کنفیگریشن فائلوں کو کروٹ میں کاپی کرنے کی ضرورت نہیں ہے۔ مرحلہ وار ٹیوٹوریل: بائنڈ کروٹ (CentOS/RHEL 7) کا استعمال کرتے ہوئے DNS سرور کو ترتیب دیں.

ماخذ: www.habr.com

نیا تبصرہ شامل کریں