воскресенье, 28 мая 2017 г.

Монтирования ftp директорий.

Документ без названия

Для монтирования удалённых ftp директорий будем использовать curlftpfs:

sudo aptitude install curlftpfs

И снова чтобы смонтировать достаточно одной команды:

sudo curlftpfs -o user="username:password",allow_other ftp://ftp.site.com /mnt/ftp

После -o указываются необходимые параметры. Параметр allow_other позволяет просматривать директорию не только супер пользователю. Параметр user отвечает за имя пользователя\пароль, и дальше указывается директория в которую монтируем.

Этот способ не лишён недостатков в вопросе безопасности. В частности, если посмотреть список процессов через ps -aux, то будет видно логин и пароль, поэтому можно немного обезопасить себя. Для этого, в домашней директории надо создать файл .netrc с примерно таким содержанием:

machine ftp.host.com
login ftpuser
password ftppassword

Параметры надо изменить на свои, и разрешить чтение и запись файла только текущему пользователю:

chmod 600 ~/.netrc

Один из способов добавить монтирование в автозагрузку.

sudo nano /etc/rc.local

sudo curlftpfs -o user="user:password",allow_other ftp://address /mnt/ftp

пятница, 26 мая 2017 г.

Redmine - установка и настройка.

Документ без названия

1. Обновление системы.

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

2. Создаем пользователя для Redmine, для этого открываем консоль и вводим команду:

sudo adduser --system --shell /bin/bash --gecos 'Redmine Administrator' --group --disabled-password --home /opt/redmine redmine

3. sudo visudo

4. Добавляем следующие строки

# temp - *REMOVE* after installation
redmine ALL=(ALL) NOPASSWD:ALL

Обратите внимание, что пользователь Redmine будет иметь возможность запускать команды root, но это только для упрощения последующих шагов. Удалите эту строку после установки.

5. Авторизируемся пользователем redmine и установим для него rvm:

sudo su - redmine
gpg --keyserver hkp://pgp.mit.edu --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3
curl -sSL https://get.rvm.io | bash -s stable
exit

6. Разлогинились, теперь снова логинимся и устанавливаем ruby:

sudo su - redmine
rvm install 2.2.4
exit

7. Redmine

sudo su - redmine
wget http://www.redmine.org/releases/redmine-3.3.3.tar.gz
tar zxf redmine-3.3.3.tar.gz
rm redmine-3.3.3.tar.gz
ln -s /opt/redmine/redmine-3.3.3 redmine
exit

8.MySQL

sudo apt-get install mysql-server libmysqlclient-dev

9. Создаем базу данных и пользователя для нее:

sudo mysql -u root -p

CREATE DATABASE redmine character SET utf8;
CREATE user 'redmine'@'localhost' IDENTIFIED BY 'my_password'; #пароль: QAZ123
GRANT ALL privileges ON redmine.* TO 'redmine'@'localhost';
exit

10. Сконфигурируем подключение к базе данных:

sudo su - redmine
cp redmine/config/database.yml.example redmine/config/database.yml

11. Редактируем конфиг Redmine для соединения с БД:

sudo nano redmine/config/database.yml

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

production:
adapter: mysql2
database: redmine
host: localhost
username: redmine
password: my_password
encoding: utf8

12. Инициализация Redmine

sudo apt-get install libmagickcore-dev libmagickwand-dev libmysqlclient-dev

gem install bundler
cd redmine/
bundle install --without development test postgresql sqlite
rake generate_secret_token
RAILS_ENV=production rake db:migrate
RAILS_ENV=production redmine:load_default_data
exit

Если видим ошибку при выполнении команды rake generate_secret_token:
То открываем файл зависимостей на редактирование:

nano /opt/redmine/redmine/Gemfile.lock

Находим в нем строку с htmlentities 4.3.1 и заменяем на 4.3.4

Если встречаем ошибку:

redmine@nout:~/redmine$ rake generate_secret_token
[DEPRECATION] `last_comment` is deprecated. Please use `last_description` instead.

