понедельник, 17 октября 2016 г.

zabbix и Linux template: нормальный учёт памяти

Штатно  в linux шаблоне есть триггер Lack of available memory on server {HOST.NAME} на параметр {Template OS Linux:vm.memory.size[available].last(0)}. Проблема в том, что в таком виде триггер бесполезен чуть менее чем совсем, и особенно с учётом штатного десятка мегабайт. Тем более, у разных серверов будет разное количество памяти и разные границы. Да, можно зайти в настройки хоста и поправить триггер, но это совсем через одно место.
К счастью, есть параметр, показывающий свободную память... в процентах. Куда логичнее абсолютного значения, не правда ли? И отличие всего в 1 букву: оно pavailable
Так что идём в Items, клонируем старый айтем, правим ему ключик и имя, повторяем в Triggers. Можно повторить для другого уровня с другой важностью, например 10 и 20 - average и warning.
Ну и почитать про этот параметр
https://www.zabbix.com/documentation/2.4/ru/manual/appendix/items/vm.memory.size_params

пятница, 7 октября 2016 г.

ipset как аналог address lists микротика

Одно из частых применений address lists - "временные" записи, в том числе для неудачных попыток подключения и временных банов. Или наоборот, "полезных" машин, для port knocking.
Для этого у ipset есть опция timeout. А дальше как обычно, ALLOW|DROP

И пример доки
https://habrahabr.ru/post/108691/

вторник, 9 августа 2016 г.

python: Собираем свой пакет из pip версии

Зачастую в пакетах лежит нужная библиотека, но отставшая от нужной версии года так на 3-4. Или вообще доступная только в pip.
Самый простой вариант это использовать библиотеку из pip. К сожалению, у pip нет "собранных" версий, поэтому на хосте тогда нужен компилятор, что многим неприемлемо для "боевых" сред. И в целом это разумно.
Хороший выход - используем ноду для сборки и собираем там virtualenv с нужными пакетами. А потом итог оборачиваем в пакет (пишем спеку). Также это может быть докер, но опять же - туда нужен компилятор... И опять возвращаемся к virtualenv. Впрочем, для простых либ и единообразной среды достаточно скопировать нужные файлы в SOURCES и раскидать их по местам установщиком пакета, более сложные либы лучше пакетировать раздельно. Если уже есть такая же старая либа --  всё просто, качаем .src.rpm, правим .spec под новую версию, подкладываем архив с новыми исходниками, собираем.
А может быть, что за основу взять нечего... Тогда можно взять например python-pika, скопировать его spec и начать правки.
Нужно скачать архив нужной версии, для примера сделаем пакет для couchbase. Работаем от обычного пользователя, который будет заниматься сборкой

четверг, 14 июля 2016 г.

debian 8, apache, php: почта ходит только от рута

Довелось настраивать debian 8 + apache 2.4 (ITK) + php, штатный почтовик exim (и сразу - не забываем сказать dpkg-reconfigure exim4-config и выставить режим internet site), а дальше - есть скрипт-мейлер, от рута из консоли mail() возвращает true, а ровно оно же но через сайт отдаёт false. При этом в paniclog появляется строка
 unable to set gid=1000 or uid=0 (euid=0): forcing real = effective
По данной строке уже гуглится проблема и решение:
<IfModule mpm_itk_module>
LimitUIDRange 0 6000
LimitGIDRange 0 6000
</IfModule>

ну или так
echo "LimitGIDRange 0 2000" >> /etc/apache2/mods-available/mpm_prefork.conf
echo "LimitUIDRange 0 2000" >> /etc/apache2/mods-available/mpm_prefork.conf
service apache2 restart
(только с гидом не работает, надо uid+gid)

Кто-то набыдлокодил и выпустил это в мир, только непонятно кто именно.

Плюс кому-то также в exim надо вписать 
disable_ipv6 = true

И опционально в /etc/php5/apache/php.ini найти sendmail_path и выставить
sendmail_path = "/usr/sbin/exim4 -ti"

И немного доков

пятница, 17 июня 2016 г.

couchbase: сброс пароля пользователя Administrator

Можно через cli
./couchbase-cli cluster-init -c localhost:8091 --user=Administrator --password=123 --cluster-init-username=Administrator --cluster-init-password=god

Но есть другой штатный способ, проще
/opt/couchbase/bin/cbreset_password 127.0.0.1:8091

И внимание на вопрос:
Do you really want to do it? (yes/no)
Тут надо отвечать не y, а полностью yes, иначе просто молча выйдет. А должно быть так:

Do you really want to do it? (yes/no)yes
Resetting administrative password...
Password for user Administrator was successfully replaced.

четверг, 16 июня 2016 г.

nginx gzip основные content-type

gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript;

среда, 11 мая 2016 г.

rpmbuild: *** ERROR: No build ID note found in ...

Лечение:
1) добавить в сборку node-id
--buil-id
Если не помогло:
2) отключить сборку debuginfo
a) %global _missing_build_ids_terminate_build 0
б) %global debug_package %{nil}
в) попробовать удалить "проблемные" файлы

пятница, 6 мая 2016 г.

Собираем google V8 под centos 6

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

V8 is Google's open source high-performance JavaScript engine, written in C++ ... V8 can run standalone, or can be embedded into any C++ application.

centos 6: готовим lsb_release

Штатно нет команды lsb_release. Часть информации можно получить через
cat /etc/*-release
но некоторое ПО хочет именно эту команду.

yum provides */lsb_release
и как вариант
yum install redhat-lsb-core

centos 6: ставим gcc 4.9.2

yum install centos-release-scl-rh
yum install devtoolset-3-gcc devtoolset-3-gcc-c++

И для активации
scl enable devtoolset-3 bash

вторник, 26 апреля 2016 г.

Scapy

http://scapy.net/

Scapy — сетевая утилита написанная на языке Python, которая позволяет посылать, просматривать и анализировать сетевые пакеты. В отличии от многих других утилит, утилита Scapy не ограничена только теми протоколами, пакеты которых она может генерировать. Фактически, она позволяет создавать любые пакеты и комбинировать атаки различных типов.
С помощью Scapy легко осуществлять такие процедуры, как:
сканирование,
трассировку маршрута,
проверку хоста (probing),
юнит-тестирование каких-либо сетевых функций,
исследование сети и различные виды атак.
С помощью Scapy можно заменить:
hping,
arpspoof,
arp-sk,
arping,
p0f
и частично
Nmap,
tcpdump,
tshark.

http://xgu.ru/wiki/Scapy

И очень много примеров тут
https://habrahabr.ru/post/249563/

четверг, 21 апреля 2016 г.

Смотрим и чистим таблицу conntrack

Иногда бывает так, что что-то сбивается в коннтрак таблицах, из недавнего: поменяли роутинг для одной сети, которая доступна напрямую, но ранее ходила через default gateway, соответственно внешний айпи стал другой. С TCP это не проблема, сессии сами отвалятся, а вот с UDP (та же телефония) будут проблемы. Совсем простое решение - ребутнуть шлюз, чуть сложнее - на проблемных телефонах поменять src port, это создаст новые правила в conntrack. Но мы попытаемся решить более цивилизованно.

вторник, 19 апреля 2016 г.