Konfiguracja Nagios

Konfiguracja Nagios
To właśnie w pliku nagios.cfg znajdują się wszystkie ważniejsze ścieżki do poszczególnych plików z konfiguracją hostów w sieci. Można powiedzieć, że jest to serce programu Nagios. W pliku nagios.cfg są ścieżki do plików konfiguracyjnych, wśród których wyróżniamy:
a) Katalog z plikami cfg, które reprezentują hosty w sieci. Przykład dla localhost.cfg o nazwie zie-srv-nagios znajduje się poniżej. Najpierw zdefiniowany jest host, który używa template o nazwie linux-server, a następnie zdefiniowane są określone usługi, które także mają swoje templete o nazwie generic-service oraz local-service.

define host{
use linux-server
host_name zie-srv-nagios
alias Nagios 3.0.6
address 127.0.0.1
}
define service {
use generic-service
service_description Memory
host_name zie-srv-nagios
check_command check_linux_free_memory.pl!20!10
}

define service{
use local-service
host_name zie-srv-nagios
service_description PING
check_command check_ping!100.0,20%!500.0,60%
}
define service{
use generic-service
host_name zie-srv-nagios
service_description Total Processes
check_command check_procs!250!400
}


b) commands.cfg – do tego pliku odwołuje się każdy plik (w naszym przypadku localhost.cfg) w którym jest użyta komenda „check_command”. To właśnie tu następuje zdefiniowanie komendy. Oprócz podania nazwy komendy trzeba podać ścieżkę w której dany plugin się znajduje ($USER1$ jest częścią ścieżki, która jest zdefiniowana w pliku resource.cfg; przeważnie jest to /usr/local/nagios/libexec)

define command{
command_name check_linux_free_memory.pl
command_line /usr/bin/perl $USER1$/check_linux_free_memory.pl -w $ARG1$ c $ARG2$
}
define command{
command_name check_procs
command_line $USER1$/check_procs.sh -w $ARG1$ -c $ARG2$
}

define command{
command_name check_ping
command_line $USER1$/check_ping -H $HOSTADDRESS$ -w $ARG1$ -c $ARG2$ -p 5
}


c) templates.cfg – zdefiniowane templete dla hosta i usług (o nazwach generic-host, linux-server, generic-service i local-service)

define host{
name generic-host
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
notification_period 24×7
register 0
}
define host{
name linux-server
use generic-host
check_period 24×7
check_interval 5
retry_interval 1
max_check_attempts 10
check_command check-host-alive
notification_period workhours
notification_interval 120
notification_options d,u,r
contact_groups admins
register 0
}

define service{
name generic-service
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
is_volatile 0
check_period 24×7
max_check_attempts 3
normal_check_interval 10
retry_check_interval 2
contact_groups admins
notification_options w,u,c,r
notification_interval 60
notification_period 24×7
register 0
}

define service{
name local-service
use generic-service
max_check_attempts 4
normal_check_interval 5
retry_check_interval 1
register 0
}

define contact{
name generic-contact
service_notification_period 24×7
host_notification_period 24×7
service_notification_options w,u,c,r,f,s
host_notification_options d,u,r,f,s
service_notification_commands notify-service-by-email
host_notification_commands notify-host-by-email
}

 

d) contacts.cfg – określenie kto ma być informowany o problemach

define contact{
contact_name AdminNagios
use generic-contact
alias Nagios Admin
email nagios@localhost ; email na który mają przychodzić powiadomienia
}
define contactgroup{
contactgroup_name admins
alias Nagios Administrators
members AdminNagios
}


e) timeperiod.cfg – określenie przedziałów czasowych dla których będzie działał Nagios; najlepiej jest użyć pliku przykładowego dostarczonego wraz z instalacją pakietu Nagios.
f) hostgroup.cfg – zdefiniowane grupy, które łatwo można później zlokalizować i przyporządkować w Nagios

define hostgroup{
hostgroup_name linux-servers
alias Linux Servers
members zie-srv-nagios
}
define hostgroup {
hostgroup_name Wszystko
alias Wszystkie Serwery
members *
}

define hostgroup {
hostgroup_name Serwery_PING
alias Serwery pingowane
members zie-srv-nagios
}


Najlepiej po każdej ingerencji w pliki konfiguracyjne uruchomić polecenie:

/usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg


I zwracać uwagę na wszystkie errory oraz warning, które od razu pokazują plik w którym występuje niejasność lub brak zdefiniowania określonych parametrów do których jest odwołanie.

Konfiguracja pnp4nagios w systemie Debian

Konfiguracja pnp4nagios w systemie Debian

Index