Находим в /opt/redmine/redmine/Gemfile.lock, rake 11.1.2 (в моем случае) и заменяем на 10.4.2)

Установка Phusion Passenger

13. Добавление репозитория:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 561F9B9CAC40B2F7
sudo apt-get install apt-transport-https ca-certificates

14. Открываем конфиг файл репозитория:

sudo nano /etc/apt/sources.list.d/passenger.list

15.Добавляем в /etc/apt/sources.list.d/passenger.list адрес репозитория:

deb https://oss-binaries.phusionpassenger.com/apt/passenger trusty main

16. Прописываем пользователя и права доступа к файлу:

sudo chown root: /etc/apt/sources.list.d/passenger.list
sudo chmod 600 /etc/apt/sources.list.d/passenger.list

17. Устанавливаем сам Phusion Passenger:

sudo apt-get update
sudo apt-get install libapache2-mod-passenger

18. Apache

sudo apt-get install apache2

19. Конфигурируем Passenger:

sudo nano /etc/apache2/sites-available/000-default.conf

20. Добавляем следующий блок в конфиг файл:

<Directory /var/www/html/redmine>
RailsBaseURI /redmine
PassengerResolveSymlinksInDocumentRoot on
</Directory>

21. Включаем passenger, добавляем ссылку на redmine и перезапускаем apache2:

sudo a2enmod passenger
sudo ln -s /opt/redmine/redmine/public/ /var/www/html/redmine
sudo service apache2 restart

22. Генерируем новый секретный ключ, подчищаем сессии и кеш:

sudo su - redmine
cd redmine
rake generate_secret_token
rake db:migrate RAILS_ENV=production
rake redmine:plugins:migrate RAILS_ENV=production
rake tmp:cache:clear
rake tmp:sessions:clear
exit

пятница, 19 мая 2017 г.

Настройка Samba в Ubuntu 16.04

Документ без названия Документ без названия 1. Установка Samba Ubuntu вместе со всеми необходимыми компонентами выполняется командой:

apt-get install -y samba samba-common python-glade2 system-config-samba

2. Когда все будет установлено, можно переходить к настройке.
Сначала создайте резервную копию оригинального файла конфигурации Samba:

mv /etc/samba/smb.conf /etc/samba/smb.conf.bak

3. После создания резервной копии, создайте свой файл конфигурации, этой командой:

nano /etc/samba/smb.conf

Сначала укажем глобальные настройки файлового сервера. Для этого вставьте в файл такие строки:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = smb
security = user
map to guest = bad user
name resolve order = bcast host
wins support = no
dns proxy = no

Рассмотрим подробнее что значат эти строки.
workgroup - рабочая группа, как уже говорилось должна одинакова на всех машинах
netbios name - имя компьютера, которое будет отображаться в Windows
security - по умолчанию выполнять аутентификацию на уровне пользователя
name resolve order - очередность разрешения IP адресов по NetBIOS имени. bcast - означает отправить в локальную сеть широковещательный запрос. Если все компьютеры между которыми планируется взаимодействие находятся в одной сети этот вариант оптимальный.
Когда завершите создание конфигурационного файла, переходим к вопросу как расшарить папку Ubuntu для Windows.
Общий доступ к папке Ubuntu

4. Сначала давайте создадим общую папку доступную всем. То есть с анонимным доступом, без авторизации samba.
Создайте папку, к которой будем открывать доступ, например:

mkdir -p /samba/allaccess

5. После того как папка создана, нужно сделать для нее правильные права доступа. Следующие команды разрешают доступ к папке для всех и делают владельцем nobody:

cd /samba
chmod -R 0755 allaccess
chown -R nobody:nogroup allaccess/

6. Следующим шагом будет описать папку allaccess в файле настройки samba:

[allaccess]
path = /samba/allaccess
browsable = yes
writable = yes
guest ok = yes
read only = no

Теперь ваш конфигурационный файл должен выглядеть вот так:

[global]
workgroup = WORKGROUP
server string = Samba Server %v
netbios name = smb
security = user
map to guest = bad user
name resolve order = bcast host
dns proxy = no
#==============
[AllAccess]
path = /samba/allaccess
browsable =yes
writable = yes
guest ok = yes
read only = no

7. Чтобы применить изменения, перезапустите сервер Samba:

service smbd restart

Настройка системы и Samba через Web-интерфейс

8.

wget https://prdownloads.sourceforge.net/webadmin/webmin_1.831_all.deb

9. Для установки webim потребуются некоторые зависимые пакеты:

apt-get install libnet-ssleay-perl libauthen-pam-perl libio-pty-perl apt-show-versions

10. Ну и остается установка:

dpkg --install webmin_1.831_all.deb

Теперь можно заходить в веб-интерфейс по адресу "https://(ip сервера):10000" или "https://(имя сервера):10000":

пятница, 7 апреля 2017 г.

Observium - установка и настройка

Документ без названия

1. Install the packages we need to run Observium (For Ubuntu versions 16.04 and later):

aptitude install libapache2-mod-php5 php5-cli php5-mysql php5-gd php5-snmp php-pear snmp graphviz subversion mysql-server mysql-client rrdtool fping imagemagick whois mtr-tiny nmap ipmitool
apt-get install libvirt-bin

2.

mkdir -p /opt/observium && cd /opt
wget http://www.observium.org/observium-community-latest.tar.gz
tar zxvf observium-community-latest.tar.gz
cd observium
cp config.php.default config.php

3.

mysql -u root -p

CREATE DATABASE observium DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON observium.* TO 'observium'@'localhost' IDENTIFIED BY 'password';

4.

nano config.php

### настройки подключения к БД (из п. 7)
$config['db_host'] = "localhost";
$config['db_user'] = "observium";
$config['db_pass'] = "password";
$config['db_name'] = "observium";

### список сетей для сканирования
$config['nets'][] = "172.22.0.0/16";
$config['nets'][] = "192.168.10.0/24";

5. Setup the MySQL database and insert the default schema:

./discovery.php -u

6. Create the directory Observium will store its logs in:

mkdir logs

7. Создайте каталог для хранения RRDs в и установить правильное владение:

mkdir rrd
chown www-data:www-data rrd

8. Проверка версии apache

apt-cache policy apache2

9. Для версии Apache 2.4

nano /etc/apache2/sites-available/000-default.conf

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /opt/observium/html
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /opt/observium/html/>
DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ServerSignature On
</VirtualHost>

10.

apt-get install php5-mcrypt

11. Включите модуль php mcrypt:

php5enmod mcrypt

12.

a2dismod mpm_event
a2enmod mpm_prefork
a2enmod php5 a2enmod rewrite
apache2ctl restart (/etc/init.d/apache2 restart)

13.

cd /opt/observium

14. Добавляем учетную запись Observium (10 – уровень)

./adduser.php <username> <password> <level>

15. Настройка отправки сообщений на соответствующем сетевом оборудовании

на cisco

snmp-server enable traps
snmp-server community stc RO
snmp-server host 192.168.43.85 v2c

на HP

snmp-server enable
snmp-server community stc manager restricted
snmp-server host 192.168.43.85 all stc

16.

./add_device.php server1 public v2c

17. Добавляем первый хост для мониторинга:

nano /etc/hosts

192.168.1.30 server1

18. След. скрипты необходимы для обзора и запроса данных:

./discovery.php -h all
./poller.php -h all

19. Установка snmp сервера и стандартных mib:

apt-get install snmpd snmp snmptt

20.

nano /etc/apt/sources.listnano /etc/apt/sources.list

deb http://httpredir.debian.org/debian jessie main contrib non-free
deb-src http://httpredir.debian.org/debian jessie main contrib non-free
deb http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb-src http://httpredir.debian.org/debian jessie-updates main contrib non-free
deb http://security.debian.org/ jessie/updates main contrib non-free
deb-src http://security.debian.org/ jessie/updates main contrib non-free

