SCROLL

Посты автора «jakonda»

При работе с почтовым сервером Zimbra Collaboration, возникает проблема с самоподписанным сертификатом, почтовые клиенты и браузеры каждый раз выдают сообщение об ошибке проверки сертификата и угрозе безопасности. Это создает неудобство в работе, т.к. каждый раз пользователям приходится игнорировать непроверенный сертификат. Разберем как исправить эту ситуацию.

 

Вот такое предупреждение безопасности мы наблюдаем при попытке подключится к серверу с самоподписанным сертификатом.

По данной статье был развернут почтовый сервер Zimbra Collaboration 8.6. Для себя хочу проработать процесс обновления почтового сервера. Выполню обновление с версии 8.6.0 до 8.7.0.

 

Итак мы имеем рабочую версию Zimbra Collaboration 8.6

Разберем как развернуть систему управления версиями Subversion (SVN) на Ubuntu 14.04 Trusty Tahr. Так же данная инструкция работает на Debian 8 Jessie. Рассмотрим базовые параметры управления SVN (Создание, удалении репозиториев), разграничение прав пользователей SVN.

 

Подготовка системы

Перед началом установки обновляем систему до актуального состояния:

sudo apt-get update && sudo apt-get upgrade -y

 

Добавляем системного пользователя (subversion), который будет владельцем репозитория и от него будет запускаться демон (SVN):

sudo adduser subversion --system --shell /sbin/nologin --group --disabled-password --home /var/svn

 

Назначаем права доступа к папке для размещения репозиториев (SVN):

sudo chown -R subversion:subversion /var/svn
sudo chmod -R 775 /var/svn

WMI (Windows Management Interface) фильтрация в GPO позволяет создавать условия на кого будет распространятся групповая политика. WMI работает на всех версиях Windows начиная с Windows 2000 и Windows XP.

 

WMI фильтрация хороший инструмент в руках системного администратора, которая позволит более гибко применять групповые политики. Вот и я столкнулся с задачей, которая легко решалась с помощью WMI фильтра. Рассмотрим ниже примеры применения WMI фильтров.

 

Создание WMI фильтров

Создать WMI  фильтр можно с помощью оснастки управления групповыми политиками (Group Policy Management). Переходим в раздел WMI filters. С помощью контекстного меню выбираем New.

Понадобилось на работе организовать корпоративную адресную книгу, простую в содержании, легко редактируемую и чтобы ее можно было использовать в почтовых клиентах пользователей (MS Outlook, Mozilla Thunderbird).

 

Реализовать задачу решил с помощью OpenLDAP и все ниже описываемое будет для домена jakonda.local.

 

Установка OpenLDAP

Обновляем информацию о репозиториях и обновляем установленные пакеты:

sudo apt-get update && sudo apt-get upgrade -y

 

Указываем FQDN (Fully Qualified Domain Name) имя системы, в файле /etc/hostname:

debian.jakonda.local

Файл /etc/hosts приводим к виду таким образом, чтобы в нём была запись с полным доменным именем компьютера и с коротким именем, ссылающаяся на один из внутренних IP хоста:

127.0.0.1 localhost
192.168.1.10 debian.jakonda.local debian

 

Устанавливаем OpenLDAP. В процессе установке будет запрос на задание пароля от учетной записи admin.

sudo apt-get install slapd ldap-utils

 

После установки проверим работает ли служба каталогов slapd, выполним команду:

sudo netstat -nap tcp | grep 389

tcp 0 0 0.0.0.0:389 0.0.0.0:* LISTEN 926/slapd
tcp6 0 0 :::389 :::* LISTEN 926/slapd

Все отлично служба каталогов установлена и запущена.

Не редко возникают ситуации когда пользователи сбивают ассоциацию файлов и после этого у них возникает проблема с открытием того или иного файла. В моем случае пользователи чаще всего сбивают ассоциации файлов .doc, .docx, .xls, .xlsx. Зачем и почему они это делают остается догадкой, но проблема имеет место быть, поэтому решим ее с помощью групповых политик (GPO) на базе Windows Server 2008 R2. Разберем на примере расширений .doc и .docx

 

Задание ассоциации с помощью параметра Open With (Открыть с помощью)

Создаем новую групповую политику и редактируем ее параметры.

