https://www.isc.org/downloads/bind/ Wszechstronna integracja na zasdzie szybciej, jeszcze szybciej zmusza do wykorzystywania coraz to nowszych technologii. Niestety chcieć nie znaczy zawsze móc. Z drugiej strony poddanie się oznacza wegetację. Stąd koncentracja niejednokrotnie ogromnych środków, czy to w marketing, czy to dział rozwoju, czy też sprzedaży musi wcześniej niż później za sobą pociągnąć wydatki związane z departamentem IT. W przyrodzie nic nie ginie i jak podsumuje się wszystkie koszty to większość przedsiębiorców odkłada inwestycje związane z serwerownią na sam koniec. Traktują ją po macoszemu, a przecież bez przepływu informacji dziś nie ma biznesu. Myślę, że nie mniejszy wpływ na to ma także krótki żywot produktu (w przypadku Microsoftu co 5 lat nowa wersja, a po kolejnych 5 latach brak wsparcia albo dwie ostatnie wersje podlegają suportowi w przypadku skrócenia czasu produkcji). Wymagania klientów ciągle rosną (szybciej, jeszcze szybciej), a to pociąga wzrost zaawansowanie technologicznego produktów (hardware <-> software). Często już sami administratorzy już nie wspomnę o programistach nie nadążają, a co dopiero mówić o kadrze zarządzającej. Szybciej, jeszcze szybciej. Obserwowałem polskie firmy w związku z rozbudową infrastruktury teleinformatycznej, których celem było dorównanie wymogom nie tylko swoich dostawców, ale zdystansowanie lokalnej konkurencji. Nie wyszło im to na zdrowie. Raz, że po drugiej stronie wbrew pozorom nikomu nie zależy by Polak był w stanie rozwinąć skrzydła, dwa dostawcy wolą inwestować w myśl swoich rodowitych firm. Zwykle tworzą (wykorzystują) otwarte oprogramowanie, np grupa VWG szeroko stosuje oprogramowanie diagnostyczne pojazdów pracujące pod JAVA, już nie wspomnę o serwerach pocztowych, stron itd. Oczywiście w tym samym czasie pracownicy importera w Polsce tworzą tabelki w Excelu, a to wymusza w prosty sposób wymianę dokumentów na setkach stanowisk dealerów w formacie w 100% zgodnym z pakietem MSOffice (nie jeden koncesjoner musiał wziąć kredyt by sprostać temu wymaganiu). Poczta Polska wybrała system ERP - Microsoft Dynamics AX, gdy tym czasem na naszej wschodniej flance poczta rosyjska, pod pojęciem NSO nie ukrywa zamkniętego oprogramowania lecz w zależności od przeznaczenia klona Mandrivy, CentOS-a, RHEL-a, czy ALT Linux-a. Oczywiście nie dzieje się to za darmo w obu przypadkach są wydawane milionowe kwoty, ale krążą one dzięki otwartości kodu o ironio w obiegu zamkniętym wspierając własną gospodarkę nie tylko w rozwoju, ale również w jednoczeniu się różnych podmiotów, które dostrzegają w tym swój interes, jak nie na dziś to na jutro!
Przechodząc do setna tematu niestety REDHAT (CentOS, Fedora, Scientific Linux) nie wspierają powyższej funkcjonalności w odróżnieniu od innych dystrybucji Linuxa . Wynika to z braku w repozytoriach pakietu samba-tools (tworzy wpisy w DNS-ie oraz konto zarządzające kontrolerem domeny).
yum whatprovides "*samba-tool"
Ktoś zapyta dlaczego. Proste query wujka Google o headquarters RedHat-a i Microsoft nie daje prostej odpowiedzi. Nawet w kontekście powyższych faktów jedyne co je łączy to słowo Washington oraz o ironio protokół MIT Kerboros. Dziwne tłumaczenie różnic w implementacji cache wykorzystywanego raz przez protokołu uwierzytelnienia MIT Kerberos (biblioteka systemowa RedHat-a, MicroSoft-a), dwa przez Heimdal Kerberos (SAMBA w ver.< 4.7), a jednocześnie praca obu standardów na tych samych portach 88 i 464 radykalnie nie tylko utrudnia wymianę informacji uwierzytelniających na tej samej maszynie dla SAMBY lecz wręcz blokuje rozwój całego projektu (https://www.samba.org/). Ewidentny brak logiki w projekcie SAMB-y, który nie tylko dla członków organizacji jeszcze przez wiele, wiele kolejnych wersji będzie się odbijał czkawką, ale również dla użytkowników zmuszonych traktować temat od wielu lat, jako wciąż eksperymentalny. Jak dla mnie to nie przypadek. Decyzję tą mogę przyrównać do oddania infrastruktury sieciowej w konkurencyjne ręce (jedne państwo oddaje węzły-bunkry telekomunikacyjne drugiemu wynik musi być jeden, czyli kołchoz - spektakularny wzrost kosztów przy jednoczesnym spadku wydajności, a więc konkurencyjności lokalnych podmiotów). Swoim stałym klientom staram się wyrównać szanse i instaluję funkcjonalność kontrolera domeny gratis. Oczywiście czas i praca procentuje w późniejszym czasie także dla mnie, np w połączeniu z profilami mobilnymi zapewnia mi ona możliwość w ciągu dwóch godzin odtworzenie systemu wraz z danymi użytkownika. Nie bagatelnym tematem jest bezpieczeństwo informacji chociażby w kontekście wymogów RODO (wymuszenie zmiany hasła itd). Nie mniej istotne zagadnienie, które w ten sposób załatwiam to możliwość zarządzania zasobami IT z jednego centralnego miejsca (możliwości automatycznego instalowania aplikacji, tworzenie grup użytkowników i przypisywanie im uprawnień do katalogów, plików, komputerów, drukarek itd). Niestety świadomość naszych pracodawców jest marna w tej kwestii. To jeden z powodów dla którego pozwalam Wam zabrać tyle cennego czasu. Drugi nie mniej istotny, to taki że każdy błąd popełniony na początku instalacji jest już w produkcji ciężki do usunięcia, a jak się domyślacie z powyższego słów (ryba gnije od głowy) nie będzie to wcale takie trudne. Przestrzegam przed pierwszym z nich. Choć będzie Was korciło skorzystać z gotowych obcych repozytoriów, np SERNET to gorąco odradzam. Wcześniej niż później napotkacie przy próbie aktualizacji systemu, SAMBY konflikt wersji bibliotek wymaganych przez oba produkty póki co człowieczej myśli. Można wówczas zrezygnować z aktualizacji, ale jest to niewskazane ze względów bezpieczeństwa, jak również wydajnościowych, czy też jak sama nazwa tego procesu wskazuje na poszerzenie jego możliwości lub jak kto woli większą kompatybilność SAMB-y z środowiskiem sieciowym MicroSofta. Bill Gates choć po chamburgera sam staje w kolejce to faktycznie nie zasypuje gruszek w popiele i szykuje kolejną restrukturyzację (szybciej, jeszcze szybciej). A zatem stawiając ich za przykład i my zabieramy się do pracy. Zaczynamy od ściągnięcia plików źródłowych z oficjalnej strony projektu https://www.samba.org/samba/download/
wget https://download.samba.org/pub/samba/samba-latest.tar.gz
Instalujemy paczki pakietów niezbędne do kompilacji SAMB-y jako kontrolera domeny (AD):
yum install attr bind bind-utils docbook-style-xsl gcc gdb krb5-workstation \ libsemanage-python libxslt perl perl-ExtUtils-MakeMaker \ perl-Parse-Yapp perl-Test-Base pkgconfig policycoreutils-python \ python2-crypto gnutls-devel libattr-devel keyutils-libs-devel \ libacl-devel libaio-devel libblkid-devel libxml2-devel libpcap-devel \ pam-devel popt-devel python-devel readline-devel zlib-devel systemd-devel \ lmdb-devel jansson-devel gpgme-devel pygpgme libarchive-devel \
python36 python36-devel python36-gssapi libtasn1 libtasn1-devel libtasn1-tools \
setroubleshoot-server setroubleshoot-plugins setools-libs sqlite-devel \
libidn-devel libxml2-devel libsepol-devel libattr-devel \
cyrus-sasl-devel openldap-devel net-tools mc bzip2 vim wget ntp rpm-build
Dodatkowo jeśli przewidujemy wykorzystanie SAMB-y jako serwera druku to dodatkowo doinstalowujemy pakiet cups:
yum install cups-devel
Korzystając z tekstowego interfejsu usługi NET konfigurujemy połączenie(a) sieciowe (nadajemy stały numer IP, maskę, bramę i dns-y naszego dostawcy internetu) oraz ustawiamy systemową nazwę komputera, np w postaci alfa.bitnet.local (drugie ostrzeżenie).
nmtui
lub też modyfikujemy pliki host (kontroler domeny ma nazwę alfa, domena bitnet.local, IP=10.0.0.11):
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 alfa alfa.bitnet.local
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6 alfa alfa.bitnet.local
10.0.0.11 alfa alfa.bitnet.local
resolv.conf
search partnernet.local
nameserver 10.0.0.11
Instalujemy BIND-a. Niestety jak się okazuje tu również dystrybucje RED HAT-a nie grzeszą świeżością (Centos 7 ma repozytoriach ma bind-9.9.4), która zgodnie z https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End wspiera SAMB-ę do wersji 4.0. Wymagana jest wersja minimum 9.11. Nie możemy też wykorzystać wersji Binda pracującego w środowisku chronionym, czyli paczki Bind-chroot. Jak widać czeka nas trochę pracy. Być może zaczynacie teraz rozumieć skąd się wziął ten przydługi wstęp. Bez pracy nie ma kołaczy więc z uśmiechem na ustach zataczamy rękawy i ściągamy najnowszy pakiet DNS-a ze strony https://www.isc.org/downloads/bind/ ,np.:
https://www.isc.org/downloads/file/bind-9-14-2/?version=tar-gz
może okazać się, że do kompilacji będzie potrzebne doinstalowanie bibliotek, np: cap
yum install libcap libcap-devel
Po rozpakowaniu paczki, kompilujemy i instalujemy Binda oczywiście w najnowszej wersji (skoro tu trafiłeś lubisz wyzwania) ;P
./configure --with-gssapi=/usr/include/gssapi --with-dlopen=yes
make
make install
W efekcie otrzymamy ścieżki konfiguracyjne:
prefix: /usr/local
sysconfdir: /etc
localstatedir: /var
Konfigurujemy BIND-a blokując w pliku /etc/named.conf poprzez wstawienie # na początku poniższych linii (możemy też dodać określone interfejsy sieciowe naszego serwera zamiast haszować linie):
# listen-on port 53 { 127.0.0.1; };
# listen-on-v6 port 53 { ::1; };
i modyfikując linię na poniższy strój (podobnie jak wyżej możemy również dodać określony(e) numer(y) IP naszego serwera):
allow-query { any; };
oraz ustawiając zmienną recursion na no,
recursion no;
a także dodając do sekcji options wiersz:
options { [...] tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab"; [...] };
oraz
include "/usr/local/samba/bind-dns/named.conf";
ostatecznie powinniśmy otrzymać coś adekwatnego do poniższego przykładu:
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
// See the BIND Administrator's Reference Manual (ARM) for details about the
// configuration located in /usr/share/doc/bind-{version}/Bv9ARM.html
options {
# listen-on port 53 { 127.0.0.1; };
# 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";
recursing-file "/var/named/data/named.recursing";
secroots-file "/var/named/data/named.secroots";
# allow-query { localhost; };
allow-query { any; };
/*
- If you are building an AUTHORITATIVE DNS server, do NOT enable recursion.
- If you are building a RECURSIVE (caching) DNS server, you need to enable
recursion.
- If your recursive DNS server has a public IP address, you MUST enable access
control to limit queries to your legitimate users. Failing to do so will
cause your server to become part of large scale DNS amplification
attacks. Implementing BCP38 within your network would greatly
reduce such attack surface
*/
recursion no;
dnssec-enable yes;
dnssec-validation yes;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
pid-file "/run/named/named.pid";
session-keyfile "/run/named/session.key";
tkey-gssapi-keytab "/usr/local/samba/private/dns.keytab";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
include "/usr/local/samba/bind-dns/named.conf";
Z powyższego pliku konfiguracyjnego wynika, że brakuje nam jeszcze dwóch plików/etc/named.root.key, który ze względów bezpieczeństwa propnuje wygenerować na swój strój
managed-keys {
# ROOT KEYS: See https://data.iana.org/root-anchors/root-anchors.xml
# for current trust anchor information.
#
# This key (19036) is to be phased out starting in 2017. It will
# remain in the root zone for some time after its successor key
# has been added. It will remain this file until it is removed from
# the root zone.
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq QxA+Uk1ihz0=";
# This key (20326) is to be published in the root zone in 2017.
# Servers which were already using the old key should roll to the
# new # one seamlessly. Servers being set up for the first time
# can use either of the keys in this file to verify the root keys
# for the first time; thereafter the keys in the zone will be
# trusted and maintained automatically.
. initial-key 257 3 8 "AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3 +/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF 0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN R1AkUTV74bU=";
};
oraz /etc/named.rfc1912.zones
// named.rfc1912.zones:
//
// Provided by Red Hat caching-nameserver package
//
// ISC BIND named zone configuration for zones recommended by
// RFC 1912 section 4.1 : localhost TLDs and address zones
// and http://www.ietf.org/internet-drafts/draft-ietf-dnsop-default-local-zones-02.txt
// (c)2007 R W Franks
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
zone "localhost.localdomain" IN {
type master;
file "named.localhost";
allow-update { none; };
};
zone "localhost" IN {
type master;
file "named.localhost";
allow-update { none; };
};
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 {
type master;
file "named.loopback";
allow-update { none; };
};
zone "1.0.0.127.in-addr.arpa" IN {
type master;
file "named.loopback";
allow-update { none; };
};
zone "0.in-addr.arpa" IN {
type master;
file "named.empty";
allow-update { none; };
};
z którego znowuż wynika, że musimy stworzyć pliki stref /var/named/named.localhost
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
i plik /var/named/named.loopback
$TTL 1D
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
PTR localhost.
oraz plik /var/named/named.empty,
$TTL 3H
@ IN SOA @ rname.invalid. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS @
A 127.0.0.1
AAAA ::1
a także /var/named/named.ca
; <<>> DiG 9.9.4-RedHat-9.9.4-38.el7_3.2 <<>> +bufsize=1200 +norec @a.root-servers.net
; (2 servers found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 17380
;; flags: qr aa; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 27
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1472
;; QUESTION SECTION:
;. IN NS
;; ANSWER SECTION:
. 518400 IN NS a.root-servers.net.
. 518400 IN NS b.root-servers.net.
. 518400 IN NS c.root-servers.net.
. 518400 IN NS d.root-servers.net.
. 518400 IN NS e.root-servers.net.
. 518400 IN NS f.root-servers.net.
. 518400 IN NS g.root-servers.net.
. 518400 IN NS h.root-servers.net.
. 518400 IN NS i.root-servers.net.
. 518400 IN NS j.root-servers.net.
. 518400 IN NS k.root-servers.net.
. 518400 IN NS l.root-servers.net.
. 518400 IN NS m.root-servers.net.
;; ADDITIONAL SECTION:
a.root-servers.net. 3600000 IN A 198.41.0.4
a.root-servers.net. 3600000 IN AAAA 2001:503:ba3e::2:30
b.root-servers.net. 3600000 IN A 192.228.79.201
b.root-servers.net. 3600000 IN AAAA 2001:500:84::b
c.root-servers.net. 3600000 IN A 192.33.4.12
c.root-servers.net. 3600000 IN AAAA 2001:500:2::c
d.root-servers.net. 3600000 IN A 199.7.91.13
d.root-servers.net. 3600000 IN AAAA 2001:500:2d::d
e.root-servers.net. 3600000 IN A 192.203.230.10
e.root-servers.net. 3600000 IN AAAA 2001:500:a8::e
f.root-servers.net. 3600000 IN A 192.5.5.241
f.root-servers.net. 3600000 IN AAAA 2001:500:2f::f
g.root-servers.net. 3600000 IN A 192.112.36.4
g.root-servers.net. 3600000 IN AAAA 2001:500:12::d0d
h.root-servers.net. 3600000 IN A 198.97.190.53
h.root-servers.net. 3600000 IN AAAA 2001:500:1::53
i.root-servers.net. 3600000 IN A 192.36.148.17
i.root-servers.net. 3600000 IN AAAA 2001:7fe::53
j.root-servers.net. 3600000 IN A 192.58.128.30
j.root-servers.net. 3600000 IN AAAA 2001:503:c27::2:30
k.root-servers.net. 3600000 IN A 193.0.14.129
k.root-servers.net. 3600000 IN AAAA 2001:7fd::1
l.root-servers.net. 3600000 IN A 199.7.83.42
l.root-servers.net. 3600000 IN AAAA 2001:500:9f::42
m.root-servers.net. 3600000 IN A 202.12.27.33
m.root-servers.net. 3600000 IN AAAA 2001:dc3::35
;; Query time: 18 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Po kvě 22 10:14:44 CEST 2017
;; MSG SIZE rcvd: 811
i /etc/named.iscdlv.key
# The bind.keys file is used to override the built-in DNSSEC trust anchors
# which are included as part of BIND 9. As of the current release, the only
# trust anchors it contains are those for the DNS root zone ("."), and for
# the ISC DNSSEC Lookaside Validation zone ("dlv.isc.org"). Trust anchors
# for any other zones MUST be configured elsewhere; if they are configured
# here, they will not be recognized or used by named.
#
# The built-in trust anchors are provided for convenience of configuration.
# They are not activated within named.conf unless specifically switched on.
# To use the built-in root key, set "dnssec-validation auto;" in
# named.conf options. To use the built-in DLV key, set
# "dnssec-lookaside auto;". Without these options being set,
# the keys in this file are ignored.
#
# This file is NOT expected to be user-configured.
#
# These keys are current as of Feburary 2017. If any key fails to
# initialize correctly, it may have expired. In that event you should
# replace this file with a current version. The latest version of
# bind.keys can always be obtained from ISC at https://www.isc.org/bind-keys.
managed-keys {
# ISC DLV: See https://www.isc.org/solutions/dlv for details.
#
# NOTE: The ISC DLV zone is being phased out as of February 2017;
# the key will remain in place but the zone will be otherwise empty.
# Configuring "dnssec-lookaside auto;" to activate this key is
# harmless, but is no longer useful and is not recommended.
dlv.isc.org. initial-key 257 3 5 "BEAAAAPHMu/5onzrEE7z1egmhg/WPO0+juoZrW3euWEn4MxDCE1+lLy2
brhQv5rN32RKtMzX6Mj70jdzeND4XknW58dnJNPCxn8+jAGl2FZLK8t+
1uq4W+nnA3qO2+DL+k6BD4mewMLbIYFwe0PG73Te9fZ2kJb56dhgMde5
ymX4BI/oQ+cAK50/xvJv00Frf8kw6ucMTwFlgPe+jnGxPPEmHAte/URk
Y62ZfkLoBAADLHQ9IrS2tryAe7mbBZVcOwIeU/Rw/mRx/vwwMCTgNboM
QKtUdvNXDrYJDSHZws3xiRXF1Rf+al9UmZfSav/4NWLKjHzpT59k/VSt
TDN0YUuWrBNh";
# ROOT KEYS: See https://data.iana.org/root-anchors/root-anchors.xml
# for current trust anchor information.
#
# These keys are activated by setting "dnssec-validation auto;"
# in named.conf.
#
# This key (19036) is to be phased out starting in 2017. It will
# remain in the root zone for some time after its successor key
# has been added. It will remain this file until it is removed from
# the root zone.
. initial-key 257 3 8 "AwEAAagAIKlVZrpC6Ia7gEzahOR+9W29euxhJhVVLOyQbSEW0O8gcCjF
FVQUTf6v58fLjwBd0YI0EzrAcQqBGCzh/RStIoO8g0NfnfL2MTJRkxoX
bfDaUeVPQuYEhg37NZWAJQ9VnMVDxP/VHL496M/QZxkjf5/Efucp2gaD
X6RS6CXpoY68LsvPVjR0ZSwzz1apAzvN9dlzEheX7ICJBBtuA6G3LQpz
W5hOA2hzCTMjJPJ8LbqF6dsV6DoBQzgul0sGIcGOYl7OyQdXfZ57relS
Qageu+ipAdTTJ25AsRTAoub8ONGcLmqrAmRLKBP1dfwhYB4N7knNnulq
QxA+Uk1ihz0=";
# This key (20326) is to be published in the root zone in 2017.
# Servers which were already using the old key (19036) should
# roll seamlessly to this new one via RFC 5011 rollover. Servers
# being set up for the first time can use the contents of this
# file as initializing keys; thereafter, the keys in the
# managed key database will be trusted and maintained
# automatically.
. initial-key 257 3 8 "AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTOiW1vkIbzxeF3
+/4RgWOq7HrxRixHlFlExOLAJr5emLvN7SWXgnLh4+B5xQlNVz8Og8kv
ArMtNROxVQuCaSnIDdD5LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF
0jLHwVN8efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7pr+e
oZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLYA4/ilBmSVIzuDWfd
RUfhHdY6+cn8HFRm+2hM8AnXGXws9555KrUB5qihylGa8subX2Nn6UwN
R1AkUTV74bU=";
};
Tworzymy plik usługi systemowej named w katalogu /etc/systemd/system pod nazwą named.system (katalog /usr/lib/systemd/system jest zarezerwowany dla usług systemowych), jak też ze względów bezpieczeństwa nie tworzymy linków do niego:
[Unit]
Description=Berkeley Internet Name Domain (DNS)
Wants=nss-lookup.target Wants=named-setup-rndc.service Before=nss-lookup.target After=network.target After=named-setup-rndc.service
[Service]
Type=forking Environment=NAMEDCONF=/etc/named.conf EnvironmentFile=-/etc/sysconfig/named Environment=KRB5_KTNAME=/etc/named.keytab PIDFile=/run/named/named.pid
ExecStartPre=/bin/bash -c 'if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/local/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi'
ExecStart=/usr/local/sbin/named -u named -c ${NAMEDCONF} $OPTIONS
ExecReload=/bin/sh -c '/usr/local/sbin/rndc reload > /dev/null 2>&1 || /bin/kill -HUP $MAINPID'
ExecStop=/bin/sh -c '/usr/local/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID'
PrivateTmp=true
[Install]
WantedBy=multi-user.target
i przeładowujemy zarządce usług:
systemctl daemon-reload
Nie zapominamy też by zautomatyzować uruchamianie demona DNS oraz go uruchomić:
systemctl enable named
systemctl start named
systemctl status named
Oczywiście może się okazać, że z jakiś powodów BIND stanie nam okoniem, a z jakich to podpowie nam interaktywne uruchomienie named-a z opcjami typu:
/usr/local/sbin/named -g -p 53
wówczas może okazać się, że np. brak mu uprawnień (/var/named 41770 root:named, /var/named/named.ca 100640 root:named, /var/named/data 40770 named:named), np do /run/named bo po prostu tego katalogu nie ma więc:
mkdir /var/named
chown named:named /var/named
lub z nic nie mówiącym komunikatem Active: failed (Result: timeout) since pon 2019-05-27 17:02:06 CEST; 19s ago Failed to start Berkeley Internet Name Domain (DNS) wynikającym najprawdopodobniej z braku katalogu /run/named w którym jest zapisywany PID oraz sesion key:
mkdir /run/named
chown named:named /run/named
i sprawdzić nie zaszkodzi
chmod 640 /usr/local/samba/private/dns.keytab
chown root:named /usr/local/samba/private/dns.keytab
chown root:named /etc/krb5.conf
Edytujemy plik /etc/krb5.conf do następującej postaci:
[libdefaults]
dns_lookup_realm = false
dns_lookup_kdc = true
default_realm = alfa.bitnet.local
W następnym kroku proponuje skonfigurować zaporę w następujący sposób:
firewall-cmd --add-port=53/tcp --permanent; \
firewall-cmd --add-port=53/udp --permanent; \
firewall-cmd --add-port=88/tcp --permanent; \
firewall-cmd --add-port=88/udp --permanent; \
firewall-cmd --add-port=135/tcp --permanent; \
firewall-cmd --add-port=137-138/udp --permanent; \
firewall-cmd --add-port=139/tcp --permanent; \
firewall-cmd --add-port=389/tcp --permanent; \
firewall-cmd --add-port=389/udp --permanent; \
firewall-cmd --add-port=445/tcp --permanent; \
firewall-cmd --add-port=464/tcp --permanent; \
firewall-cmd --add-port=464/udp --permanent; \
firewall-cmd --add-port=636/tcp --permanent; \
firewall-cmd --add-port=1024-5000/tcp --permanent; \
firewall-cmd --add-port=3268-3269/tcp --permanent
i zatwierdzamy zmiany firewall-a:
firewall-cmd --reload
Usuwamy pliki konfiguracyjne SAMBY (smb.conf, *.tdb, *ldb) o ile wcześniej bawiliśmy się SAMB-ą oraz plik konfiguracyjny Karberosa (/etc/krb5.conf:
smbd -b | grep "CONFIGFILE" CONFIGFILE: /usr/local/samba/etc/samba/smb.conf
rm /usr/local/samba/etc/samba/smb.conf
smbd -b | egrep "LOCKDIR|STATEDIR|CACHEDIR|PRIVATE_DIR" LOCKDIR: /usr/local/samba/var/lock/ STATEDIR: /usr/local/samba/var/locks/ CACHEDIR: /usr/local/samba/var/cache/ PRIVATE_DIR: /usr/local/samba/private/
rm /usr/local/samba/var/lock/*.tdb
rm /usr/local/samba/var/lock/*.ldb
rm /usr/local/samba/var/cache/*.tdb
rm /usr/local/samba/var/cache/*.ldb
rm /usr/local/samba/private/*.tdb
rm /usr/local/samba/private/*.ldb
rm /etc/krb5.conf
Może się zdarzyć, że zechcecie usunąć całą starą instalkę SAMBY-y i oczywiscie jest to możliwe, ale odbędzie się to wraz z powiązanymi bibliotekami GNOME. W efekcie stracicie dostęp do graficznego interfejsu użytkownika Centos-a, tzw GUI. Wyjściem z opresji może się okazać ponowna instalacja:
yum install gnome-classic-session
Dodajemy repozytorium EPEL do CentOS 7:
rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
Instalujemy pakiety lmdb:
yum install lmdb*
Rozpakowujemy TAR-em wcześniej ściągnięte pliki źródłowe SAMB-y:
tar -xvf samba-latest.tar.gz
Po czym wchodzimy do rozpakowanego pakietu, np:
cd samba-4.9.4
i uruchamiamy kompilację oraz instalację bez dodatkowych ustawień (./configure.developer trzecie ostrzeżenie):
./configure --enable-debug --enable-selftest --with-ads --with-systemd --with-winbind
make
make install
Jeśli dojdziemy w między czasie do wniosku, że była nam potrzebna dodatkowa opcja to czyścimy kompilację następującą komendą by móc powtórzyć ja ponownie
make clean
lub by zupełnie SAMB-ę odinstalować z systemu:
make uninstall
Po zakończonej instalacji pliki konfiguracyjne standardowo pojawią się w katalogu /etc/samba lub /usr/local/samba/etc, a sama SAMBA w podkatalogach /usr/local/samba. Uzyskujemy potwierdzenie tego wykonując następującą komendę:
/usr/local/samba/sbin/smbd -b
oraz na podstawie powyższych danych tworzymy ścieżkę dostępu do aplikacji SAMB-y, np:
export PATH=/usr/local/samba/bin/:/usr/local/samba/sbin/:$PATH
Sprawdzam dla wszystkiego czy plik konfiguracyjny SAMB-y nie pojawił się w /etc/samba (standardowa ścieżka przy instalacji z repozytoriów) lub /usr/local/samba/etc (instalacja ze źródeł) i ewentualnie po raz kolejny musimy usunąć plik /etc/samba/smb.conf:
rm /etc/samba/smb.confi możemy z czystym sumienie przejść w końcu do wypromowania domeny:
rm /usr/local/samba/etc/smb.conf
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --interactive
lub
/usr/local/samba/bin/samba-tool domain provision --use-rfc2307 --realm=bitnet.local --domain=bitnet --server-role=dc --dns-backend=BIND9_DLZ
musimy jeszcze odpowiedzieć na kilka pytań typu lub zatwierdzając ustawienia domyślne:
Realm [BITNET.LOCAL]:
Domain [BITNET]:
Server Role (dc, member, standalone) [dc]:
DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]:
DNS forwarder IP address (write 'none' to disable forwarding) [194.204.159.1]: none Administrator password:
Retype password:
...
A Kerberos configuration suitable for Samba AD has been generated at /usr/local/samba/private/krb5.conf Merge the contents of this file with your system krb5.conf or replace it with this one. Do not create a symlink!
...
Zgodnie z wyświetlanymi komunikatami nie możemy zapomnieć o stworzeniu symbolicznego linku:
ln -sf \usr\local\samba\private\krb5.conf \etc\krb5.conf
Sprawdzamy bieżącą konfigurację SAMB-y podając ścieżkę do pliku konfiguracyjnego smb.conf w skompilowanej lokalizacji:
testparm /usr/local/samba/etc/smb.conf
Dla porządku usuwamy ostrzeżenie pojawiające się przy wykonaniu komendy testparm, a sygnalizujące zwiększenie limitu otwartych jednocześnie przez klienta plików do 16384:
.rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Robimy to modyfikując plik limits.conf :
echo "* - nofile 16384" >> /etc/security/limits.conf
Gdyby coś poszło nie po naszej myśli (hasło, nazwa domeny itd) zanim ponownie będziesz chciał wypromować domenę musisz usunąć przynajmniej pliki z poniższych katalogów:
rm -rf /usr/local/samba/bind-dns
rm -rf /usr/local/samba/var/locks/sysvol
rm -rf /usr/local/samba/private
rm -rf /usr/local/samba/etc
By zmiany nabrały mocy prawnej należy zrestartować serwer. Stawiamy kropkę nad i tworząc skrypt automatycznego uruchomienia SAMB-y /etc/systemd/system/samba-ad-dc.service (tak to jest, gdy korzystamy ze źródeł, a nie pakietów dystrybucji):
[Unit] Description=Samba Active Directory Domain Controller After=network.target remote-fs.target nss-lookup.target [Service] Type=forking ExecStart=/usr/local/samba/sbin/samba -D PIDFile=/usr/local/samba/var/run/samba.pid ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target
i przeładowujemy konfiguracje system.d:
systemctl daemon-reload
Teraz jesteśmy gotowi do zautomatyzowania uruchamiania SAMB-y podczas startu systemu:
systemctl enable samba-ad-dc
lub też w razie potrzeby jej wyłączenia:
systemctl disable samba-ad-dc
Jak również możemy też ręcznie uruchomić lub zatrzymać usługi odpowiedzialne za funkcjionowanie kontrolera domeny pod CentOS-em. Uruchomienie:
systemctl start samba-ad-dc
Zatrzymanie:
systemctl stop samba-ad-dc
Konfigurujemy strefę odwróconą dla naszej lokalnej domeny, np bitnet.local:
samba-tool dns zonecreate 0.0.10.in-addr.arpa
Pierwszy etap tworzenia AD zakończony. Teraz czas na konfigurację z poziomu stacji roboczej kontrolera domeny.
Opracowane własne inspirowane "HOME: Ziemia S.O.S HD lektor PL".