Translate

четвер, 27 листопада 2014 р.

How to sync Google Apps account with own LDAP installation

У цій статті я розкажу про установку та налаштування Google Apps Directory Sync. За допомогою GADS можна автоматично синхронізувати акаунти користувачів, груп, на стороні аккаунту Google, з сервером LDAP (наприклад, з Microsoft Active Directory або Lotus Domino, openLDAP та ін). Додаток підключається до каталогу Google Apps і додає або видаляє акаунти користувачів згідно з описаною політикою.

Для роботи GADS звісно необхідно працюючий LDAP-сервер, a про його установку я писав ось тут.

Установка може проходити на будь-якому сервері та операційній системі (окрім OS X), для ОС Linux програмі необхідний Xserver (точніше X11), адже програма не має повнофункціонального CLI-інтерфейсу. Надалі синхонізацію можна виконувати автоматично, наприклад, через cron, за допомогою sync-cmd.

Ілюстрація роботи GADS. Особливо то і нічого додати.


вівторок, 30 вересня 2014 р.

Setup Jenkins on CentOS 6.5

Jenkins - відкритий інструмент для безперервної інтеграції написаний на Java. Проект був відгалуженням проекту Hudson, після суперечки з Oracle, яка заявляла свої права на торгову марку Hudson і таки створила її в грудні 2010.(с) Wikipedia

У цій статті піде мова про установку Jenkins для операційної системи CentOS версії 6.5.
Будемо втсановлювати Jenkins з офіційного репозиторія:

# wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

Імпортуємо ключ:

# rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

Та встановлюємо пакет:

# yum install jenkins

Для роботи Jenkins потребує Джаву і бажано якомога новішу версію. Перевірити установлену версію можна таким чином:

# java -version
java version "1.5.0"
gij (GNU libgcj) version 4.4.6 20110731 (Red Hat 4.4.6-3)

неділя, 28 вересня 2014 р.

How to setup GitLab on CentOS 6.5

Ця стаття буде коротенькою, адже установка Gitlab відбувається за допомогою декількох команд - все інше робить за нас Chef.

Gitlab - веб-інтерфейс до управління власним репозиторієм Git, він надає можливість зручного перегляду коду і все що з ним пов'язано, адміністрування користувачів і їх прав (до речі, підтримує LDAP аутентифікацію) і має просто чудовий вигляд. Так би мовити GitHub, але на власному сервері:



Gitlab написаний на ruby, проте ніхто не забороняє використовувати попереду веб-сервер для управління доменами.

Спочатку скачуємо останній реліз. Налаштування, як я вже згадав в темі, буде проходити для Centos 6.5.

# curl -O https://downloads-packages.s3.amazonaws.com/centos-6.5/gitlab-7.3.1_omnibus-1.el6.x86_64.rpm

вівторок, 16 вересня 2014 р.

Configure Linux сlients to authenticate through OpenLDAP

Раніше я писав про установку та налаштування OpenLDAP серверу. Тож наразі прийшов час налаштування клієнтів для аутентифіікації через центральний сервер. Це так би мовити продовження попередньої статті, яку бажано прочитати спочатку.

Логінимось на клієнт та встановлюємо додаткові пакети:

# apt-get install libnss-ldap libpam-ldap nscd

Дебіан підтримує конфігурацію сервісів під час установки (шах і мат, RPM-щики), тому одразу відповідаємо на питання налаштування.

Вводимо адресу LDAP-сервера у вигляді ldap://1.2.3.4:

неділя, 14 вересня 2014 р.

OpenLDAP server: installation and configuration

Якщо серверів у компанія лиш декілька - можна просто додавати користувачів на кожен із них. Це просто, проте не далекоглядно. З часом видача прав доступу буде займати все більше часу. Тому в критичний час варто задуматись про аутентифікацію через через центральний сервер, який значно зменшить час на видачу доступів. У цій статті піде мове про установку і конфігурацію OpenLDAP серверу.