Рассмотрим как делать резервные копии списка учетных записей, а так же списков рассылки. Данный бекап может пригодится, в случае переноса почтового сервера на другую машину, да и в целом на случай непредвиденного сбоя, всегда можно будет восстановить быстро как учетные записи, так и группы рассылки.

 

Итак мы имеем развернутый по этой статье почтовый сервер Zimbra Collaboration 8.6 на Ubuntu 14.04 Trusty Tahr. Для создания бекапа данных мы будем использовать bash скрипты.

 

Резервное копирование списка учетных записей

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

nano backup_accounts.sh
sudo chmod +x backup_accounts.sh

 

В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):

Появилась необходимость поместить IP-камеры в отдельный VLAN и изолировать их там от основной локальной сети. В качестве главного роутера выступает Mikrotik RB2011UiAS-RM, а все камеры питаются по POE от коммутатора D-Link DWS-3160-24PC.

 

На Mikrotik RB2011UiAS-RM локальная сеть — 10.7.7.0/24, добавлен VLAN для IP-камера (vlanVideo) — VLAN ID -10, 192.168.150.0/24.

 

Далее разберем как сделать сегментацию сети VLAN между оборудованием Mikrotik RB2011UiAS-RM и D-Link DWS-3160-24PC.

Попал в руки мне коммутатор D-Link DGS-3120G-24TP, какие настройки в нем прописаны мне не известны, зайти на него не удалось. Необходимо сбросить его настройки на заводские и дальше настроить его под свои нужны.

В этой статье мы разбирали как развернуть Zimbra Collaboration 8.6 на Ubuntu 14.04 Trusty Tahr. В бесплатной версии почтового сервера нет удобного функционала по бекапу и восстановлению почтовых ящиков. А создание бекапов, есть неотъемлемая часть работы любого системного администратора. Да и наличие бекапа всегда нас спасет в трудную минуту.

 

Создавать бекапы и восстанавливать их же будем посредством bash-скриптов. Создавать и восстанавливать почтовые ящики мы будем на горячую так сказать, без остановки почтового сервера.

 

 

Резервное копирование всех почтовых ящиков

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

nano backup_all_mailbox.sh
sudo chmod +x backup_all_mailbox.sh

 

В созданный скрипт вписываем следующее (в параметрах настроек скрипта указываем данные свои):

#!/bin/bash

#####################
# Настройки скрипта #
#####################
# Путь к месту бекапа
Path_backup="/home/jakonda/bkzm"
# Временный файл для работы
Source_list="/home/jakonda/temp"
# Название домена
Domain="jakondo.ru"
# Значение текущей даты
Current_date=$(date +%d-%m-%Y)
# Лог-файл
Log=$Path_backup"/"$Current_date"/log"
echo "#####################################################"
echo "# Резервное копирование всех почтовых ящиков Zimbra #"
echo "#####################################################"
echo ""
echo "Время начала бекапа всех почтовых ящиков - $(date +%T)"
echo "Начало бекапа - $(date +%T)" > $Log
# Запоминаем время начала бекапа
Begin_time=$(date +%s)
echo ""
# Определяем список всех имеющихся почтовых ящиков
echo "Формируем список всех почтовых ящиков для бекапа..."
/opt/zimbra/bin/zmprov -l gaa $Domain > $Source_list
if [ $? -eq 0 ]; then
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]"
echo "Формирование списка почтовых ящиков успешно выполнено." >> $Log
echo
else
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]"
echo "Формирование списка почтовых ящиков не удалось выполнить. Завершение работы (Неудача)." >> $Log
exit
echo
fi
# Проходимся по всем ящикам в полученном списке и делаем бекап каждого
echo "Выполняем резервное копирование всех почтовых ящиков"
echo "----------------------------------------------------"
mkdir -p $Path_backup/$Current_date/
echo "Создание каталога $Current_date для размешения бекапа." >> $Log
for mailbox in $( cat $Source_list); do
echo "Резервирование почтового ящика - $mailbox"
/opt/zimbra/bin/zmmailbox -z -m $mailbox getRestUrl "//?fmt=tgz" > $Path_backup/$Current_date/$mailbox.tgz
if [ $? -eq 0 ]; then
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[OK]"
echo "Бекап почтового ящика $mailbox успешен" >> $Log
echo
else
echo -n "$(tput hpa $(tput cols))$(tput cub 6)[FAIL]"
echo "Бекап почтового ящика $mailbox не удачно" >> $Log
echo
fi
done
# Вычисление времени работы бекапа почтовых ящиков
End_time=$(date +%s)
Elapsed_time=$(expr $End_time - $Begin_time)
Hours=$(($Elapsed_time / 3600))
Elapsed_time=$(($Elapsed_time - $Hours * 3600))
Minutes=$(($Elapsed_time / 60))
Seconds=$(($Elapsed_time - $Minutes * 60))
echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд"
echo "Затрачено времени на резервное копирование : $Hours час $Minutes минут $Seconds секунд" >> $Log