Krok 1. Sprawdzenie czy pliki w folderach istnieją:
Na początek upewnić się czy plik process_perfdata.cfg oraz rra.cfg znajduje się w folderze /usr/local/pnp4nagios/etc/ . Jeżeli nie, najlepiej znaleźć pliki w katalogu pnp4nagios-0.6.2 (process_perfdata.cfg-sample oraz rra.cfg-sample), zmienić ich nazwy (bez ‘-sample’) i skopiować do powyższego folderu (/usr/local/pnp4nagios/etc/). Dodatkowo upewnić się przy process_perfdata.pl znajduje się w folderze, gdzie znajdują się wszystkie pluginy z Nagios (w moim przypadku /usr/local/nagios/libexec/), jeżeli nie znajdujemy plik process_perfdata.pl-sample, zmieniamy nazwę na process_perfdata.pl i umieszczamy go w folderze /libexec.

Krok 2. Kolejnym krokiem jest edycja pliku konfiguracyjnego nagios.cfg. Edycji i zmian należy dokonać według poniższych wartości:

process_performance_data=1
service_perfdata_file=/usr/local/pnp4nagios/var/service-perfdata
service_perfdata_file_template=DATATYPE::SERVICEPERFDATA\\tTIMET::$TIMET$\\tHOSTNAME::$HOSTNAME$\\tSERVICEDESC::$SERVICEDESC$\\tSERVICEPERFDATA::$SERVICEPERFDATA$\\tSERVICECHECKCOMMAND::$SERVICECHECKCOMMAND$\\tHOSTSTATE::$HOSTSTATE$\\tHOSTSTATETYPE::$HOSTSTATETYPE$\\tSERVICESTATE::$SERVICESTATE$\\tSERVICESTATETYPE::$SERVICESTATETYPE$
service_perfdata_file_mode=a
service_perfdata_file_processing_interval=15
service_perfdata_file_processing_command=process-service-perfdata-file
host_perfdata_file=/usr/local/pnp4nagios/var/host-perfdata
host_perfdata_file_template=DATATYPE::HOSTPERFDATA\\tTIMET::$TIMET$\\tHOSTNAME::$HOSTNAME$\\tHOSTPERFDATA::$HOSTPERFDATA$\\tHOSTCHECKCOMMAND::$HOSTCHECKCOMMAND$\\tHOSTSTATE::$HOSTSTATE$\\tHOSTSTATETYPE::$HOSTSTATETYPE$
host_perfdata_file_mode=a
host_perfdata_file_processing_interval=15
host_perfdata_file_processing_command=process-host-perfdata-file

 

Krok 3. Edycja pliku konfiguracyjnego templates.cfg (w moim przypadku uzupełnienie o następujące wpisy):

define host {
name host-pnp
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=_HOST_
}
define service {
name srv-pnp
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
}


Szczególną uwagę przywiązujemy do ścieżki, która zaczyna się od /pnp4nagios/…. Należy pamiętać o tym, że ścieżka może być inna co zależy od ustawień instalacji.

Krok 4. Dodajemy w definicji hostów i usług następujące wiersze (należy zwrócić uwagę na ścieżki!):

Dla hosta:

action_url /nagios/pnp/index.php?host=$HOSTNAME$


Dla usługi:

action_url /nagios/pnp/index.php?host=$HOSTNAME$&srv=$SERVICEDESC$

 

W moim przypadku wpiszemy na dole przed } to:

define service{
name generic-service ; The \’name\' of this service template
active_checks_enabled 1
passive_checks_enabled 1
parallelize_check 1
obsess_over_service 1
check_freshness 0
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
notification_interval 0
is_volatile 0
check_period 24×7
normal_check_interval 5
retry_check_interval 1
max_check_attempts 4
notification_period 24×7
notification_options w,u,c,r
contact_groups admins
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$&srv=$SERVICEDESC$
}

 

define host{
name ogolnie-host ; The \’name\' of this service template
notifications_enabled 1
event_handler_enabled 1
flap_detection_enabled 1
failure_prediction_enabled 1
process_perf_data 1
retain_status_information 1
retain_nonstatus_information 1
check_command check-host-alive
max_check_attempts 10
notification_interval 0
notification_period 24×7
notification_options d,u,r
contact_groups admins
register 0
action_url /pnp4nagios/graph?host=$HOSTNAME$
}

 

Na poniższym rysunku zaznaczyłem te dwa odnośniki:

[singlepic id=28 w=320 h=240 float=center]

Krok 5. Edytujemy plik konfiguracyjny command.cfg i uzupełniamy o następujące wiersze:

define command {
command_name process-service-perfdata
command_line /usr/bin/perl /usr/local/nagios/libexec/process_perfdata.pl
command_line /usr/bin/printf \”%b\” \”$LASTSERVICECHECK$\\t$HOSTNAME$\\t$SERVICEDESC$\\t$SERVICESTATE$\\t$SERVICEATTEMPT$\\t$SERVICESTATETYPE$\\t$SERVICEEXECUTIONTIME$\\t$SERVICELATENCY$\\t$SERVICEOUTPUT$\\t$SERVICEPERFDATA$\\n\” >> /usr/local/nagios/var/service-perfdata.out
}
define command {
command_name process-host-perfdata
command_line /usr/bin/perl /usr/local/nagios/libexec/process_perfdata.pl -d HOSTPERFDATA
command_line /usr/bin/printf \”%b\” \”$LASTHOSTCHECK$\\t$HOSTNAME$\\t$HOSTSTATE$\\t$HOSTATTEMPT$\\t$HOSTSTATETYPE$\\t$HOSTEXECUTIONTIME$\\t$HOSTOUTPUT$\\t$HOSTPERFDATA$\\n\” >> /usr/local/nagios/var/host-perfdata.out
}

