SCROLL

Работая с Linux системами, иногда возникает необходимость запрета обновления какого либо пакета.

 

Чаще всего это необходимо если развернут какой либо сервис, который требует определенной версии того или иного пакета, в этом случае можно легко запретить его обновление и так же легко разрешить его обновление.

 

Рассмотрим несколько способов, реализации запрета на обновления пакета, в ОС Debian 8 Jessie.

 

Запрет используя dpkg

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

sudo echo 'имя_пакета hold' | sudo dpkg --set-selections

 

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

sudo echo 'имя_пакета install' | sudo dpkg --set-selections

 

Чтобы посмотреть все статус пакетов в системе, выполняем команду:

sudo dpkg --get-selections | grep 'имя_пакета'

При создании виртуальных дисков Thin Provision (Тонкие), их заданный размер фактически не занимает место в файловой системе, а постепенно разрастается по мере записи файлов на диск. Если освободить место на таких дисках, путем удаления файлов на них, то размер виртуального диска останется прежним, он сам по себе не сожмется.

 

[dropshadowbox align=»none» effect=»vertical-curve-both» width=»auto» height=»» background_color=»#ffffff» border_width=»1″ border_color=»#dddddd» ]Например, если выделить виртуальному диску 20Gb, его размер в хранилище данных начнется с нуля и будет расти по мере записи файлов на диск до 20Gb. Если скопировать файл размером 5Gb на диск, то виртуальный диск вырастет на 5Gb в хранилище данных. Однако, если удалить файл размером 5Gb, то виртуальный диск не сжимается в хранилище данных, он остается на уровне 5Gb.[/dropshadowbox]

 

Стандартного средства сжатия Thin Provision дисков в ESXi нет, поэтому разберем как можно сжать виртуальный диск в ручном режиме.

Для конвертации виртуального диска будем использовать инструмент VBoxManage.exe, который поставляется с VirtualBox. Конвертация виртуального диска в другой формат, делается путем клонирования исходного виртуального диска с указание нового формата.

 

Запускаем командную строку (с правами администратора), выполняем команду:

C:\Program Files\Oracle\VirtualBox\VBoxManage.exe clonehd --format vmdk d:\disk1test.vhd d:\disk1test.vmdk
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'vmdk'. UUID: 960033d8-5afb-45c6-b1d4-6fc13ce891eb

[stextbox id=’info’]ИНФОРМАЦИЯ. Путь C:\Program Files\Oracle\VirtualBox\VBoxManage.exe, может отличатся в зависимости от того, куда был установлен VirtualBox.[/stextbox]

Разберем как увеличить размер виртуального диска, виртуальной машины VirtualBox.

 

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

 

Иногда сталкиваешься с такой проблемой, когда на виртуальной машине, которая развернута на VMware ESXi 5.5, на одном из дисков не достаточно свободного места и необходимо его увеличить. Виртуальные жесткие диски бывают двух типов:

Thick (Толстый)

  • Lazy Zeroed — Все пространство такого диска выделяется в момент создания, при этом блоки не очищаются от данных, которые находились там ранее. При первом обращении виртуальной машины к новому блоку происходит его очистка. Таким образом, эти диски более безопасны, однако при первом обращении к блоку — теряется производительность системы ввода-вывода на операцию очистки. При последующих обращениях — производительность идентична дискам типа Eager zeroed thick. Этот тип диска создается по умолчанию через VMware vSphere Client для виртуальных машин. Преимущество дисков Zeroed thick disks — безопасность и быстрота создания, недостаток — производительность при первом обращении к блоку.
  • Eager Zeroed — Все пространство такого диска выделяется в момент создания, при этом блоки очищаются от данных, которые находились там ранее. Далее происходит обычная работа с блоками без очистки. Преимущество такого диска — производительность и безопасность, недостаток — долгое время создания.

Thin (Тонкий)

  • Эти диски создаются минимального размера и растут по мере их наполнения данными до выделенного объема. При выделении нового блока — он предварительно очищается. Эти диски наименее производительны (выделение нового блока и его очистка), однако наиболее оптимальны для экономии дискового пространства на системе хранения данных.

Рассмотрим способы расширения дискового пространства для обоих типов дисков.

[stextbox id=’alert’]Ниже описанные методы увеличения диска, подразумевают отсутствие снепшотов дисков, т.к. при их наличии не гарантируется корректная работа виртуального диска после процедуры увеличения. Все ниже описанные методы выполняются на выключенной виртуальной машине.[/stextbox]

 

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

 

Задача скрипта:

  • В заданных каталогах производить поиск файлов подходящих по критерий давности
  • Дополнительная функция поиска файлов по заданной маске
  • Удалять найденные файлы
  • Выполнять чистку пустых каталогов, если таковые образовались после удаления старых файлов.

Ниже представлен листинг получившегося у меня скрипта. Скрипт с комментариями, разобраться в нем не должно составить труда.

 

[stextbox id=’warning’]По-умолчанию в PowerShell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет в той же командной строке выполнить скрипт с командами PowerShell.

 

Разрешить выполнение скриптов в Powershell:
powershell -Command Set-ExecutionPolicy RemoteSigned[/stextbox]

 

Разберем как автоматизировать процесс создания бекапов серверных систем, применимый к Windows Server 2008 R2, 2012 R2. Делать бекапы мы будем с помощью скрипта для PowerShell.

 

По-умолчанию в PowerShell включена максимальная политика безопасности, которая позволяет выполнять команды PowerShell в командной строке, но не позволяет в той же командной строке выполнить скрипт с командами PowerShell. Разрешим выполнение скриптов в Powershell, выполним команду в CMD или в PowerShell:

powershell -Command Set-ExecutionPolicy RemoteSigned

 

Выполнять бекап системы мы будем средствами системы, с помощью оснастки Windows Server Backup. Поэтому если данная оснастка не добавлена в систему, добавляем ее и так же добавляем инструменты командной строки (Command-line Tools) для работы с Windows Server Backup через командную строку.

Данная статья будет мне памяткой, как добавлять пользователей, изменять, удалять пользователей в консольном режиме Debian 8 Jessie.

 

Добавление пользователя

Пользователь создается командой useradd:

sudo useradd username

 

Полезные ключи используемые при создании пользователя:

-m (--create-home) Создать домашний каталог. По-умолчанию домашний каталог не создается.
-M (--no-create-home) Не создавать домашний каталог.
-d (--home-dir HOME_DIR) Указать расположение домашнего каталога.
-N (--no-user-group) Не создавать группу с таким же именем, как имя пользователя.
-g (--gid GROUP) Название или ID первичной группы пользователя.
-G (--groups GROUPS) Указать список дополнительных групп для пользователя.
-p (--password PASSWORD) Задание пароль пользователя.
-s (--shell SHELL) Указание оболочки пользователя (прим. /bin/bash). По-умолчанию /bin/sh.
-c (--comment COMMENT) Добавить комментарий к пользователю.

 

Изменение пользователя

Изменить пользователя можно командой usermod (прим. добавление пользователя в группу):

sudo usermod -a -G www-data jakonda

 

Изменить пароль пользователю можно при помощи утилиты passwd:

sudo passwd jakonda

Иногда все мы сталкиваемся с ситуацией передачи файлов с сервера, на сервер. Легко, удобно и безопасно это делать через ssh.

 

В Linux системах в состав пакета openssh входит утилита scp, а в Windows есть аналогичная утилита pscpкоторая входит в состав пакета инструментов PuTTY.

 

 

Пример использования SCP на Linux системах

Скачать файл с удаленного сервера на локальный:

scp root@192.168.1.10:/root/file.tar.gz /opt
scp -P 22 root@192.168.1.10:/root/file.tar.gz /opt

[stextbox id=’info’]В командах выше мы указали cкачать файл file.tar.gz находящийся в директории /root на удаленном сервере под пользователем root с IP адресом 192.168.1.10 в папку /opt. И вариант скачивания с указанием порта ssh, в случае, если на сервере изменен стандартный порт ssh.[/stextbox]

 

Загрузить файл на удаленный сервер:

scp file.tar.gz root@192.168.1.10:/root
scp -P 22 file.tar.gz root@192.168.1.10:/root

[stextbox id=’info’]В командах выше мы указали закачать файл file.tar.gz находящийся в текущей директории на удаленный сервер под пользователем root с IP адресом 192.168.1.10 в папку /root. И вариант загрузки с указанием порта ssh. Это необходимо в случае, если на сервере изменен стандартный порт ssh.[/stextbox]

 

 

Пример использования PSCP на Windows системах

Запускаем командную строку и переходим в папку, где находится программа pscp.exe и копируемый файл.

 

Скачать файл на локальную сервер:

pscp.exe root@192.168.1.10:/home/user/file.tar.gz .
pscp.exe -P 22 root@192.168.1.10:/home/user/file.tar.gz .

[stextbox id=’info’]В командах выше мы указали cкачать файл file.tar.gz находящийся в директории /root на удаленном сервере под пользователем root с IP адресом 192.168.1.10 в папку /opt. И вариант скачивания с указанием порта ssh, в случае, если на сервере изменен стандартный порт ssh.[/stextbox]

 

Загрузить файл на удаленный сервер:

pscp.exe file.tar.gz root@192.168.1.10:/root
pscp.exe -P 22 file.tar.gz root@192.168.1.10:/root

[stextbox id=’info’]В командах выше мы указали закачать файл file.tar.gz находящийся в текущей директории на удаленный сервер под пользователем root с IP адресом 192.168.1.10 в папку /root. И вариант загрузки с указанием порта ssh. Это необходимо в случае, если на сервере изменен стандартный порт ssh.[/stextbox]

 

Вот так легко можно скачать или загрузить на сервер файл.

Разберем как делать резервные копии имеющихся Subversion (SVN) репозиториев в Linux среде. Все ниже описанное производилось на Debian 8 Jessie.

 

Резервное копирование репозитория

Создаем резервную копию указанного репозитория:

sudo svnadmin dump /path/to/repository > svnexport.dump

 

Создаем резервную копию указанного репозитория и сжимаем его:

sudo svnadmin dump /path/to/repository | gzip > svnexport.dump.gz

 

Резервное копирование все репозиториев (bash скриптом)

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

#!/bin/bash
# 06/01/2018 Jakonda (http://jakondo.ru)

# Резервное копирование репозиториев (SVN)

PATH_REPO="/var/svn/"
LOCAL_DIR="/srv/backups/svn"

EXPIRATION_DAYS=28
DATE=$(date +"%y_%m_%d")

# Создаем каталог для размещения бекапов, если он не создан
if ! [ -d $LOCAL_DIR ]; then
mkdir $LOCAL_DIR
fi

# Создаем каталог с текущей датой
mkdir -p $LOCAL_DIR/$DATE

# Создание дампа всех репозиториев
cd $PATH_REPO
for REPO in *; do
 test -d "$REPO" && /usr/bin/svnadmin dump $REPO | gzip > $LOCAL_DIR/$DATE/$REPO.dump.gz
done

# Удаление старых резервных копий
find $LOCAL_DIR* -mtime +${EXPIRATION_DAYS} -exec rm {} \;
# Удаление пустых каталогов
find $LOCAL_DIR* -type d -empty -exec rmdir {} \;

 

Рассмотрим практический перенос почтового сервера на базе MS Exchange 2010 SP3, с одного сервера (Windows Small Business Server 2011) на другой (Windows Server 2012 R2).

 

Исходные данные:

  • Windows Small Business Server 2011 (OLD_MAIL) + MS Exchange 2010 SP2 (Mailbox Role, Client Access Role, Hub Trunsport Role)
  • Windows Server 2012 R2 (NEW_MAIL)

 

План переноса:

  1. Установка MS Exchange 2010 SP3 с ролями (Mailbox Role, Client Access Role, Hub Trunsport Role) на Windows Server 2012 R2 (NEW_MAIL)
  2. Создание базы данных на сервере NEW_MAIL, подключение ее.
  3. Перенос почтовых ящиков в базу данных на сервер NEW_MAIL из базы данных с сервера OLD_MAIL.
  4. Перенос общих папок (Public Folders), выполнение репликации с сервера OLD_MAIL на NEW_MAIL.
  5. Перенос системных почтовых ящиков
  6. Перенастраиваем всех коннекторы отправки/получения, OWA и т.д. на NEW_MAIL
  7. Вывод из эксплуатации (удаление) старого сервера (OLD_MAIL).

Рассмотрим как сбросить забытый/утерянный пароль от root в MySQL. Рассмотрим варианты сброса пароля под Windows и Unix системах.

 

Сброс Root пароля: Windows

# Все ниже действия должны производится в командной строке запущенной от Администратора.

 

Останавливаем службу MySQL:

net stop mysql

 

Запускаем MySQL сервер с отключенными таблицами безопасности (Правильно указываем путь установки MySQL):

"C:\Program Files\MySQL\bin\mysqld-nt.exe" --skip-grant-tables

 

Открываем ещё одну командную строку и заходим в MySQL под root без пароля:

mysql -uroot

 

Выбираем базу mysql, меняем пароль от root, сбрасываем привилегии:

USE mysql
UPDATE user SET Password=PASSWORD('password') WHERE User=’root’;
FLUSH PRIVILEGES;
QUIT

 

Закрываем первую командную строку и запускаем службу MySQL:

net start mysql

 

Пробуем авторизоваться под root с новым паролем.

По умолчанию, Firewall роутеров Mikrotik разрешает все подключения. Поэтому целесообразно обезопасить роутер и локальную сеть от несанкционированного доступа из интернета. В качестве примера будет рассмотрена основная/базовая настройка Firewall.

 

Исходные данные:

  • Локальная сеть — 10.5.5.0/24
  • Интернет (Bridge соединение) — Ethernet

 

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

 

Определения назначения основных цепочек
  • Цепочка INPUT — Действия с пакетами, которые направляются в роутер. То есть адресованы именно на адрес роутера и дальше не пойдут.
  • Цепочка FORWARD — Действия с пакетами, проходящими через роутер. То есть пакеты посылаются какому-то адресату от какого-то адресата и через роутер проходят по пути следования. Например, когда ваш локальный компьютер хочет открыть какой либо сайт.
  • Цепочка OUTPUT — Действия с пакетами, источником которых является сам роутер.

Разберем как выполнить установку Asterisk 13 в связке с FreePBX 13 и с поддержкой протокола SCCP на Debian 8 Jessie/Ubuntu 14.04 Trusty Tahr.

 

Переходим в режим работы под root:

sudo su

 

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

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

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

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

apt-get install -y build-essential linux-headers-`uname -r` openssh-server apache2 mysql-server mysql-client bison flex php5 php5-curl php5-cli php5-mysql php-pear php5-gd curl sox libncurses5-dev libssl-dev libmysqlclient-dev mpg123 libxml2-dev libnewt-dev sqlite3 libsqlite3-dev pkg-config automake libtool autoconf git unixodbc-dev uuid uuid-dev libasound2-dev libogg-dev libvorbis-dev libcurl4-openssl-dev libical-dev libneon27-dev libsrtp0-dev libspandsp-dev libmyodbc -y

Перезагружаем систему:

reboot

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

Для частого подключения по ssh, можно настроить прозрачное подключение, используя ключи шифрования.

 

Данный метод подключения, не только избавит от постоянного ввода паролей при подключении по ssh, но и сделает подключения более безопасным. При прозрачном подключении никто не сможет войти на сервер не обладая приватным ключом и кодовой фразой если она задана.

 

Генерация SSH ключей в Linux системах

Генерация ключей производится с помощью утилиты ssh-keygen, входящую в состав пакета OpenSSH.

 

Для генерации DSA-ключей (длина ключа всегда — 1024 бита), выполняем команду:

ssh-keygen -t dsa

На выходе в каталоге ~/.ssh/ получаем файлы: id_dsa, id_dsa.pub.


 

Для генерации RSA-ключей (длина ключа по-умолчанию — 2048 бит):

ssh-keygen -t rsa

На выходе в каталоге ~/.ssh/получаем файлы: id_rsa, id_rsa.pub.

 

id_rsa секретный ключ (остаётся у клиента)
id_rsa.pub открытый ключ (передается на хосты к которым будем подключатся)

Наткнулся недавно на такую замечательную программу Festival. Данная утилита является синтезатором речи, а именно с помощью нее можно заставить ваш ПК читать тексты, записывать прочтенный текст в звуковой файл. Мне показалась данная программа интересной и я решил разобрать как установить ее на Ubuntu 14.04 Trusty Tahr.

 

Собирать я решил из исходников и последнюю версию на данный момент 2.4. В репозиториях Ubuntu 14.04 Trusty Tahr находится версия 2.1. Так же разобрал как заставить Festival говорить по-русски.

 

Создаем временный каталог, куда будем скачивать необходимые файлы для сборки Festival

sudo mkdir /usr/src/temp

Переходим в созданный каталог

cd /usr/src/temp

Скачиваем архивы сборки Festival

sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/speech_tools-2.4-release.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festival-2.4-release.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_CMU.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_OALD.tar.gz
sudo wget http://jakondo.ru/wp-content/uploads/file-manager/Festival/festlex_POSLEX.tar.gz

Распаковываем скачанные архивы

sudo tar -zxvf speech_tools-2.4-release.tar.gz -C /usr/src/
sudo tar -zxvf festival-2.4-release.tar.gz -C /usr/src/
sudo tar -xvf festlex_CMU.tar.gz -C /usr/src/
sudo tar -xvf festlex_OALD.tar.gz -C /usr/src/
sudo tar -xvf festlex_POSLEX.tar.gz -C /usr/src/

Разберем как настраивать систему оповещений в Zabbix. По-умолчанию в системе Zabbix, предусмотрено несколько видов оповещения событий, это Email, Jabber, SMS.

 

Рассмотрим как настроить Email оповещения. Заходим на Zabbix-сервер и переходим Администрирование (Administration) — Способы оповещений (Media types). Нажимаем на Email.

 

Рассмотрим как установить и настроить Zabbix-агенты для наблюдения за системами ОС Windows и Linux. По данной статье у меня развернут Zabbix-сервер 3.2.5, соответственно все агенты будут устанавливаться версии 3.2.

 

Установка Zabbix-агента на ОС Windows

Скачиваем с оф. сайта Zabbix-агента для Windows систем.

Разберем как установить систему мониторинга Zabbix 3.5 на Debian 8 Jessie/Ubuntu Server 14.04 LTS.

 

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

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

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

 

Устанавливаем LAMP (Linux-Apache-MySQL-PHP), как установить LAMP-стек, можно посмотреть в этой статье

 

Установка Zabbix

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

wget https://repo.zabbix.com/zabbix/3.5/debian/pool/main/z/zabbix-release/zabbix-release_3.5-1+jessie_all.deb

sudo dpkg -i zabbix-release_3.5-1+jessie_all.deb

sudo apt-get update

Рассмотрим как расчитывать различные hash-суммы (MD5, SHA1, SHA256, SHA384, SHA512, CRC) в среде Linux. Hash-суммы обычно служат для проверки сохранности файлов, а так же для шифрования паролей.

 

Синтаксис для расчета hash-суммы файла:

[алгоритм] [путь к файлу, который нужно рассчитать]

 

Примеры:

md5sum test.iso
sha1sum test.iso
sha256sum test.iso
sha384sum test.iso
sha512sum test.iso
cksum test.iso