SCROLL

Рассмотрим как установить из исходников актуальную (на момент написания статьи) версию кеширующего прокси-сервера Squid 4.6 на Debian 9 Stretch.

[stextbox id=’info’]ИНФОРМАЦИЯ. Хочу сообщить что ниже описанное руководство, так же применимо к установке версии Squid 4.9.[/stextbox]

 

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

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

apt-get update && apt-get upgrade

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

apt-get install autoconf automake autopoint autotools-dev binutils build-essential cdbs comerr-dev cpp cpp-6 debhelper dh-autoreconf dh-strip-nondeterminism dpkg-dev g++ g++-6 gcc gcc-6 gettext icu-devtools intltool-debian krb5-multidev libarchive-zip-perl libasan3 libatomic1 libc-dev-bin libc6-dev libcap-dev libcc1-0 libcilkrts5 libcppunit-1.13-0v5 libcppunit-dev libcroco3 libdb-dev libdb5.3-dev libdpkg-perl libecap3 libecap3-dev libexpat1-dev libfile-stripnondeterminism-perl libgcc-6-dev libgmp-dev libgmpxx4ldbl libgnutls-dane0 libgnutls-openssl27 libssl-dev libgnutls28-dev libgnutlsxx28 libgomp1 libgssrpc4 libicu-dev libidn11-dev libisl15 libitm1 libkadm5clnt-mit11 libkadm5srv-mit11 libkdb5-8 libkrb5-dev libldap2-dev liblsan0 libltdl-dev libltdl7 libmpc3 libmpfr4 libmpx2 libnetfilter-conntrack-dev libnfnetlink-dev libp11-kit-dev libpam0g-dev libquadmath0 libsasl2-dev libsigsegv2 libstdc++-6-dev libtasn1-6-dev libtimedate-perl libtool libtsan0 libubsan0 libunbound2 libxml2-dev linux-libc-dev m4 make nettle-dev patch pkg-config po-debconf zlib1g-dev

 

Установка прокси-сервера Squid

Скачиваем исходник «squid», распаковываем его:

cd /opt/
wget http://www.squid-cache.org/Versions/v4/squid-4.6.tar.gz
tar -zxvf squid-4.6.tar.gz 
cd squid-4.6

В поисках решения организации SMS шлюза, посредством GSM-модема (прим. Huawei E1550), наткнулся на пакет «smstools», который прекрасно справляется со своими обязанностями (отправка\получение SMS).

 

Рассмотрим как развернуть пакет «smstools» на Debian 9 Stretch и настроить его на GSM-модема Huawei e1550 (так же тестировал ниже описанное на e3372h с прошивкой stick).

 

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

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

apt-get update && apt-get upgrade

 

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

apt-get install gcc make recode usb-modeswitch minicom

 

Подключаем GSM-модем Huawei E1550, проверяем появились ли устройства ttyUSB*:

ls -al /dev | grep ttyUSB

crw-rw---- 1 root dialout 188, 0 фев 27 11:34 ttyUSB0
crw-rw---- 1 root dialout 188, 1 фев 27 11:33 ttyUSB1
crw-rw---- 1 root dialout 188, 2 фев 27 12:37 ttyUSB2

Появилась интересная задача, которая заключается в том что нужно подключить GSM-модем USB HUAWEI E1550 к Asterisk 13 работающий на Debian 8 Jessie. Настроить возможность принимать/отправлять SMS, принимать/звонить с номера находящегося в GSM-модеме.

 

Рекомендуется чтобы GSM-модем HUAWEI E1550 работал на прошивке версии: 11.608.12.00.143, а так же чтобы работал только в режиме «только модем».

 

На момент написания статьи используемая версия Asterisk — 13.25.0, который развернут на Debian 8 Jessie (как развернуть Asterisk 13 на Debian 8 Jessie, можно по этой статье)

 

Настройка системы и GSM-модема

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

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

 

Устанавливаем необходимые пакеты для работы с USB GSM шлюзом:

apt-get install usb-modeswitch minicom

[stextbox id=’info’]usb-modeswitch необходима для автоматического переключения устройства из режима, minicom необходима для подключения к последовательным портам (COM).[/stextbox]

 

Подключаем GSM-модем HUAWEI E1550, проверяем появились ли устройства ttyUSB*:

ls -al /dev | grep ttyUSB

crw-rw---- 1 root dialout 188, 0 фев 27 11:34 ttyUSB0
crw-rw---- 1 root dialout 188, 1 фев 27 11:33 ttyUSB1
crw-rw---- 1 root dialout 188, 2 фев 27 12:37 ttyUSB2

Рассмотрим как выполнить установку из исходников Asterisk 16 на Debian 9 Stretch.

 

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

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

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

 

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

apt-get install linux-headers-amd64 gcc make autoconf libtool libical-dev pkg-config default-libmysqlclient-dev -y

 

Устанавливаем DAHDI, LibPRI, libSTRP