OpenLDAP - відкрита реалізація LDAP, розроблена однойменним проектом, поширюється під власною вільною ліцензією OpenLDAP Public License. LDAP — протокол, що використовує TCP/IP і дозволяє проводити операції авторизації (bind), пошуку (search) та порівняння (compare), а також операції додавання, зміни або видалення записів. У якості записів можуть бути різноманітні дані, наприклад, дані виверженні вулкану (тобто зовсім різноманітні) чи перелік користувачів та їхніх даних. Стандарт LDAP не стандартизує як саме має зберігатись інформація в базі данних та ін., тому кожен може реалізувати більшість аспектів серверу по-своєму, головне щоб зберігалась сумісність.

Перейдемо до налаштувань LDAP серверу. Початкові дані такі:

Operating System :  Debian 7 Server / Ubuntu LTS
Hostname         :  ldap.ipeacocks.info
IP Address       :  1.2.3.4

Отже, замініть ці значення на необхідні вам у подальших конфігураційних файлах.

Установлюємо пакети:

# apt-get install slapd ldap-utils

четвер, 19 червня 2014 р.

Nagiosgraph. Add graphics to Nagios

Як на мене Nagios мало не ідеальна система моніторингу, проте вона лише фіксує зміну стану перевірок, а інформація щодо того як швидко система перейшла в цей стан - відсутня. Тому зовсім не буде зайвим додати можливість малювати графіки параметрів системи, що моніторяться. Для цього я обрав Nagiosgraph, він інтегрується в діючу інсталяцію Nagios і надалі може показувати графіки через спливаючі вікна чи окремо в меню через iframe. Моживо кращою альтернативою може слугувати PNP4Nagios, розробка якого ведеться активніше. 

Раніше я писав про установку Nagios із Nginx у якості веб серверу, проте Nagiosgraph потребує Apache і має конфігураційні файли саме для нього. Тому без нього майже ніяк:

# apt-get install libgd2-xpm-dev apache2 php5 apache2-utils
# a2enmod cgi

У якості стартової інструкції можна використати цю статтю (звісно без установки Nginx), проте слід довстановити також конфігураційні файли для Apache під час компіляції завантажених сирців Nagios:

# cd /dir/with/nagios/sources
# make install-webconf

Остання команда покаже помилку, у разі якщо її буде запущено у чомусь на зразок Debian, тому робимо все вручну:

# /usr/bin/install -c -m 644 sample-config/httpd.conf /etc/apache2/conf-available/nagios.conf
# ln -s /etc/apache2/conf-available/nagios.conf /etc/apache2/conf-enabled/nagios.conf

понеділок, 12 травня 2014 р.

Nagios useful check scripts

Нещодавно я писав про установку останньої версії Nagios. Наразі хочу зібрати всі корисні скрипти для перевірки сервісів та систем, що працюватимуть не лише із Nagios, а і з купою його форків.

Нагадаю, що скрипти можна запускати віддалено, використовуючи nrpe-демон чи щось подібне, чи локально на самому сервері. У першому випадку слід описати перевірку в nrpe.cfg, щось на зразок такого:

# vim /etc/nagios/nrpe.cfg
...
command[check_value]=/usr/lib/nagios/plugins/check_value -w 5 -c 10
...

А на Nagios-сервері check має бути описаний подібним чином

define service{
        use                             generic-service
        host_name                       your.server.com
        service_description             Info About Check
        check_command                   check_nrpe!check_value
       }

Або ж в другому випадку перевірку необхідно описати в конфігураційному файлі /etc/nagios-plugins/config/value.cfg (або щось на зразок цього, можливо, за іншою адресою):

define command {
        command_name    check_value
        command_line    /usr/lib/nagios/plugins/check_value -H '$HOSTADDRESS$' -w '$ARG1$' -c '$ARG2$'
}

та описати сервіс, використовуючи вищеописано команду:

define service{
        use                             generic-service
        host_name                       your.server.com
        service_description             Info About Check
        check_command                   check_value!5!10
       }