define command{
command_name process-service-perfdata-file
command_line /usr/local/nagios/libexec/process_perfdata.pl –bulk=/usr/local/pnp4nagios/var/service-perfdata
}

define command{
command_name process-host-perfdata-file
command_line /usr/local/nagios/libexec/process_perfdata.pl –bulk=/usr/local/pnp4nagios/var/host-perfdata
}

 

stare wpisy dezaktywujemy, czyli dodajemy ‘#’ przed wierszami:

#\’process-host-perfdata\' command definition
#define command{
# command_name process-host-perfdata
# command_line /usr/bin/printf \”%b\” #$LASTHOSTCHECK$\\t$HOSTNAME$\\t$HOSTSTATE$\\t$HOSTATTEMPT$\\t$HOSTSTATETYPE$\\t$HOST#EXECUTIONTIME$\\t$HOSTOUTPUT$\\t$H$
# }
# \’process-service-perfdata\' command definition
#define command{
# command_name process-service-perfdata
# command_line /usr/bin/printf \”%b\” #\”$LASTSERVICECHECK$\\t$HOSTNAME$\\t$SERVICEDESC$\\t$SERVICESTATE$\\t$SERVICEATTEMPT$\\t#$SERVICESTATETYPE$\\t$SERVICEEX$
# }

 

Krok 6. Czas na weryfikacje instalacji poprzez plik, który jest dostarczony w pakiecie z pnp4nagios (plik o nazwie ‘verify_pnp_config’):

cd pnp4nagios-0.6.2/contrib/
chmod 755 verify_pnp_config
./verify_pnp_config -m bulk


Dokładniejszy opis znajduje się pod linkiem:
verify_pnp_config

Jeżeli wszystko się zgadza możemy podziwiać efekty naszej pracy:

[singlepic id=29 w=320 h=240 float=center]

Dodatkowo:
wykonać polecenie:

a2enmod rewrite


oraz wyłączyć magic_quotes (magic_qoutes= Off) w pliku php.ini

Instalacja pnp4nagios 0.6.2 – Debian

Instalacja pnp4nagios 0.6.2 – Debian
Przygotowujac się do instalacji pnp4nagios należy doinstalować narzędzie RRDtool wraz z dodatkami.

apt-get install rrdtool librrd2-dev librrds-perl

Następnie pobieramy i rozpakowujemy plik oraz wchodzimy do katalogu:

wget http://downloads.sourceforge.net/project/pnp4nagios/PNP-0.6/pnp4nagios-0.6.2.tar.gz?use_mirror=mesh
tar –xvzf pnp4nagios-0.6.2.tar.gz
cd pnp4nagios-0.6.2

Po wpisaniu komendy:

./configure

Na samym końcu przyglądamy gdzie zostanie zainstalowany pnp4nagios i w szczególności musimy zwrócić uwagę na poprawność ścieżki do RRDtool.

*** Configuration summary for pnp4nagios-0.6.rc3 10-11-2009 ***
General Options:
————————- ——————-
Nagios user/group: nagios nagios
Install directory: /usr/local/pnp4nagios
HTML Dir: /usr/local/pnp4nagios/share
Config Dir: /usr/local/pnp4nagios/etc
Location of rrdtool binary: /usr/bin/rrdtool Version 1.2.12
RRDs Perl Modules: FOUND (Version 1.2012)
RRD Files stored in: /usr/local/pnp4nagios/var/perfdata
process_perfdata.pl Logfile: /usr/local/pnp4nagios/var/perfdata.log
Perfdata files (NPCD) stored in: /usr/local/pnp4nagios/var/spool
Web Interface Options: ————————- ——————-
HTML URL: http://localhost/pnp4nagios/
Apache Config File: /etc/apache2/conf.d/pnp4nagios.conf
Review the options above for accuracy. If they look okay,
type \’make all\' to compile.

W kolejnym kroku wykonujemy następujące komendy:

make all
make install
make install-webconf
make install-config
make install-init

Dodatek pnp4nagios w wersji 0.6.2 do Nagios3 został zainstalowany. Teraz najwięcej czasochłonnego zadania czyli konfiguracja, która umożliwi współdziałanie tych dwóch aplikacji. Dobrze jest się upewnić czy wszystkie ścieżki oraz katalogi, które zostały podane w instalacji, istnieją.

Instalacja Nagios, Plugins, NRPE w Systemie Debian