Скачиваем исходники (dahdi, libpri, libstrp, asterisk) и распаковываем их:

wget http://downloads.asterisk.org/pub/telephony/dahdi-linux-complete/dahdi-linux-complete-current.tar.gz
wget http://downloads.asterisk.org/pub/telephony/libpri/libpri-current.tar.gz
wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
wget http://downloads.asterisk.org/pub/telephony/asterisk/asterisk-16-current.tar.gz

tar -zxvf dahdi-linux-complete-current.tar.gz 
tar -zxvf libpri-current.tar.gz 
tar -zxvf v2.2.0.tar.gz 
tar -zxvf asterisk-16-current.tar.gz

Рассмотрим как установить систему видео наблюдения ZoneMinder 1.30.4 на Debian 9 Stretch.

 

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

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

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

 

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

apt-get install apache2 apache2-utils php7.0 libapache2-mod-php7.0 php7.0-mysql php7.0-gd mariadb-server vlc-plugin-base deb-multimedia-keyring -y

 

После установки зависимостей, выполним настройку безопасности MySQL:

mysql_secure_installation

 

Установка ZoneMinder

Добавляем необходимый для установки Zoneminder репозиторий, обновляется данные и выполняем установку:

echo "deb http://www.deb-multimedia.org stretch main non-free" >> /etc/apt/sources.list
apt-get update

apt-get install zoneminder

Продолжаю свое знакомство с XMPP-сервером, на базе ejabberd и реализацию задачи по организации достойного корпоративного мессенджера.

Появилась потребность в корпоративном Jabber-сервере (XMPP). Для реализации задачи выбрал ejabberd, по заявлениям разработчика он легкий, быстрый и надежный как скала.

Разберем как установить систему управления проектами Redmine 4.0.1 на Debian 9 Stretch.

 

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

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

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

 

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

sudo apt-get install apache2 apache2-dev libapr1-dev libaprutil1-dev libapache2-mpm-itk mysql-server curl libapache2-mod-passenger default-libmysqlclient-dev libcurl4-openssl-dev ruby-rmagick libmagickwand-dev gnupg2 dirmngr -y

 

После установки зависимостей, необходимо выполнить настройку безопасности mysql:

sudo mysql_secure_installation

[stextbox id=’warning’]В ходе выполнения команды, будет заданы вопросы (смены пароля root, удаления анонимных учетных записей, отключения удаленного доступа для root, удаления тестовой базы данных, сброса привилегий)[/stextbox]

Сейчас в качестве основной серверной ОС использую Debian 9 Stretch и в связи с этим планомерно перевожу свои действующие сервисы с Debian 8 Jessie, на Debian 9 Stretch.

 

Поэтому рассмотрим, как собрать из исходников последнюю (на момент написания статьи) версию Subversion 1.11.1, с поддержкой WebDAV.

 

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

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

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

 

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

apt-get install gcc checkinstall libaprutil1 libaprutil1-dev zlib1g zlib1g-dev liblz4-1 liblz4-dev libserf-1-1 libserf-dev libutf8proc2 libutf8proc-dev apache2 apache2-dev apache2-utils -y

Столкнулся с ситуацией когда понадобилось в безопасном режиме Windows, удалить программу, установленную MSI-установщиком.

 

При попытке удалить, получил ошибку «Не удалось получить доступ к службе Windows Installer».

 

Если попытаться запустить службу Windows Installer, через встроенную оснастку, то увидим ошибку «Эта служба не запускается в безопасном режиме (Safe Mode)».

 

Понадобилось загрузится в безопасном режиме на Windows 10, но сделать это оказалось не тривиальной задачей. В Windows XP и Windows 7 можно было нажать клавишу F8 при запуске, чтобы получить доступ к опции загрузки в безопасном режиме. Но в Windows 10 не получится просто нажать F8, когда ваш компьютер загружается, чтобы увидеть расширенные параметры запуска, такие как безопасный режим и т.д.

 

Механика загрузки в безопасном режиме изменилась в Windows 10. Рассмотрим различные способы загрузки в безопасном режиме в Windows 10.

 

Использование утилиты настройки системы (msconfig)

Если Windows может запускаться в обычном режиме, то можно получить доступ к безопасному режиму загрузки из опций конфигурации системы. Запускаем утилиту конфигурации системы, нажав Win + R, при запуске введите msconfig и нажмите клавишу ввода.

 

В окне «Конфигурация системы», щелкните вкладку загрузки и выберите безопасную загрузку:

 

При написании скрипта на PHP, понадобилось использовать PDO подключение к MS SQL Server.

 

Решается все довольно просто, установкой драйвера PDO_DBLIB, который реализует доступ к базам данных Microsoft SQL Server с использованием библиотеки FreeTDS.

 

Все ниже действия производились на Debian 9 Stretch, с установленной версией PHP 7.2. Как установить PHP 7.2 на Debian 9 Stretch, можно посмотреть из этой статьи.

 