пʼятниця, 28 березня 2014 р.

Mailserver with Postfix and Dovecot on Debian 7

Мабуть у вас колись виникало бажання створити свій власний мейл-сервер із купую можливостей та гарним доменним іменем. Тому, можливо, ця стаття - для вас.
Буде встановлено та налаштовано:

Postfix - агент передачі пошти (MTA - mail transfer agent), відправляє та доставляє електронні листи. SMTP-сервер.

Dovecot - агент доставки пошти (MDA - mail delivery agent),  реалізує доступ до пошти. IMAP і POP3-сервер.

SpamAssassin - спам-фільтр, написаний на Perl. Працює із Postfix за допомогою демону spamass-milter.

ClamAV - антивірус. Підключається до SMTP-сервера через clamav-milter. Сканер листів на віруси.

Graylist - базовий спам-фільтр. Спосіб автоматичного блокування спаму, заснований на тому, що «поведінка» програмного забезпечення, призначеного для розсилки спаму, відрізняється від поведінки звичайних серверів електронної пошти. Якщо поштовий сервер одержувача відмовляється прийняти лист і повідомляє про «тимчасової помилку», сервер відправника зобов'язаний пізніше повторити спробу. Спамерське програмне забезпечення в таких випадках, зазвичай, не намагається цього робити.

AlterMIME - невелика програма, яка використовується для зміни mime-частин поштових вкладень (може додавати описи, видаляти при певних умовах вкладення чи їх заміняти). За допомогою AlterMIME ми будемо додавати до листів автоматичний підпис.

Vacation - скрипт для управліннями попередженнями щодо відпустки/відсутності на роботі. Його робота, установка попереджень про відсутність на робочому місці чи редагування повідомлення, буде керуватись через Postfix Admin.

Sieve/ManageSieve - мова опису правил фільтрації пошти, Sieve працює на стороні сервера і розкладає пошту в залежності від логіки, що задає користувач.

Postfix Admin - веб-панель адміністрування поштових скриньок.

RoundCube + plugins - поштовий веб-клієнт зі зручним інтерфейсом та деякі плагіни для нього.

вівторок, 11 березня 2014 р.

Nagios 4 compile from sources (Debian Wheezy + Nginx)

Nagios - програма моніторингу комп'ютерних систем і мереж з відкритим вихідним кодом. Призначена для спостереження, контролю стану обчислювальних вузлів і служб, сповіщає адміністратора в тому випадку, якщо якісь із служб припиняють (або відновлюють) свою роботу. 
Nagios спочатку була створена під ім'ям Netsaint, розроблена Етаном Галстадом (англ. Ethan Galstad). Він же підтримує і розвиває систему сьогодні, спільно з командою розробників, які займаються як офіційними, так і неофіційними плагінами. Nagios має також і комерційний варіант Nagios XI із досить кругленькою вартістю.

Я якось писав про установку Nagios із репозиторіїв, проте час йде, а номер версії, що знаходиться в репозиторіях особливо не змінилась. Тому будемо встановлювати все із сирців, що завантажимо із сайту моніторингової системи. Спочатку розберемось із термінологією:

Nagios Core - дистрибутив моніторингової системи, тобто його безкоштовний варіант.

Nagios Plugins - плагіни для перевірки хостів, офіційний пакет доповнень (~60 штук); скрипти, що власне і слідкуватимуть за станом системи. 

Nagios Remote Plugin Executor (NRPE) - програма, що надає можливість перевіряти віддалені хости. На сервері, що буде перевірятись має бути встановлено NRPE-сервер, що буде очікувати запити від NRPE-клієнта, котрий зазвичай знаходиться на хості з інсталяцією Nagios.

Для компіляції Nagios із сорців спершу необхідно встановити додаткові пакети:

# apt-get install libperl-dev libpng12-dev libgd2-xpm-dev build-essential php5-gd wget libgd2-xpm libssl-dev

Та додати користувача/групу від імені яких буде запускатись Nagios:

# adduser --system --no-create-home --disabled-login --group nagios
# groupadd nagcmd
# usermod -G nagcmd nagios
# usermod -a -G nagcmd www-data

пʼятниця, 21 лютого 2014 р.

Налаштування централізованого логування із LogAnalyzer та Rsyslog

У цій статті я опишу установку та налаштування переглядача логів LogAnalyzer, Rsyslog-клієнта, який відсилатиме всі логи на віддалений Rsyslog-сервер, котрий в свою чергу буде писати їх в базу MySQL.

LogAnalyzer - веб-переглядач логів, що збирає системний демон rsyslog/syslog-ng, тобто виступає зручним фронендом.

У якості ОС я обрав Ubuntu 12.04. Адреси серверів:

192.168.1.51 (loganalyzer-mysql.ip) - rsyslog-сервер, на цьому ж хосту також буде проінстальовано LogAnalyzer

192.168.1.50 (loganalyzer-mongo.ip) - rsyslog-клієнт, що відсилатиме логи на хост  loganalyzer-mysql.ip

Налаштовуємо серверну частину, для чого додамо репозиторій від розробника Rsyslog:

# vim /etc/apt/sources.list
...
# Adiscon stable repository
deb http://ubuntu.adiscon.com/v7-stable precise/
deb-src http://ubuntu.adiscon.com/v7-stable precise/
...

# apt-key adv --recv-keys --keyserver keyserver.ubuntu.com AEF0CF8E
# gpg --export --armor AEF0CF8E | sudo apt-key add -

Звісно, що можна скористатись версією Rsyslog, що доступна в стандартних репозиторіях, проте в мене була наявна проблема із відкриттям 514 TCP-порту від користувача syslog.

Оновлюємо пакети та встановлюємо Rsyslog із певними додатковими пакетами, котрі надалі будуть необхідні:

# apt-get install rsyslog rsyslog-mysql mysql-server mysql-client

неділя, 9 лютого 2014 р.

OpenVZ Web Panel

Зовсім нещодавно я писав про OpenVZ віртуалізацію. І не те щоб мені було дуже потрібно, проте я випадково наткнувся на досить симпатичну веб-панель для управління контейнерами і вирішив її спробувати. Тож поділюсь рецептом налаштування OpenVZ Web Panel.

OpenVZ Web Panel - досить непоганий варіант управління OpenVZ-контейнерами, адже з ним відпадає потреба кожен раз логінитись по ssh задля створення нового контейнеру чи зміни параметрів існуючого. У OpenVZ Web Panel також є можливість клонувати чи бекапити діючу віртуальну машину в пару кліків, тобто управління сервером стає справді зручним і швидким.

Налаштування буде описано для дистрибутиву CentOS 6.5. Припустимо звісно, що сама віртуалізація вже налаштована і працює правильним чином. Тож самий час установити необхідні програмні пакети:

# yum install ruby-devel sqlite sqlite-devel ruby-rdoc
# yum install make gcc
# yum install lsb_release
# gem install sqlite3-ruby

Скачуємо і запускаємо скрипт інсталяції:

# wget -O - http://ovz-web-panel.googlecode.com/svn/installer/ai.sh | sh

неділя, 2 лютого 2014 р.

Віртуалізація з OpenVZ

Віртуалізація дуже актуальна тема, адже дозволяє більш раціонально використовувати ресурси серверу. Дещо раніше я писав про віртуалізацію на базі KVM, що власне є технологією повної віртуалізації, на відміну від OpenVZ, про яку і піде далі мова.

OpenVZ — це реалізація технології віртуалізації на рівні операційної системи, яка базується на ядрі Linux. OpenVZ дозволяє на одному фізичному сервері запускати безліч ізольованих копій операційної системи, так званих контейнерів (Virtual Environments, VE).