Имеется компьютер с материнской платой AsRock G41M-VS3. В один прекрасный день я столкнулся с такой проблемой при включении компьютера, на загрузочном экране выдается сообщение MAC address are invalid in both CMOS and Flash!

Необходимо восстановить MAC адрес платы. Если продолжить загрузку компьютера (нажав F1), то система загрузится, но сетевая карта работать не будет ! Так же не поможет и перепрошивка BIOS. Данное сообщение будет высвечиваться каждый раз при загрузке компьютера, пока не будет восстановлен MAC адрес.

Разберем как развернуть мощный и в тоже время бесплатный почтовый сервер Zimbra Collaboration 8.6. Zimbra может соперничать с Microsoft Exchange своим функционалом, в который входит необходимый набор инструментов для работы в корпоративной среде. Zimbra имеет удобный и понятный Web интерфейс, поддерживающий работу мобильных устройств, что не мало важно для сотрудников находящихся вне офиса.

 

Исходные данные для развертывания Zimbra:

  • Домен jakondo.ru (на этом доменном имени будет ходить почта)
  • Локальная сеть 10.5.5.0/24
  • Домен контроллер на базе Windows Server 2012R2 (AD DS, DNS) DC1, jakonda.local10.5.5.5 (Установленный по данной статье)
  • Установленная система Ubuntu 14.04 Trusty Tahr (10.5.5.10, Hostname — mail)

Задача:

  • Настроить DNS на домен контроллере DC1, для работы почтового сервера Zimbra.
  • Выполнить предварительную настройку системы Ubuntu 14.04 Trusty Tahr перед установкой Zimbra.
  • Установить почтовый сервер Zimbra Collaboration 8.6.
  • Добавление почтового домена jakondo.ru в развернутый почтовый сервер.
  • Проверить работу почты.

Разберем на примере как выполнить базовую настройку роутера Mikrotik RB951Ui-2HnD с нуля, а так же настроим работу точки доступа Wi-Fi на нем. Настраивать роутер будем с помощью утилиты управления устройствами MikrotikWinbox. Скачиваем ее с оф. сайта.

 

Подготовка роутера

Подключаем роутер к ПК в любой порт кроме первого (иначе мы не увидим роутер). Запускаем WinBox, открываем вкладку Neighbors и видим наш роутер, подключаемся к нему по MAC адресу. По-умолчанию учетная запись admin не имеет пароля. Выбираем роутер и нажимаем Connect.

Иногда случается что по тем или иным причинам необходимо передать или же насильно забрать роли FSMO с главного контроллера домена на резервный / новый контроллер домена. Рассмотрим на примере как это можно сделать.

 

Мы имеем:

  • Главный контроллер домена на базе Windows Server 2012 R2 (DC1, jakonda.local, 192.168.0.2)
  • Дополнительный контроллер домена на базе Windows Server 2012 R2 (DC2, jakonda.local, 192.168.0.3)

Задача:

  1. Главный контроллер домена DC1 начал глючить и необходимо передать права FSMO на резервный DC2. Понизить DC1 до уровня обычного сервера и вывести его использования.
  2. Главный контроллер домена DC1 приказал долго жить и необходимо принудительно забрать роли FSMO на резервный DC2. На DC2 подчистить все упоминания о DC1.

Иногда при работе с виртуальными машинами, а в частности при их клонировании возникает необходимость смены SID клонированной системы. Присвоить системе новый SID можно с помощью утилиты sysprep входящую в состав Windows.

Рассмотрим на примере получения нового SID на Windows Server 2012 R2. Посмотреть текущий SID можно с помощью утилиты psgetsid (скачать можно с оф.сайта или тут), у меня имеются две системы с одинаковыми SID:

В этой статьe мы разобрали как развернуть контроллер домена на базе Windows Server 2012 R2. Теперь наша задача развернуть дополнительный контроллер домена, который будет подстраховкой в случае если основной выйдет из строя.

 

Итак мы имеем в работе:

  •  Основной контроллер домена Windows Server 2012 R2 (DC1, jakonda.local, 192.168.0.2) с развернутыми службами AD DS, DNS, DHCP.

Наша задача:

  • Развернуть дополнительный контроллер домена на базе Windows Server 2012 R2, выполнить предварительную настройку системы.
  • Поднять на дополнительном контроллере роли AD DS, DNS, DHCP.
  • Настроить репликацию данных.
  • Выполнить настройку работы DHCP сервера совместно с основным контроллером домена.

 

Проделываться все действия будут на виртуальной машине.

 

Установка Windows Server 2012 R2 и подготовительная настройка системы

Устанавливаем Windows Server 2012 R2 Standart with GUI. После установки системы обязательно:

  • Устанавливаем все имеющиеся обновления на текущий момент.
  • Выставляем корректную временную зону (+03:00 Moscow, St. Petersburg, Volgograd).
  • Изменяем имя системы на (прим. DC2).
  • Указываем в системе статический IP-адрес (в моем случае это будет 192.168.0.3), в качестве предпочитаемого DNS сервера указываем адрес DNS сервера на основном контроллере домена DC1 (192.168.0.2) и в качестве альтернативного DNS сервера указываем адрес который мы присвоили на текущем сервере DC2 (192.168.0.3).

В статье подробно разберем процесс развертывания контроллер домена на базе Windows Server 2012 R2 и настройка служб AD DS, DNS, DHCP.

 

Наша задача:

  • Установить Windows Server 2012 R2 и подготовить систему к развертыванию служб.
  • Развернуть службы Active Directory + DNS, выполнить настройку служб.
  • Развернуть службу DHCP, выполнить настройку обслуживания подсети 192.168.0.0/24.

Проделываться все действия будут на виртуальной машине.

 

Установка Windows Server 2012 R2 и настройка

При выборе типа устанавливаемой системы, выбираем Windows Server 2012 R2 Standart with GUI. Далее саму установку я пропущу, т.к. она полностью тривиальная.

После установки системы, обязательно обновляем систему до актуального состояния. Изменяем имя ПК (прим. DC1).

Развернув FTP-сервер vsftpd на Debian 8 Jessie и настроив использование виртуальных пользователей на базе MySQL, у меня при попытке подключения к FTP выдается вот такая ошибка: libgcc_s.so.1 must be installed for pthread_cancel to work.

 

ftp 10.7.7.97
Connected to 10.7.7.97.
220 Jakonda FTP сервер.
Name (10.7.7.97:jakonda): user1
331 Please specify the password.
Password:
libgcc_s.so.1 must be installed for pthread_cancel to work
Login failed.
421 Service not available, remote server has closed connection

 

Данная ошибка вызвана недостатком доступной процессу виртуальной памяти. Лимит определяется в значении VSFTP_AS_LIMIT в файле defs.h исходников vsftpd.

 

Увеличить значение VSFTP_AS_LIMITможно пересобрав vsftpd из исходников, с нужным нам значением и потом установить исправленную версию. Разберем ниже как это сделать.

 

Обновляем систему до актуального состояния:

sudo apt-get update && sudo apt-get upgrade

 

Устанавливаем необходимые пакеты:

sudo apt-get install fakeroot build-essential

 

Устанавливаем необходимые зависимости и загружаем исходник vsftpd из репозитария:

sudo apt-get build-dep vsftpd
sudo apt-get source vsftpd

 

Переходим в каталог vsftpd (на момент написания статьи, версия vsftpd в репозитариях 3.0.2):

pushd vsftpd-3.0.2/

 

В файле defs.h находим строку — #define VSFTP_AS_LIMIT         100UL * 1024 * 1024 и приводим ее к виду — #define VSFTP_AS_LIMIT         400UL * 1024 * 1024

 

Зафиксируем внесенные изменения (в процессе выполнения вводим имя патч-файла):

sudo dpkg-source --commit

 

Собираем пакет:

sudo fakeroot dpkg-buildpackage

 

Выходим из каталога:

popd

 

У вас должен создаться файл vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb .

 

Установим его (можно устанавливать по верх уже установленного vsftpd, конфигурационный файл затронут не будет):

