Archive for the ‘ Linux ’ Category

Настройка master — slave репликации в MySQL

Предистория: имею 3 сервера под FreeBSD 9.x версии, на них mysql-server версии 5.5. Нужно организовать репликацию одной базы данных с главного сервера (master) на 2 бекапных сервера (slave)
Сначала рихтуем настройки mysql на мастере:
Действия на master-сервере
IP Address: 111.111.111.11
DB для репликации: mydb

Добавим в конфиг mysql, который обычно находится здесь /var/db/mysql/my.cnf такие опции:

log-bin             = mysql-bin
binlog_format       = mixed
binlog-do-db        = mydb
max_binlog_size     = 100M
expire_logs_days    = 30
sync_binlog         = 1
server-id           = 1

Перегружаем mysql-server на master:

root@master:~# service mysql-server restart

Читать полностью

BASH скрипт для поиска дубликатов текстовых файлов

Недавно какогото лешего взбрело в голову kmail и он затянул с почтового сервера все сообщения еще раз. В итоге получилось по 2 экземпляра всех входящих писем. Руками удалять — лень. Решил написать небольшой баш сркипт, вот так вышло:

#!/bin/bash

WORK_DIR="/home/black/.kde/share/apps/kmail/mail/inbox/cur"
LIST_ALL=`ls $WORK_DIR`

for MSG in $LIST_ALL
 do
  FILE_SIZE=`ls -l $WORK_DIR/$MSG |awk '{print $5}'`
  LIST_NEW=`find $WORK_DIR -size ${FILE_SIZE}c |grep -v $MSG`
    for TEST_MSG in $LIST_NEW
      do
         diff $TEST_MSG $WORK_DIR/$MSG > /dev/null && echo "Duplicate for $MSG is - $TEST_MSG" && rm $TEST_MSG
      done
done

Отлично отработал. Читать полностью

Debian VSFTPD — Error 500 OOPS: vsftpd: refusing to run with writable root inside chroot()

VSFTPD chroot error
Жил-был у меня уже давно FTP сервер на vsftpd без chroot пользователей в домашнюю директорию. Времени копать не было, оставил опцию local_root=/home и забыл на до лучших времен.
Время появилось — решил всетаки доделать до ума, но никакими правками конфига проблему решить не получилось 🙁 Оказалось, это такая фишка самого vsftpd, что пользователи не могут попасть в свой «хомяк» если он имеет права на запись …. бред какойто 🙂
Решается довольно просто Читать полностью

PostfixAdmin — авто архивация почты выключенных учеток

Исходные данные:
PostfixAdmin управляет почтовыми учетками в базе mysql «maildb»
mysql user: mailuser
mysql password: mailpassword
Почтовые ящики хранятся в /var/spool/mail/my.domain.ua

root@ns:/root # ls -l /var/spool/mail/my.domain.ua/
total 24
drwxr-xr-x  5 virtual  virtual  512 Aug  1 18:26 admin.email@my.domain.ua
drwxr-xr-x  3 virtual  virtual  512 Sep 27 14:46 alexandr.pisnov@my.domain.ua
drwxr-xr-x  2 virtual  virtual  512 Sep 27 14:46 anastasia.gaeva@my.domain.ua
drwxr-xr-x  2 virtual  virtual  512 Sep 27 14:47 andrey.diervin@my.domain.ua
drwxr-xr-x  2 virtual  virtual  512 Sep 27 14:47 anton.balaba@my.domain.ua
drwxr-xr-x  2 virtual  virtual  512 Sep 27 14:47 bogdan.kruk@my.domain.ua
drwxr-xr-x  2 virtual  virtual  512 Sep 27 14:47 dmitriy.perevozov@my.domain.ua
.........
root@ns:/root #

Задача, после того как пользователь выключен через админку PA — ждем 30 дней (вдруг кому понадобится?) и архивируем ящик пользователя в директорию /home/black/archives, сам ящик удаляется. О том какие ящики были заархивированы/удалены сообщать админу на email admin.email@my.domain.ua Читать полностью

Apache22 и сжатие контента

Решил вот опробовать сжатие контента апачем. Давно присматривался к этий фишке, много положительного слышал … наконец дошли руки настроить.
Делал на FreeBSD 9-той ветки, добавляем в настройки виртуалхоста такое:

root@black:~# cat /usr/local/etc/apache22/extra/httpd-vhosts.conf
<virtualhost *:80>
...............
    <ifmodule mod_deflate.c>
        DeflateCompressionLevel 5
        AddOutputFilterByType DEFLATE application/javascript
        AddOutputFilterByType DEFLATE text/javascript
        AddOutputFilterByType DEFLATE text/css
        AddOutputFilterByType DEFLATE text/html
         </ifmodule><ifmodule mod_setenvif.c>
                BrowserMatch ^Mozilla/4 gzip-only-text/html
                BrowserMatch ^Mozilla/4\.0[678] no-gzip
                BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
         </ifmodule>
   
................
</virtualhost>

После чего пробуем google-chrom-ом зайти на страничку и посмотреть что будет с передаваемыми данными. Для этого открываем консоль разработчика, нажатием Ctrl + Shift + J, и выбираем вкладку «Network» Читать полностью

Автоматический BackUP конфигов Mikrotik по SSH+FTP