Устанавливаем необходимый модуль:

apt-get install php7.2-sybase

 

В установленных модулях PHP, установленный драйвер будет именоваться pdo_dblib. Для подключения к базе данных MSSQL, нужно использовать dblib, пример:

$dbh = new PDO ("dblib:host=sever;dbname=dbname","username","password");

При переходе на использование Debian 9 Stretch, обнаружил что имена сетевых интерфейсов имеют странный вид, вместо привычных eth0.. я вижу ens32:

ip a

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: ens32: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:50:56:92:95:88 brd ff:ff:ff:ff:ff:ff
    inet 10.10.16.22/8 brd 10.255.255.255 scope global ens32
       valid_lft forever preferred_lft forever
    inet6 fe80::250:56ff:fe92:9588/64 scope link
       valid_lft forever preferred_lft forever

 

Как оказалось что в Debian 9 Stretch ввели новый стандарт схемы именования сетевых интерфейсов. Новый метод использует предоставляемый BIOS указатель номеров, а затем пытается использовать номера слотов PCI-карт, что приводит к созданию имён вида ens0 или enp1s1 (ethernet), а также wlp3s0 (wlan).

Довольно часто приходится разворачивать серверные системы на базе ОС семейства Debian и одним из основных и первоначальных пунктов в настройке системы, является настройка ее сетевой части.

 

Рассмотрим как настраивать сеть в Debian 9 Stretch. Настройка сети выполняется в файле /etc/network/interfaces, по-умолчанию в нем сетевые интерфейсы настроены на работу с DHCP:

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

source /etc/network/interfaces.d/*

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
auto ens32
iface ens32 inet dhcp

[stextbox id=’warning’]где lo — локальный интерфейс (присваиваем локальный адрес 127.0.0.1), а ens32 — это сетевой интерфейс (присваивается сетевой адрес по протоколу DHCP).[/stextbox]

Продолжаем рассматривать способы защиты веб-сервера, от потенциальных угроз. На этот раз рассмотрим такой инструмент как Fail2ban.

 

Принцип работы Fail2ban, заключается в анализе лог-файлов и реагировании на определенные события которые определены в настройках Fail2ban.

 

Рассмотрим как установить Fail2ban и настроить на защиту веб-сервера (Apache), развернутом на Debian 9 Stretch.

 

Устанавливаем пакет fail2ban:

apt-get install fail2ban -y

 

Конфигурационный файл настройки правил /etc/fail2ban/jail.conf, разработчики не рекомендуют изменять, поэтому создадим его локальную копию, из которого будут в приоритете считываться правила:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Давно у меня зрела идея, создания какого либо удобного инструмента для получения различного рода информации с имеющегося в работе почтового сервера, на базе MS Exchange 2010 SP3.

 

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

 

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

 

По итогу прошедшей  недели разработки, у меня уже готова базовая основа проекта, реализованы некоторые механизмы, на которых остановимся по подробней немного.

 

Приложение для связи с почтовым сервером и получения от него какой либо информации от него, используется оболочка powershell. Полученная информация обрабатывается и формируется в табличном виде, для возможности дальнейшей работы с ней (тут можно уже фантазировать над всевозможным функционалом).

Используя в работе голый Asterisk, рано или поздно становится недостаточно стандартных инструментов, для решения нужных задач. В этом случае нам поможет интерфейс AGI, который позволяет Asterisk взаимодействовать со сторонними приложениями, к примеру с приложением написанным на PHP.

 

Рассмотрим как настроить взаимодействие Asterisk с классом phpagi, посредством интерфейса AGI (Asterisk Gateway Interface).

[stextbox id=’info’]Все ниже действия будут производится на Debian 8 JessieAsterisk 13 и версией PHP — 5.6. Хочу обратить внимание что ниже описанное так же будет применимо к FreePBX[/stextbox]

 

Настройка Asterisk

Для подключения класса phpagi, в конфигурационный файл (/etc/asterisk/manager.conf), добавляем параметры подключения его (прим. astphp):

Рассмотрим такую технологию как BLF (Busy Lamp Field) — индикатор занятости линии.

 

Имея телефонный аппарат с поддержкой функции BLF (Busy Lamp Field) и развернутый Asterisk 13, можно реализовать функцию контроля абонентов в реальном времени (занят/свободен) и быстрый вызов абонента, нажатием одной клавиши на телефонном аппарате.

 

Выполним настройку поддержки функции BFL в АТС Asterisk 13.

 

В файле описания плана набора extentions.conf, добавим правило обработки BFL:

; Busy Lamp Functionality
[BLF]
exten => _XXXX,hint,SIP/${EXTEN}

Правила для входящих писем в MS Outlook помогают пользователям организовывать свои почтовые ящики. Обычно пользователи сами для себя создают необходимые правила обработки входящей почты, через приложение MS Outlook, но! системный администратор может так же управлять правилами обработки почты, в пользовательских почтовых ящиках.