Instalacja i konfiguracja Nagios 3.2.0, Nagios-Plugins 1.4.14, NRPE 2.12 w Debianie

Ze względu na błędne kodowanie WordPress komendy z myślnikiem \'-\' wpisywać ręcznie

Index

System do monitorowania, między innymi serwerów, jest potrzebny. Można go wykorzystać do profesjonalnych rozwiązań jak i do zabawy. W poniższym artykule postaram się opisać szybką instalacje i zamieścić parę porad dla początkujących.

DLA SERWERA NAGIOS
Instalacja Nagios\’a i pluginów
Na początek będą potrzebne następujące paczki (oprócz php):

apt-get install apache2 libapache2-mod-php5
apt-get install libgd2-xpm libpng12-dev libjpeg62-dev libgd-tools libpng-dev
apt-get install make gcc g++

Tworzymy nowego użytkownika i grupę o takiej samej nazwie:

/usr/sbin/useradd –m –s /bin/bash nagios
passwd nagios
groupadd nagios
usermod –G nagios nagios
usermod -G www-data,nagios www-data


Tworzymy katalog w którym umieścimy pliki instalacyjne oraz wszystkie pliki konfiguracyjne:

mkdir /usr/local/nagios
chown –R nagios:nagios /usr/local/nagios

Następnie ściągamy pliki „nagios-3.2.0.tar.gz”, „nagios-plugins-1.4.14.tar.gz” oraz „nrpe-2.12.tar.gz” (odnośniki na stronie: Nagios download)

wget http://downloads.sourceforge.net/project/nagios/nagios-3.x/nagios-3.2.0/nagios-3.2.0.tar.gz?use_mirror=kent
wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.14/nagios-plugins-1.4.14.tar.gz?use_mirror=mesh
wget http://downloads.sourceforge.net/project/nagios/nrpe-2.x/nrpe-2.12/nrpe-2.12.tar.gz?use_mirror=heanet

Każdy plik rozpakowujemy poleceniem:

tar –zxvf “nazwa ściągniętego pliku”


NAGIOS instalacja

Uwaga: przed \’prefix\' i każdym \’with\' są dwa myślniki.

cd nagios-3.2.0
./configure –prefix=/usr/local/nagios –with-cgiurl=/nagios/cgi-bin –with-htmurl=/nagios/ –with-nagios-user=nagios –with-nagios-group=nagios –with-command-group=nagios


Powyższa komenda między innymi ustala ścieżki do folderów, gdzie będą instalowane poszczególne elementy Nagiosa.
Kolejnym krokiem to kompilacja kodu źródłowego Nagiosa oraz instalacja głównego programu (gdzie będą pliki CGI oraz HTML) spryptu init (w /etc/init.d), przykładowej konfiguracji (pliki konfiguracyjne Nagiosa dla localhosta), akceptowanie zewnętrznych katalogów z komendami dla Nagiosa oraz plik konfiguracyjny Nagiosa w folderze conf.d w Apache.

make all
make install
make install-init
make install-config
make install-commandmode
make install-webconf


Instalacja pluginów jest szybka. Po rozpakowaniu pliku „nagios-plugins-1.4.14.tar.gz” wykonujemy następujące polecenia:

cd nagios-plugins-1.4.14
./configure –with-nagios-user=nagios –with-nagios-group=nagios
make
make install


Następnie tworzymy konto AdministratorNagios do logowania się do Nagiosa poprzez przeglądarkę internetową i podajemy hasło, które będzie później potrzebne. Po czym restartujemy Apache.

cp /etc/apache2/conf.d/nagios.conf /etc/apache2/sites-available/nagios.conf
rm /etc/apache2/conf.d/nagios.conf
a2ensite nagios.conf


Edytujemy plik nagios.conf I zamieniamy linijke:

Alias /nagios/ \”/usr/local/nagios/share\”


Na:

Alias /nagios \”/usr/local/nagios/share\”


Po czym tworzymy plik i podajemy hasło dla AdministratorNagios:

htpasswd –c /usr/local/nagios/etc/htpasswd.users AdministratorNagios
/etc/init.d/apache2 restart

W ten sposób instalacja Nagiosa została zakończona. Można wykonać: /etc/init.d/nagios3 restart (restart wykonuje się po każdej ingerencji w pliki Nagiosa)

Instalacja NRPE do komunikacji między serwerem Nagios a klientami
DLA SERWERA
Po rozpakowaniu pliku „nrpe-2.12.tar.gz” wykonujemy:

cd nrpe-2.12
./configure
make all
make install-plugin
make install-daemon
make install-daemon-config
make install-xinetd
apt-get install libcurl4-openssl-dev

Zainstalowany zostanie plugin NRPE, deamon, przykładowy plik konfiguracyjny oraz xinetd (NRPE daemon będzie działał pod tą usługą). Co najważniejsze (tylko w przypadku serwera!) dodajemy wpis do pliku command.cfg (znajduje się w /usr/local/nagios/etc/)

