Lépésről lépésre útmutató a BIND DNS-szerver chroot környezetben történő beállításához Red Hat (RHEL / CentOS) 7-hez

A cikk fordítása a kurzus hallgatói számára készült A Linux biztonság. Érdekel a fejlődés ebben az irányban? Nézd meg Ivan Piskunov mesterkurzusának felvételét A Linux biztonsága összehasonlítva a Windows és MacOS rendszerekkel

Lépésről lépésre útmutató a BIND DNS-szerver chroot környezetben történő beállításához Red Hat (RHEL / CentOS) 7-hez

Ebben a cikkben a DNS-szerver RHEL 7 vagy CentOS 7 beállítási lépéseiről fogok beszélni. A bemutatóhoz a Red Hat Enterprise Linux 7.4-et használtam. Célunk, hogy egy A-rekordot és egy PTR-rekordot létrehozzunk a közvetlen és fordított nézet zónájához.

Először telepítse a DNS-szerverhez szükséges rpm-csomagokat.

MEGJEGYZÉS: A RHEL-hez aktív előfizetés szükséges a RHN-re , vagy beállíthatja ahelyi offline tárolót , amely lehetővé teszi a "yum" csomagkezelő számára, hogy telepítse a szükséges rpm-csomagokat és függőségeket.A beállításaim:

# yum install bind bind-chroot caching-nameserver

Mivel chroot-ot fogunk használni, le kell állítani a szolgáltatást.

# 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

Ezután másolja a szükséges fájlokat a chroot könyvtárba.

# systemctl stop named
# systemctl disable named

MEGJEGYZÉS. Használja a
-p parancsban a jogok és tulajdonosok megőrzéséhez. 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’

Ezután másolja a zónázó fájlokat az új helyre.

[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 Most nézzük meg a fő konfigurációs fájlt. ```bash # cd /var/named/chroot/etc/

Tisztítsa meg a named.conf tartalmát, és másolja be a következőt.

Tisztítsa meg a named.conf tartalmát, és illessze be a következőt.

[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";
};

A zónához kapcsolódó információkat ide kell beírni /var/named/chroot/etc/named.rfc1912.zones. Adja hozzá az alábbi bejegyzéseket. Az example.zone fájl a közvetlen nézet zónája, míg example.rzone — a fordított zóna fájlja.

FONTOS MEGJEGYZÉS: A visszafelé néző zóna a 1.168.192-t tartalmazza, mivel az IP-címem 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; };
};

A zónákkal kapcsolatos fájlok itt találhatók:

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

Ezután létrehozzuk a közvetlen és a fordított zóna fájljait. A fájlok nevei megegyeznek a korábbiakkal a named.rfc1912.zones. Már van néhány alapértelmezett sablonunk, amelyek közül választhatunk.

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

Ahogy látja, az összes fájl és mappa jelenlegi engedélyei a következők: , felhasználó nevében fut, mivel alapvető rendszerbeállításokat módosítanak, de a WordPress közvetlenül egy normál felhasználóként működik..

[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

Módosítsa az összes fájl jogosultságait, kijelölve a felhasználót , felhasználó nevében fut, mivel alapvető rendszerbeállításokat módosítanak, de a WordPress közvetlenül egy normál felhasználóként működik. és a csoportot named.

# chown root:named *

De a data esetében a tulajdonosnak a következőnek kell lennie: named: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

Adjon hozzá alábbi tartalmat a közvetlen zóna fájlhoz. Itt létrehozunk egy A-rekordot a localhost (golinuxhub-client) számára, valamint egy másikat a szerver számára (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

Ezután adja hozzá a tartalmat a fordított zóna fájlhoz. Itt PTR-rekordot hozunk létre a golinuxhub-client számára és a golinuxhub-servernek.

# 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.

Mielőtt elindítanánk a szolgáltatást named-chroot, ellenőrizzük a zóna fájl konfigurációját.

[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

Minden rendben van. Most ellenőrizze a konfigurációs fájlt a következő parancs segítségével.

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

Tehát minden sikeresen megtörtént.

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

FONTOS MEGJEGYZÉS: A SELinux engedélyezett módban van.

# getenforce
Permissive

Minden rendben van, itt az ideje, hogy elindítsuk a szolgáltatásunkat. named-chroot .

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

[root@golinuxhub-client named]# systemctl status named-chroot
● named-chroot.service - Berkeley Internet Name Domain (DNS)
   Betöltve: betöltve (/usr/lib/systemd/system/named-chroot.service; letiltva; gyárilag beállítva: letiltva)
   Aktív: aktív (fut) 2018. febr. 12. 21:53:23 IST óta; 19 másodperce
  Folyamat: 5236 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (kód=kilépett, állapot=0/SIKER)
  Folyamat: 5327 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} -t /var/named/chroot $OPTIONS (kód=kilépett, állapot=0/SIKER)
  Folyamat: 5325 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -t /var/named/chroot -z "$NAMEDCONF"; else echo "A zónafájlok ellenőrzése le van tiltva"; fi (kód=kilépett, állapot=0/SIKER)
 Fő PID: 5330 (named)
   Csoport: /system.slice/named-chroot.service
           └─5330 /usr/sbin/named -u named -c /etc/named.conf -t /var/named/chroot

2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: managed-keys-zone/my_resolver: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna 0.in-addr.arpa/IN/my_resolver: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna 1.0.0.127.in-addr.arpa/IN/my_resolver: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna 1.168.192.in-addr.arpa/IN/my_resolver: betöltve sorozatszám 1997022700
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna example/IN/my_resolver: betöltve sorozatszám 1
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna localhost/IN/my_resolver: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna 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: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: zóna localhost.localdomain/IN/my_resolver: betöltve sorozatszám 0
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: minden zóna betöltve
2018. febr. 12. 21:53:23 golinuxhub-client.example named[5330]: fut
```bash
Győződjön meg róla, hogy a resolv.conf tartalmazza az IP-címét, hogy működhessen DNS-ként.
```bash
# cat /etc/resolv.conf
search example
nameserver 192.168.1.7
```bash
Nézzük meg a DNS-kiszolgálónkat a fordított zónához, a dig használatával.
```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
;; globális opciók: +cmd
;; Választ kaptunk:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40331
;; flagok: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flagok:; udp: 4096
;; KÉRDÉS SZEKCIÓ:
;5.1.168.192.in-addr.arpa.      IN      PTR

;; VÁLASZ SZEKCIÓ:
5.1.168.192.in-addr.arpa. 86400 IN      PTR     golinuxhub-server.example.

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

;; TOVÁBBI SZEKCIÓ:
example.                86400   IN      A       192.168.1.7

;; Lekérdezési idő: 1 ms
;; KISZOLGÁLÓ: 192.168.1.7#53(192.168.1.7)
;; IDŐ: 2018. febr. 12. 22:13:17 IST
;; ÜZENET MÉRET  átvett: 122

Ahogy látja, pozitív választ (ANSWER) kaptunk a lekérdezésünkre (QUERY).

[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

Ugyanígy ellenőrizhetjük a közvetlen zónát.

[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

Ez a cikk kicsit elavult, mivel az RHEL 7-ben már nem szükséges a bind konfigurációs fájlokat a chroot-ba másolni. Lépésről lépésre útmutató: DNS-szerver konfigurálása bind chroot segítségével (CentOS/RHEL 7).

Forrás: habr.com

Megbízható hosting vásárlása weboldalak számára, DDoS védelemmel, VPS VDS szerverek. 🔥 Megbízható webtárhely vásárlása DDoS védelemmel, VPS VDS szerverek | ProHoster