sudo dpkg --install vsftpd_3.0.2-1ubuntu2.14.04.1_amd64.deb

 

После установки пробуем подключится к FTP-серверу и на этот раз авторизация должна пройти успешно.

ftp 10.7.7.97
Connected to 10.7.7.97.
220 Jakonda FTP сервер.
Name (10.7.7.97:jakonda): user1
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

Рассмотрим как настроить vsftpd на авторизацию виртуальных пользователей, хранимых в MySQL базе данных.

 

Использование виртуальных пользователей повышает безопасность FTP-сервера, т. к. при авторизации не будут использоваться реальные учетные записи пользователей указанные в системных файлах /etc/passwd и /etc/shadow.

 

# Все ниже действия производились на Debian 8 Jessie.

 

Устанавливаем необходимые пакеты:

apt-get install libpam-mysql mysql-server mysql-client -y

 

Входим в  mysql:

mysql -uroot -p

 

Создаем базу данных пользователей:

CREATE DATABASE vsftpd;
GRANT ALL ON vsftpd.* TO 'vsftpd'@'localhost' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
USE vsftpd;
CREATE TABLE users (id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, user VARCHAR(50) NOT NULL, passwd VARCHAR(50) NOT NULL, UNIQUE (user));
QUIT;

 

Создаем нового пользователя:

USE vsftpd;
INSERT INTO users SET user='user1', passwd='passwd';
QUIT;

 

Смена пароля для пользователя:

USE vsftpd;
UPDATE users SET passwd='passwd' WHERE user='user1';
QUIT;

 

Удалить пользователя:

USE vsftpd;
DELETE FROM users WHERE user='user1';
QUIT;

 

Посмотреть имеющихся пользователей в базе:

USE vsftpd;
SELECT * FROM users;
+----+-------+---------+
| id | user  | passwd  |
+----+-------+---------+
| 1  | user1 | 1234    |
+----+-------+---------+

 

Создаем файл политики PAM:

cat << EOF > /etc/pam.d/vsftpd.virtual
auth required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=users usercolumn=user passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vsftpd passwd=password host=localhost db=vsftpd table=users usercolumn=user passwdcolumn=passwd crypt=0
EOF

 

Создаем каталог для каталогов ftp виртуальных пользователей:

mkdir /srv/vftp_users

 

Создаем симлинк на необходимую для доступа папку в папку /srv/vftp_users с именем пользователя, например для виртуального пользователя user1 доступ к /srv/ftp:

ln -s /srv/ftp /srv/vftp_users/user1

[stextbox id=’info’]ИНФОРМАЦИЯ. Для закрытия доступа пользователю можно просто удалить его текущий симлинк, а для смены рабочей папки на другую удаляем текущий симлинк и создаем новый уже на другую папку.[/stextbox]

 

Выставим права для пользователя ftp на папку к которой указали симлинк, т.к. виртуальные пользователи будут представляться от имени пользователя ftp:

chown -R ftp:nogroup /srv/ftp

 

В конфигурационный файл /etc/vsftpd.conf добавляем параметры:

local_enable=YES
chroot_local_user=YES
user_sub_token=$USER
local_root=/srv/vftp_users/$USER
virtual_use_local_privs=YES
guest_enable=YES
guest_username=ftp
write_enable=YES
hide_ids=YES
pam_service_name=vsftpd.virtual

 

Небольшое пояснение по некоторым пунктам настройки:

user_sub_token Опция для автоматического создания домашней директории каждому виртуальному пользователю, основана на шаблоне.
local_root Перенаправление подключившихся пользователей вместо домашнего каталога, в иной каталог.
virtual_use_local_privs Виртуальные пользователи пользуются такими же привилегиями, что и локальные.
guest_enable Если опция установлена, все не анонимные логины классифицируются как «guest» логины.
guest_username Задается имя пользователя гостевого логина.
write_enable Разрешить пользователям загружать файлы на сервер.
hide_ids Если опция установлена, вся пользовательская и групповая информация в списке директорий, выводится как «ftp».
pam_service_name Строка содержит имя сервиса PAM, который будет использоваться vsftp.

 

Перезапускаем службу vsftpd:

service vsftpd restart

 

Проверяем работу, пробуем зайти на FTP-сервер используя логин и пароль виртуального пользователя.