SCROLL

Статьи в категории «Linux»

Иногда все мы сталкиваемся с ситуацией передачи файлов с сервера, на сервер. Легко, удобно и безопасно это делать через 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]

 

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

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

Разберем как выполнить установку 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, но и сделает подключения более безопасным.

Наткнулся недавно на такую замечательную программу 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 систем.

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

Недавно появилась необходимость в написании bash скрипта, по автоматизации процесса создания резервной копии CRM vTiger системы.  CRM система развернута на CentOS 5.10 (Final) и соответственно скрипт будет писаться на этой же системе.  Написанный скрипт я для удобства расписал комментариями, поэтому если что по прошествии времени разобраться в нем не составит труда.

 

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

  1. Делать резервную копию базы данных mysql. По-умолчанию база данных называется vtigercrm521.
  2. Делать резервную копию каталога html CRM системы.
  3. Размещение резервной копии в указанном хранилище.
  4. Логирование работы скрипта.

 

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

 

Скрипт предусматривает два варианта на выбор, в каком месте размещать резервную копию.

  • Локальное хранилище — размещать резервную копию на той же машине, где и развернута CRM система.
  • Сетевое хранилище — размещение резервной копии на сетевом ресурсе.

 

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

При работе в Linux системах постоянно сталкиваешься с архивами, наиболее распространенный архиватор, используемый в Linux-системах является tar. Сам по себе архиватор tar не умеет сжимать файлы, а может лишь объединить несколько файлов в один, а вот далее чтобы сжать, приходят на помощь наиболее распространенные gzip или bzip2.

 

Создание архива

Синтаксис для создания архива tar:

tar [-ключи] [название архива] [путь, что запаковать]

Если необходимо использовать архиватор tar совместно к примеру с одним из самым популярным архиватором gzip или bzip2, то нужно добавить ключи -z и -j.

Пример использования команды tar:

tar -cvf file.tar /full/path 
tar -czvf file.tar.gz /full/path 
tar -cjvf file.tar.bz2 /full/path

Понадобилось на работе организовать корпоративную адресную книгу, простую в содержании, легко редактируемую и чтобы ее можно было использовать в почтовых клиентах пользователей (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

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

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

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

Развернув 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-сервер используя логин и пароль виртуального пользователя.

Для обеспечения большей безопасности FTP-сервера vsftpd, запретим пользователям доступ к shell (/bin/false).

 

Создаем пользователя без доступа к shell (/bin/false):

sudo useradd username -b /home -m -s /bin/false

 

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

sudo passwd username

[stextbox id=’info’]ИНФОРМАЦИЯ. Если необходимо отключить доступ к shell уже существующему пользователю, то в файле /etc/passwd в нужном пользователе меняем /bin/bash на /bin/false.[/stextbox]

 

 

По-умолчанию vsftpd настроен так что доступ к нему могут получить пользователи у которых включен shell, а пользователи у которых отключен shell не смогут авторизоваться на FTP-сервере.

 

Для того чтобы vsftpd авторизовал пользователя с отключенным shell необходимо в файле /etc/pam.d/vsftpd закоментировать строку auth required pam_shells.so и перезапустить службу vsftpd.

sudo service vsftpd restart

В этой статье описано как установить и настроить FTP-сервер vsftpd. Рассмотрим как организовать на vsftpd подключения пользователей с использованием SSL-шифрования.

 

Создаем самоподписной SSL-сертификат для vsftp (В процессе создания сертификата, нужно будет ответить на ряд формальных вопросов):

sudo openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.key -out /etc/ssl/private/vsftpd.crt

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

 

В конфигурационном файле /etc/vsftpd.conf указываем путь к сертификату и его закрытому ключу:

rsa_cert_file=/etc/ssl/private/vsftpd.pem
rsa_private_key_file=/etc/ssl/private/vsftpd.pem

 

Так же указываем параметры SSL Приводим следующие параметры к виду:

ssl_enable=YES
ssl_sslv2=NO
ssl_sslv3=NO
ssl_tlsv1=YES
allow_anon_ssl=NO
force_local_data_ssl=YES
force_local_logins_ssl=YES
ssl_ciphers=DES-CBC3-SHA
require_ssl_reuse=NO

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

allow_anon_ssl Если установлена в YES, анонимные пользователи могут использовать защищенное SSL соединение.
force_local_data_ssl Если установлена в YES, все не анонимные логины вынуждены использовать защищенные SSL соединения при передаче и получении данных, при соединении.
force_local_logins_ssl Если она активирована, все не анонимные логины вынуждены использовать защищенные SSL соединения при передаче паролей.
ssl_ciphers Задается допустимые методы шифрования.
require_ssl_reuse Многократное использование одной сессии.

Разберем как установить и настроить FTP-сервер VSFTPD на на Debian 8 Jessie.

 

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

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

 

Установка и настройка

Устанавливаем vsftpd:

sudo apt-get install vsftpd

 

Настройка vsftpd производится через конфигурационный файл /etc/vsftpd.conf.

 

Конфигурация FTP-сервера, для работы с анонимными пользователями:

listen=YES
anonymous_enable=YES
anon_root=/srv/ftp
use_localtime=YES
connect_from_port_20=YES
dirmessage_enable=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log

 

Создаем ftp каталог который указали в файле конфигурации vsftpd и задаем права доступа:

mkdir -p /srv/ftp

chown nobody:nogroup /srv/
chmod 775 /srv
chmod 777 /srv/ftp

 

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

sudo /etc/init.d/vsftpd restart

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

 

Звуковые файлы Asterisk, располагаются — /var/lib/asterisk/sounds.

 

Скачиваем русские голосовые оповещения:

wget http://jakondo.ru/wp-content/uploads/file-manager/Asterisk/asterisk-core-sounds-ru-alaw-current.tar.gz

Создаем каталог для их размещения и распаковываем:

mkdir -P /var/lib/asterisk/sounds/ru
tar -zxvf asterisk-core-sounds-ru-alaw-current.tar.gz -C /var/lib/asterisk/sounds/ru