define command{
command_name check_nrpe
command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
}

$USER1$ to ścieżka, która jest skonfigurowana w pliku resource.cfg
Dodatkowo na serwerze trzeba edytować plik /etc/local/nagios/etc/nrpe.cfg i dodać w nim linijkę:

allowed_hosts= !adres_IP_klienta!

DLA KLIENTA
Dla klienta nie ma potrzeby instalowania Nagiosa. Potrzebne jest jedynie zainstalowanie pluginów oraz NRPE (można postępować według powyższej instrukcji). W przypadku NRPE, po zainstalowaniu, dodatkowo edytujemy linijkę only_from w pliku /etc/xinetd.d/nrpe

only_from = !adres_IP_serwera_Nagios!


następnie edytujemy plik /etc/services I dodajemy wiersz:

nrpe 5666/tcp # NRPE


Po tych czynnościach restartujemy xinetd i sprawdzamy czy port 5666 nasłuchuje

/etc/init.d/xinetd restart
netstat –at | grep nrpe


Powinien wyświetlić sie następujący komunikat:

tcp 0 0 *:nrpe *:* LISTEN

Jeżeli taki komunikat nie pojawił się należy upewnić się czy został dodany wpis w pliku /etc/services, czy został wpisany poprawny adres serwera w pliku /etc/xinetd.d/nrpe, czy xinetd jest zainstalowany i uruchomiony oraz w ostateczności sprawdzić logi systemowe dla xinetd i nrpe.
Jeżeli daemon NRPE działa poprawnie, po wpisaniu komendy:

/usr/local/nagios/libexec/check_nrpe –H !adres_IP_SERWERA!

Powinien wyświetlić się komunikat dotyczący zainstalowanej wersji NRPE, na przykład:

NRPE v2.12

Dodatkowo na hoście klienta trzeba edytować plik /etc/local/nagios/etc/nrpe.cfg i dodać w nim, w zależności od tego co chcemy mieć sprawdzane, przykładowo:

command[check_users]=/usr/local/nagios/libexec/check_users -w 5 -c 10 command[check_load]=/usr/local/nagios/libexec/check_load -w 15,10,5 -c 30,25,20


a także

server_address= !adres_IP_serwera!

Podsumowując: po każdej modyfikacji jakiegokolwiek pliku, który łączy się z Nagios należy wykonać restart. Pluginy znajdują się w katalogu /libexec. Przykładowe pliki konfiguracyjne znajdują się w folderze /conf.d. W celu modyfikacji i wprowadzania nowych funkcji wykorzystuję się pliki: nagios.cfg (główny plik konfiguracji w którym określamy, które pliki mają być brane pod uwagę przy tworzeniu statystyk), commands.cfg (każda komenda check_ musi być tu zaimplementowana), resource.cfg (to tu znajdują się hasła oraz ścieżki, które można wykorzystać w prostych skrótach np.:$ARG1$), cgi.cfg (poszczególne ekrany przedstawiające statystyki w Nagios). Powtórzę kolejny raz: należy bardzo dokładnie przyjrzeć się przykładowej konfiguracji plików w katalogu conf.d.
W najbliższym czasie postaram się dołączyć opis instalacji i konfiguracji PNP4Nagios do tworzenia wykresów (wiem, że Munin też jest ok, ale potrzebowałem czegoś co jest zintegrowane z Nagios) oraz poradę jak zmienić skórkę w Nagios. Ewentualnie będę się starał dostosować do komentarzy.

Korporacyjny komunikator: OpenFire+Spark.

Dzisiaj pokażę wam jak w 10 krokach zainstalować oraz skonfigurować serwer OpenFire, tak aby uwierzytelniał użytkowników za pośrednictwem LDAP\’a.

Pobieramy interesującą nas wersję instalatora ( Windows, Unix, Mac )  ze strony producenta.  Instalacje serwera OpenFire nie jest trudnym zadaniem – zakładam, że wszystko przebiegło pomyślnie i pod adresem http:\\ip_servera:9090, czeka na was kreator instalatora 🙂 W przypadku systemów z rodziny Windows  z włączoną zaporą pamiętajcie o odblokowaniu portu 9090 ( konsola do zarządzania ) oraz 5222 ( xmpp ).

Wstępna konfiguracja  step by step:

Testowa konfiguracja:

Nazwa domeny: dgm.local

Nazwa kontrolera domeny: zie-srv-pdc

Konto administratora: administrator@dgm

OU grup użytkowników: dgm.local/Zielonki/

Krok 1:

Wybieramy język instalacji – Polski

[singlepic id=8 w=320 h=240 float=center]

Krok 2:

Domena – nazwa kontrolera domeny, Port konsoli – zostawiamy domyślne.

[singlepic id=9 w=320 h=240 float=center]

Krok 3:

Ustawienia bazy danych – Wbudowana baza danych ( najszybsze rozwiązanie ). W przypadku wyboru Standardowe połączenia z bazą danych, należy podać parametry dostępu oraz nazwę hosta, na którym jest uruchomiona baza dancych.

[singlepic id=10 w=320 h=240 float=center]

[singlepic id=11 w=320 h=240 float=center]

Krok 4:

Profile Settings – Directory Server ( LDAP )

[singlepic id=12 w=320 h=240 float=center]

Krok 5:

Profile Settings: Connection Settings:

Server Type: Active Directory

Host: zie-srv-pdc

Base DN: dc=dgm, dc=local

Administrator DN: administrator@dgm

Password: Tutaj wpisujemy hasełko admina 😉

[singlepic id=13 w=320 h=240 float=center]

Testujemy wprowadzone dane, jeżeli wszystko będzie ok to otrzymamy komunikat \”Status: Success!\”

[singlepic id=14 w=320 h=240 float=center]

Krok 6:

Profile Settings: User Mapping:

W najprostszej konfiguracji zostawiamy wszystko tak jak jest.

[singlepic id=15 w=320 h=240 float=center]

Krok 7:

Profile Settings: GroupMapping:

Interesują mnie wszystkie grupy, które w nazwie mają słowo Zielonki

Group filter: (&(objectClass=group)(cn=Zielonki*))

Po kliknieciu Test Settings powinny pokazać się grupy, które spełniają nasze wymagania.

Krok 8:

Jeżeli wszystko udało się poprawnie skonfigurować to będziemy mogli zalogować się do konsoli administracyjnej, przy użyciu konta administrator.

[singlepic id=17 w=320 h=240 float=center]

Krok 9:

Po zalogowaniu, wita nas piękna strona główna, z której przemieszczamy się szybko do zakładki Użytkownicy/Grupy, a następnie przechodzimy do Ustawień Grup. W naszym przypadku mamy 3 grupy, które nas interesują ( Zielonki_Administracja, Zielonki_Telemarketer, Zielonki_Reszta). Listę każdej z tych grup musimy udostępnić dla wszystkich użytkowników, dlatego po kliknięcie w nazwę grupy wybieramy:

[singlepic id=1 w=320 h=240 float=center]

[singlepic id=2 w=320 h=240 float=center]

[singlepic id=3 w=320 h=240 float=center]

Enable contact group sharing, oraz:

Zaznaczamy: Share group with additional users i wybieramy \”All Users\”

[singlepic id=4 w=320 h=240 float=center]

Czynność wykonujemy dla każdej grupy, którą chcemy mieć w u wszystkich na Liście kontaktów by default 😉

Krok 10 – Ostatni:

Instalujemy klienta jabbera – np. Spark, łaczymy się do serwera podając nazwę użytkownika, hasło oraz adres serwera. Po zalogowaniu będziemy można zobaczyć efekt naszej pracy, czyli działający komunikator z pre-definiowaną listą kontaktową dla każdego użytkownika.

Spolszczenie do komunikatora Spark:

Plik ze spolszczeniem spark.jar, trzeba podmienić za \\Program Files\\Spark\\lib\\spark.jar – uruchomić ponownie komunikatora, wybrać język polski i po kolejnym uruchomieniu programu można cieszyć się spolszczoną wersję Sparka 😉

Autorem spolszczenia jest Pan Jacek Piechnik

[singlepic id=18 w=320 h=240 float=center]

[singlepic id=19 w=320 h=240 float=center]

Podsumowanie:

W dzisiejszym wpisie przedstawiłem podstawową konfigurację firmowego komunikatora, które zastępuje komercyjne rozwiązania takie jak Office Communication Server.

Zalety korporacyjnego komunikatora:

– swobodna komunikacja w czasie rzeczywistym

– swobodna wymiana plików, bez konieczności używania poczty, serwera plików, ftp itd…

– prosta konfiguracja i administracja

– blokada komunikacji z serwerami zewnętrznymi

W razie problemów z instalacją bądź konfiguracją zachęcamy do komentowania – postaramy się pomóc 🙂

Debian Lenny + AD 2008R2, czyli Samba > 3.4.1

Używanie Debian w środowisku Active Directory

Index

Debian Linux jest systemem operacyjnym. To potężne narzędzie, które może przynosić wiele korzyści w sieci. Używanie go w środowisku Windows może być bardzo trudne. Jest tam wiele przeszkód, które nie pozwalają na gładkie wprowadzenie systemu Debian Linux w sieci. Pierwszą rzeczą, i bardzo ważną, jest wprowadzenie autentyczności dla konta użytkownika.

Jeśli stacje robocze są w domenie Active Directory (AD), użytkownicy używają potwierdzenia autentyczności. Gdy nazwa użytkownika i hasło są używanie dla jednej lub drugiej usługi może to stwarzać dużo problemów. Jeśli kiedykolwiek czytelnik próbował postawić system Debian Linux w produkcji, prawdopodobnie napotkał ten problem. Dodatkowo, w środowisko AD, administratorzy mogą logować się do jakiejkolwiek maszyny i rozwiązywać problemy wykorzystując hasło administratora domeny.