Итак, у вас в компании есть много филиалов, где в качестве роутера используется Mikrotik. И вот нежданно-негаданно происходит казус — с роутером чтото случилось (пожар, потоп, скачек напруги, молния, админ идиот и тп), и просят подготовить новый. Бывало такое? И что мы делаем в таком случае? …. судорожно пытаемся вспомнить «А че ж там было настроено, а какой там провайдер … а как же узнать настройки» ну и еще много вопросов 🙂
Немного ознакомившись с админкой Mikrotik (с той его частью что доступна по ssh), я понял, что очень многое, если не все!, можно настраивать через ssh, не применяя web интерфейс либо winbox. А раз так, то это дает нам возможность автоматизировать действия по настройке и бекапу Mikrotik роутеров.
Вот роясь в своих древних скриптах, нашел «заготовку» для автоматизации бекапов большого количества однотипных устройств доступных по ssh.
Немного подправил, потестил и предлагаю Вам вот такой скриптик на perl для автоматического полного бекапа настроек Mikrotik. Читать полностью

zimbra 8.0.4 — адресная книга из AD

Для того чтобы заработала адресная книга из AD/LDAP необходимо настроить GAL. Ну и конечно же, прописать в поля email AD почтовые адреса пользователей.
Сначала то что имеем:
FQDN сервера с зимброй — zimbra.test.loc
Почтовый домен в зимбре — test.domain.ua
Сервер AD — 10.10.10.5, порт AD 3268
AD домен — test.loc (dc=test,dc=loc)
AD учетка для чтения LDAP — zimbra@test.loc, эта учетка находится в OU-шке IT
Для начала нужно создать для домена test.domain.ua datasource, я сделал это из консоли

root@zimbra:~# su - zimbra
zimbra@zimbra:~$ zmgsautil createAccount -a galsync@test.domain.ua -n ExternalGAL --domain test.domain.ua -s zimbra.test.loc -t ldap -f _ExternalGAL

Итак, получили имя источника данных для внешнего GAL: ExternalGAL Читать полностью

Мониторинг загрузки сетевого интерфейса на ESX сервере по SNMP

Сервис мониторинга Nagios3 у меня давно работает на сервере под Debian. Захотелось мне промониторить загрузку интерфейсов на серваке ESX 5. Оказалось это можно сделать по SNMP и довольно просто. Но всеже я это настраивал впервые, хочу поделиться с вами инфой и себе на заметку пригодится.
На сервер ESX зашел по SSH и подправил с помощью vi следующий файл до такого вида:

~ # cat /etc/vmware/snmp.xml
< ?xml version="1.0"?>
<config><snmpsettings><enable>true</enable><port>161</port><enveventsource>indications</enveventsource><loglevel>info</loglevel><communities>SRV1-ESXi</communities><targets></targets><engineid>00000063000000a17f000001</engineid></snmpsettings></config>
~ #

С сервера мониторинга пробуем опросить snmp Читать полностью

Bacula — обновляем самоподписные ssl сертификаты

После обновления openssl отвалились бекапы в бакуле, поглядев что там в логах, увидел что матерится на TLS, что мол неверные сертификаты и прочее … прочее. И еще чтото про то что простроченные. Не долго думая, решил просто перегенерить и не разбираться. Тем более что дело то пяти минут.
Итак, как это делается? Просто!
Создадим папку где будут храниться сертификаты:

root@gw:~# mkdir /usr/local/etc/bacula-ssl

Перейдем в нее:

root@gw:~# cd /usr/local/etc/bacula-ssl

Создадим необходимые для генерации сертификатов файлы:

root@gw:/usr/local/etc/bacula-ssl# touch ./index.txt && echo "01" > ./serial

Скопируем дефолтный конфиг openssl:

root@gw:/usr/local/etc/bacula-ssl# cp /etc/ssl/openssl.cnf .

Для упрощения создания сертификатов я заполнил своей инфой в конфиге все строчки с суффиксом _default. В принципе это не обязательно, но если этого не сделать то придется вручную много одинаковой инфы вводить, что лениво 🙂 Читать полностью

Проверить корректность отработки SSL в postfix/dovecot/courier

Както давненько был куплен сертификат для mail сервера, я его закинул на сервак, прописал путь к нему и к CA что предоставил центр сертификации где покупали, и усе. При этом outlook при первом обращении на него всетаки ругнулся, но достаточно было один раз ткнуть чтото типа «Доверяю и не спрашивать больше» и все прекрасно заработало. Времени копать дальше не было, как обычно, проехали-забыли. Но осадок остался … вот выдалось время разобраться в этом деле поглубже, для начала пара полезных команд:

openssl s_client -CApath /etc/ssl/certs/ -connect mail.nixcraft.net:443
openssl s_client -CApath /etc/ssl/certs/ -connect mail.somadomain.com.ua:995
openssl s_client -CApath /etc/ssl/certs/ -connect mail.somedomain.com.ua:587 -starttls smtp

А теперь по существу «моей проблемы». Чтобы все работало верно сертификат со стороны сервера должен состоять из сертификатов CA (очень желательно всех до корня) и сертификата выданого на данный сервер. Как проверить что у нас есть в данный момент? Просто!
Например:
Запускаем тест соединения с SMTP сервером с поддержкой TLS

openssl s_client -CApath /etc/ssl/certs/ -connect mail.somedomain.com.ua:995

Читать полностью