21.

apt-get update
apt-get install snmp-mibs-downloader

22. погрузятся свежие MIB файлы из репозитария

download-mibs

23.

nano /etc/snmp/snmp.conf

mibs :BRIDGE-MIB:Q-BRIDGE-MIB:IP-MIB:IF-MIB
#mibs +ALL - включает поиск по всем MIB файлам

24.

apt-get install python-mysqldb (для /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1)

25. Далее в папке /etc/cron.d/ создаем файл observium с содержимым:

# Run a complete discovery of all devices once every 6 hours
33 */6 * * * root /opt/observium/discovery.php -h all >> /dev/null 2>&1
# Run automated discovery of newly added devices every 5 minutes
*/5 * * * * root /opt/observium/discovery.php -h new >> /dev/null 2>&1
# Run multithreaded poller wrapper every 5 minutes
*/5 * * * * root /opt/observium/poller-wrapper.py 4 >> /dev/null 2>&1
# Run housekeeping script daily for syslog, eventlog and alert log
13 5 * * * root /opt/observium/housekeeping.php -ysel
# Run housekeeping script daily for rrds, ports, orphaned entries in the database and performance data
47 4 * * * root /opt/observium/housekeeping.php -yrptb

*******************************

Смотрим дерево мибов

snmptranslate -Tp

Все параметры, которые можно получить от устройства по протоколу SNMP, можно увидеть с помощью команды:

snmpwalk -c public -v2c 10.0.0.1

где 10.0.0.1 - ip адрес устройства

---------------------

Для того чтоб посмотреть размер всех баз данных выполните команду:

mysql -u root -p

SELECT table_schema "DB Name",
Round(Sum(data_length + index_length) / 1024 / 1024, 1) "DB Size in MB"
FROM information_schema.tables
GROUP BY table_schema;

Loganalyser - установка и настройка

Документ без названия

1. Проверяем работает ли syslog

service syslog status

ответ

rsyslog.service - System Logging Service

2. Основной конфигурационный файл демона rsyslogd

/etc/rsyslog.conf

3. устанавливаем Rsyslog с дополнительными пакетами, которые в дальнейшем будут необходимы:

apt-get install rsyslog rsyslog-mysql mysql-server mysql-client

4.

/etc/rsyslog.d/mysql.conf

$ModLoad ommysql
*.* :ommysql:localhost,Syslog,rsyslog,p@ssw0rD

*.* — запись всех логов в базу
ommysql — модуль, с помощью которого rsyslog будет писать в MySQL
Syslog — имя базы
rsyslog — пользователь, которому предоставлен доступ писать в базу Syslog
p@ssw0rD — пароль пользователя rsyslog

5. Перегружаем rsyslog

service rsyslog restart

6. Проверяем базу:

mysql -u rsyslog -p

show databases;
use Syslog;
show tables;
select * from SystemEvents limit 2 \G

7.

nano /etc/rsyslog.conf

$ModLoad imudp
$UDPServerRun 514
# provides TCP syslog reception (если нужен TCP)
$ModLoad imtcp
$InputTCPServerRun 514

8. Переходим к настройке Loganalyzer. В качестве веб-сервера используем Apache, поэтому установим его и пакеты необходимые для работы LogAnalyzer-а:

apt-get install apache2 libapache2-mod-php5 php5-mysql php5-gd

9. Скачиваем последний Loganalyzer, распаковываем его, ставим необходимые права на конфигурационные скрипты:

mkdir /var/www/loganalyzer  (папка для вэб-сервера)
mkdir /tmp/loganalyzer
cd /tmp/loganalyzer  (скачиваем сюда)
tar zxvf loganalyzer-4.1.5.tar.gz
mv loganalyzer-4.1.5/src/* /var/www/html/loganalyzer
mv loganalyzer-4.1.5/contrib/* /var/www/html/loganalyzer

9.

 

service apache2 restart

10. 

chmod +x /var/www/html/loganalyzer/configure.sh /var/www/html/loganalyzer/secure.sh
chown -R www-data:www-data /var/www/html/loganalyzer

среда, 13 апреля 2016 г.

Розница 2.1.
Испортился файл "1cv8u.pfl", поэтому у Вас создаётся при каждом запуске новое рабочее место.
В Win8, например, он находится по адресу: "C:\Users\<Пользователь>\AppData\Local\1C\1Cv82\1cv8u.pfl".

Вобщем закройте 1С, сделайте, на всякий случай, резервную копию сломанного файла.
Замените содержимое (при помощи блокнота) на: 
Код
{
{""},
{
{"Universal",
{"ClientID",
{"#",fc01b5df-97fe-449b-83d4-218a090e681e,88888888-0000-0000-0000-000000000000},""},
{
{""}
}
},
{""}
}
}


Вместо "88888888-0000-0000-0000-000000000000" можете подставить CLSID нужного рабочего места или оставить как есть, остальное не менять, сохранить. Затем запустить Розницу, выбрать рабочее место с вставленным CLSID'ом, настроить это рабочее место (в т.ч. торговое оборудование). Для порядка, удалить кучу ненужных насозданных рабочих мест. 
Готово.

понедельник, 1 декабря 2014 г.

Скрипт PowerShell, отслеживающий свободное место на диске и удаляющий старые файлы.

Решил освоить PowerShell. Подвернулась подходящая задача - необходимо настроить на сервере очистку жесткого диска в зависимости от свободного места. Будем удалить старые файлы в определенном каталоге (старые бэкапы).

Скрипт:

$d = "d:\1" // объявляю переменную, в данном случае путь к каталогу
cd $d // перехожу в каталог
psdrive | ForEach-Object {if ($_.free -gt 10000000000 -and $_.name -eq "d"){ls $d | Sort-Object LastWriteTime -descending | select LastWriteTime, name -last 2| ForEach-Object {Remove-item $_.name -whatif}}} //  см. ниже

// psdrive - показать все диски
// | - передать данные дальше по конвееру
// ForEach-Object - перебираем диски по порядку
// if ($_.free -gt 10000000000 -and $_.name -eq "d") - находим диск D, у которого меньше 10Gb
// ls $d - (ls, dir в данном случае псевдонимы основной команды get-childitem) получаем список файлов и каталогов внутри данного
// Sort-Object LastWriteTime -descending - сортируем объекты по времени последнего изменения в обратном понятке
// select LastWriteTime, name -last 2 - выбираем последнии две записи, выводим поля время и имя
// Remove-item $_.name - удаляем файлы с этими именами
// -whatif - симулируем данный скрипт для проверки

Данный скрипт сохранил с расширением .ps1. Запуск данного файла осуществляю через .bat файл с таким содержимым:

powershell.exe d:\psdrive01.ps1

Файл с расширением .bat запускаю через планировщик заданий.

Есть еще один нюанс при запуске. По умолчанию выполнение сценариев PowerShell в системе запрещено. Т.к. в скриптах может находится вредоносный код, который может нанести вред системе. По соображениям безопасности скрипты PowerShell должны быть подписаны цифровой подписью, такой подход называется политика выполнения. new 6 Notepad 2011 06 08 15 29 19 thumb PowerShell. Выполнение скриптов запрещено для данной системы
Для тестирования скриптов можно отключить проверку выполнения для локальный скриптов. Для этого запускаем консоль PowerShell от имени администратора и вводим команду:
Set-ExecutionPolicy RemoteSigned
new 6 Notepad 2011 06 08 15 30 08 thumb PowerShell. Выполнение скриптов запрещено для данной системы

Подтверждаем изменение политики выполнения – [Y] Да.
Теперь все ЛОКАЛЬНЫЕ сценарии PowerShell будут выполняться без подписи и сценарий загруженные из интернета с цифровой подписью надежного издателя.