Оскільки OpenVZ базується на ядрі Linux, в ролі «гостьових» систем можуть виступати тільки дистрибутиви GNU/Linux. Проте віртуалізація на рівні операційної системи у OpenVZ дає також і певні переваги, а саме: зручність у адмініструванні, щільніше розміщення віртуальних контейнерів в хост-системі (що зазвичай позитивно відображено на вартості VPS-хостингу), і дещо кращу продуктивність в порівнянні з технологіями повної віртуалізації.

Звісно, що і недоліків достатньо. Головний із них, що на відміну від KVM, модулі OpenVZ не входять у ванільне ядро, тому для фунціонування останнього необхідне окреме ядро і версія його далеко не остання. На момент публікації цієї статті, остальна стабільна версія - 2.6.32-042stab084.14. Із цього по-суті випливає, що хост-системою на OpenVZ може виступати не кожен дистрибутив, а лише з ядром біля 2.6.32 версії. Тому скажімо OpenVZ-ядро під Ubuntu 12.04 LTS навряд заведеться (що я вже спробував), адже ядро тут версії 3.8.0. Але не все так погано, адже для RedHat 6 (CentOS 6, Scientific Linux 6) та Debian 7 "Wheezy" все просто інсталюється і ці дистрибутиви офіційно підтримуюються Parallels.

Наступний недолік в тому, що всі контейнери працюють під одним ядром, тобто ядром хост-системи, і додати необхідний модуль ядра вже буде не так просто, як у випадку з технологіями повної віртуалізації. Тому з цим необхідно буде змиритись на самому початку.
Про певні інші недоліки та переваги можна прочитати тут.

Теорія без практики – мертва, тож самий час описати установку і налаштування хост-системи для OpenVZ. У якості хост-системи я обрав CentOS 6.5 (необхідно лиш попередньо не забути перевірити наявність правил iptables). Додаємо репозиторії для установки ядра OpenVZ та утиліт для роботи із контейнерами:

# wget -P /etc/yum.repos.d/ http://ftp.openvz.org/openvz.repo
# rpm --import http://ftp.openvz.org/RPM-GPG-Key-OpenVZ

неділя, 19 січня 2014 р.

Speedtest from shell console

Існують різні способи для перевірки швидкості інтернет з'єднання і мабуть найбільш популярний - це speedtest.net. Проте для цього необхідний браузер із підтримкою adobe flash і середовище в котрому він власне зможе запускатись. Тому у якості альтернативи раджу спробувати speedtest-cli, консольну програму, що виконує абсолютно ті ж функції.

Установку speedtest-cli можна виконати декількома способами: наприклад через pip чи easy_install. Тому спершу встановимо python-pip:

# apt-get install python-pip

Та після скачаємо і установимо speedtest-cli:

# pip install speedtest-cli

Все готово для нашої початкової цілі, тому запускаємо:

$ speedtest
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from Domashnya Merezha LLC (79.28.193.171)...
Selecting best server based on ping...
Hosted by LLC"Astelit" (Kiev) [2.52 km]: 10.649 ms
Testing download speed........................................
Download: 73.08 Mbit/s
Testing upload speed..................................................
Upload: 90.80 Mbit/s

неділя, 12 січня 2014 р.

Monitoring SNMP device with Cacti (setup and configuration)

Cacti - опенсорс моніторингова система, написана як фронтенд до утиліт RRDtool (RRD, Round-robin Database, кільцева база даних). RRDtool включають в себе можливість графічного відображення інформації, що зберігається; це може бути зміна в часі завантаження процесора, завантаження мережевого інтерфейсу і тд. 

Cacti є зручним інструментом для задання параметрів побудови графіків за допомогою RRDtool, а також має багато готових темплейтів для відображення звичних даних на кшталт використання ресурсів системи.

У статті я спробую описати його установку та конфігурацію.

Встановлюється все досить просто:

# apt-get update
# apt-get install snmpd cacti cacti-spine

Демон snmpd необхідно установити на всіх машинах, що будуть моніторитись.

Установщик запропонує обрати вебсервер з котрим буде працювати Cacti (Apache чи Lighttpd) та деякі інші питання, з якими необхідно погодитись. У якості веб-сервера я використав Apache.