Co mamy do tej pory to: aktywna nazwa użytkownika i hasło do bazy danych, które jest ciągle wykorzystywane do potwierdzenia autentyczności w usługach sieciowych. To luksusy, które powinny wyznaczać drogę jaką trzeba podążać. Jeśli nie można ustalić autentyczności użytkowników do domeny AD, wtedy usługi udostępniane na zewnątrz są niepewne i należy stworzyć oraz uaktualnić bazę danych użytkowników.

Potwierdzenie autentyczności AD nie należy do działania Debian’a, więc jest potrzebne jakieś oprogramowanie, które musi być użyte do zezwolenia na współpracę między dwoma programami. Oprogramowanie, które to umożliwia jest nazywane Sambą. Zajmuje się ona udostępnianiem plików i innych cech sieci, co jest charakterystyczne dla komputerów z systemem Windows. Winbind jest składnikiem Samby, który odwzorowuje (mapping) użytkownika i grupy z Active Directory do języka Linux. Kerberos jest nisko-poziomowym protokołem używanym do potwierdzenia autentyczności hasła w sieci, gdzie jest używana nieszyfrowana transmisja z sesją AD.

Instrukcja ta pokaże jak zainstalować udostępniany folder używając do tego systemu Debian z linuxowy serwerem plików. Można przypuszczać, że wystarczy skorzystać z prawa jakie ma konto root. Te parę kroków jest konieczne do wykorzystania potencjału systemu Debian w AD. W skrócie zostanie to przedstawione poniżej.

Instalowanie niezbędnych paczek używanych przez Debian w środowisku Active Directory

Paczki te są potrzebne do zainstalowania prostego serwera plików Samba używanego przez Debian Lenny i przy autentyfikacji w środowisku AD. Instalujemy Sambę oraz Kerberos’s następującym poleceniem:

aptitude install samba ntpdate smbclient winbind krb5-config krb5-user

Niestety w repozytoriach do Lennego, nie znajdziemy odpowiedniej wersji Samby, dlatego skorzystamy z backportów.

Dodajemy do pliku etc/apt/sources.list wpis:

deb http://www.backports.org/debian lenny-backports main contrib non-free

uruchamiamy apt-get update i importujemy klucze do repozytorium:

apt-get install debian-backports-keyring
aptitude -t lenny-backports install samba ntpdate smbclient winbind krb5-config krb5-user

Wstawiamy w Workgroup/domena informacje kiedy ma być wprowadzony. Zostanie zainstalowany jakiś plik .conf do wykorzystania. W tej chwili nie będziemy się martwić o serwer WINS. Gdy proces zostanie zakończony Daemons automatycznie się uruchomi. Potrzebujemy zastopować działąnie tego pliku podczas jego konfiguracji. Żeby zatrzymać działanie Samby oraz Winbind wpisujemy:

/ etc/init.d /samba stop
/ etc/init.d /winbind stop

Tworzenie pliku konfiguracyjnego używanego przez Debian w środowisku AD

Wszystkie pliki konfiguracyjne znajdują  się w folderze /etc/samba. Warto jest przeczytać je i w celu stworzenia odpowiedniej wiedzy – modyfikować (po uprzednim skopiowaniu oryginalnych plików!).

mkdir /etc/samba/copyconf
mv /etc/samba/* /etc/samba/copyconf/

tworząc własny plik /etc/samba/smb.conf dobrze jest upewnić się czy domena jest zgodna

nano /etc/samba/smb.conf
#/etc/samba/smb.cnf[global]workgroup              =       ((DOMAIN))

server string          =       %h server

wins support           =       no

socket options         =       TCP_NODELAY

large readwrite        =       no

log level              =      1

log file               =       /var/log/samba/samba.%m.log

security               =       ads

realm                  =       ((DOMAIN)).COM

encrypt passwords      =       yes

obey pam restrictions  =        yes

winbind use default domain     =      yes

winbind enum users             =      yes

winbind enum groups            =       yes

template shell                 =       /bin/bash

idmap uid                      =       10000-20000

idmap gid                      =       10000-20000

 

Konfiguracja i testowanie Kerberos przy użyciu Debian w środowisku AD

Ponieważ Samba już  wie jaką jest częścią domeny mamy podstawową jej konfigurację. Potrzebujemy teraz autentykacji jej pracy. Kerberos jest oprogramowaniem, które łączy się z domeną AD w celu autentykacji użytkowników. Bardzo ważne jest to, żeby czas na serwerze był  zsynchronizowany z kontrolerem domeny AD.

sync time
ntpdate ((domain controller))

Edytujemy plik konfiguracyjny Kerberos w celu prawidłowego określenia kontrolera domeny.

nano /etc/krb5.conf

ważna część to konfiguracja domeny /etc/krb5.conf :

[libdefaults]default_realm = ((DOMAIN)).COM[realms]

((DOMAIN)).COM = {

kdc = ((domain controller))

kdc = ((backup DC))

admin_server = (domain controller))

}

[domain_realm]

.((domain)).com = ((domain controller)).((domain)).COM

Można testować możliwości Kerberosa sprawdzając hasło użytkownika przez wpisanie:

kinit ((username))

następnie typ:

klist

Jeżeli efekt końcowy wygląda tak jak poniżej, wszystko jest gotowe.

Ticket cache: FILE:/tmp/krb5cc_0Default principal: (username)@(domain).COMValid starting     Expires            Service principal

04/27/09 13:54:23  04/27/09 23:54:26  krbtgt/(domain).COM@(domain).COM

renew until 04/27/09 23:54:23

Numerowanie kont w AD w Linuksie poprzez Winbind używając Debian w środowisku AD

Do numerowania użytkowników w AD najpierw trzeba dokonać aktualizacji pliku nsswitch.conf:

nano /etc/nsswitch.conf

dodajemy “winbind” do passwd i w linii grupy. Jeżeli posiadamy “compat” w lini, można zrobić coś takiego:

passwd:         compat winbindpasswd_compat:  winbindgroup:          compat winbind

group_compat:   winbind

Przyłączenie serwera Debian Linux do AD – użycie Debian w środowisku AD

Gdy już wszystko mamy skonfigurowane uruchamiamy Sambe i Winbind:

/etc/init.d/winbind start && /etc/init.d/samba start

Jeżeli wszystkie pozostałe kroki zostały poprawnie wykonane, można teraz bez problemu przyłączyć komputer do domeny. Dla komputera tworzymy konto w AD.

net ads join -U ((administrative user))

powinniśmy zobaczyć:

Joined ((server name)) to realm ((domain)).com

Możemy przetestować  Winbind oraz poprawność jego działania wpisując:

wbinfo -t

 

Autoryzacja Winbind w celu autentykacji użytkowników na serwerze – użycie Debian w środowisku AD

Pozwoli to na logowanie do hosta na konta AD. Należy edytować następujące pliki, które powinny wyglądać tak:

# /etc/pam.d/common-accountaccount    sufficient    pam_winbind.soaccount    required    pam_unix.so

# /etc/pam.d/common-auth

auth    sufficient    pam_winbind.so

auth    required    pam_unix.so use_first_pass nullok_secure

# /etc/pam.d/common-session

session    required    pam_mkhomedir.so skel=/etc/skel/ umask=0066

session    sufficient    pam_winbind.so

session required    pam_unix.so

Bardzo ważne jest to, żeby w “obey pam restriction” było ustawione „yes” (w pliku smb.conf), żeby powyższe ustawienia były efektywne.

Nadawanie dostępu administracyjnego w AD w Debian Linux Server

Polecenie sudo pozwala administratorowi systemu dopasować autentykacje dla grupy lub użytkownika do nadania odpowiednich możliwości działania. Przypuścimy, że mamy domenę zabezpieczonej grupy nazwanej ‘TCP’. Następujące polecenie nada grupie w AD odpowiednie prawa i dostęp:

aptitude install sudo
visudo

przesuniemy do samego końca i dodamy linie:

%(domain)\\tcp ALL =(ALL) ALL

Po wykonaniu tego polecenia grupa ‘TCP’ pełny dostęp do serwera co z wiadomych względów nie jest bezpieczne.

Tworzenie grupy udostępniającej w domenie grupy przy użyciu Samby – użycie Debian w środowisku AD

Jak tylko dołączyłeś do serwera Samby w swojej domenie i po wywołaniu identyfikacji użytkownika – tworzenie udostępniania i dostępu grupy do plików jest proste. Musimy stworzyć folder, który jest własnością root’a i domeny grupy. Samba odziedziczy dostęp po folderze nadrzędnym. Przykład  dla stwarzania folderu w domenie grupy nazwijmy „corporate_HR ”. Domena jest zatytułowana “ acme ”. Tam jest  administracyjna grupa wsparcia “ admins”. Ustawiając dostęp do folderu na ‘2771’ powoduje, że Root i grupa „corporete HR” ma pełen dostęp. To zmusi wszystkie nowe pliki utworzone pod folderem HR do wzięcia parametru grupowego z tej rodziny. Używając parametru “force group ” należy upewnić się, że pozwolenia są odpowiednio dobrane i członek z grupy „ACME\\admins ” ma dostęp do plików.

Logujemy się jako root

instalacja pliku systemowego

cd /homemkdir HRchgrp corporate_HR HR

chmod 2771 HR

instalacja udostępniania:

[HR]comment    =    share for corporate HR groupreadonly    =   no

inherrit owner    =    yes

inherit permissions    =    yes

authorized users    =    @ACME\\corporate_HR @ACME\\admins

force group    =    ACME\\corporate_HR