Архив рубрики: Администрирование Linux

PostgreSQL компиляция библиотеки libzbxpgsql и пересборка RPM-пакета

Библиотека libzbxpgsql используется для мониторинга PostgreSQL в Zabbix. Последний релиз библиотеки был в 2017 году и свежий пока не вышел, в то же время, последняя версия libzbxpgsql не работает с zabbix agent версий 4+. В официальном репозитории https://github.com/cavaliercoder/libzbxpgsql есть фикс этой проблемы https://github.com/cavaliercoder/libzbxpgsql/pull/141, фикс проблемы с DEBUG логированием zabbix агентом https://github.com/cavaliercoder/libzbxpgsql/pull/142.
Для того чтобы можно было использовать исправления, необходима виртуалка с CentOS 7+ и возможностью поставить на нее пакеты для компиляции исходников (make, gcc и т.д.).
Так же ставим пакет rpm-build, он потребуется для пересборки rpm-пакета:

yum install rpm-build

Устанавливаем последнюю доступную версию пакета libzbxpgsql (из репозитория или можно перекинуть на машину свой пакет и поставить локально):

yum install libzbxpgsql

Читать далее

0

Ansible включение тайминга выполнения задач

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

TASK [restore_postgres : Select target DB size (MB)]
********************************************************************************************************************
Thursday 26 September 2019 10:40:20 +0300 (0:00:00.061) 0:12:12.391 ****
ok: [bufferdb]
TASK [restore_postgres : Set DBSize to variable]
************************************************************************************************************************
Thursday 26 September 2019 10:40:21 +0300 (0:00:00.558) 0:12:12.949 ****
ok: [bufferdb]
TASK [restore_postgres : debug]
*****************************************************************************************************************************************
Thursday 26 September 2019 10:40:21 +0300 (0:00:00.060) 0:12:13.010 ****
ok: [bufferdb] => {
"msg": "Database size in MB is: 33189.0"
}

Читать далее

0

Памятка по командам netstat

Список портов, которые «слушает» сервер:

netstat -an | grep -i listen

Список активных соединений TCP:

netstat -at

UDP:

netstat -au

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

netstat -tp
0

OpenVPN за 5 минут одной командой

Скрипт подходит для Debian, Ubuntu и CentOS.
Позволяет выполнить как первоначальную настройку сервера, так и добавление openvpn клиентов.

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Репозиторий автора скрипта https://github.com/Nyr/openvpn-install

0

Алерты Grafana в Telegram через прокси

В моём случае Grafana работает на CentOs7.
На данный момент в Grafana (v6.1.4) не реализовано подключение прокси-сервера для отправки оповещений в telegram. При поиске в Google можно найти ряд статей (раз,два,три) в которых утверждается что она станет ходить через прокси, если его добавить переменные окружения с указанием прокси сервера:

export http_proxy="http://myproxy:3128"
export https_proxy="http://myproxy:3128"

но по какой-то причине этот способ у меня так и не заработал, графана игнорирует прокси и пытается отправить уведомление напрямую на api.telegram.org

Если способ выше вам так же не помог, предлагаю ознакомиться с «костылём» описанным ниже.
Суть кратко: будем отправлять все запросы в сторону https://api.telegram.org на свой сервер с Apache и на нём делать proxy_pass на реальный api.telegram.org.
Можно, конечно, просто на уровне IPTABLES редиректить все обращения на 443 порт на реальную API, но при таком раскладе мы займём 443 порт на нашей VPS, что не очень кошерно, сайтики с HTTPS уже не похостишь..
Читать далее

0

IPSec на CentOs 7 с помощью LibreSwan

Ниже небольшой гайд по настройке IPSec в двух топологиях с помощью LibreSwan:

  • для сервера с публичным IP на интерфейсе;
  • для сервера c локальным IP и за маршрутизатором с NAT, используя NAT Traversal (NAT-T)


Подготовительный этап одинаков в обоих случаях:

  1. Устанавливаем libreswan:
    yum install libreswan
    
  2. Включаем IP forwarding, а IP redirects отключаем, перезагружаем параметры:
    # Открываем файл
    nano /etc/sysctl.conf
    
    # и добавляем параметры:
    net.ipv4.ip_forward = 1
    net.ipv4.conf.all.accept_redirects = 0
    net.ipv4.conf.all.send_redirects = 0
    
    # Применяем новые параметры
    sysctl -p
    
  3. Разрешаем IPSec траффик в firewalld:
    firewall-cmd --zone=public --add-service=ipsec
    
  4. Добавляем сервис в автозагрузку и запускаем
    systemctl enable ipsec
    systemctl start ipsec
    

Дальнейшая конфигурация отличается от топологии. Оба случая описаны ниже.
Читать далее

0

Linux — выполнение команды в фоне

Порой возникает необходимость выполнять команду в фоне и не зависеть от происходящего в сессии. Чтобы выполнить любую задачу в фоне необходимо создать bash скрипт. В примере я запускаю tcpdump и пишу результаты в файл.

Создадим скрипт:

[root@server /]# nano script.sh

Содержимое скрипта:

#!bin/bash
tcpdump -i ens33 dst port 5332 -w dump.cap >& /dev/null &
echo $! > script.pid

В скрипте мы выполняем стандартную команду tcpdump, которая имеет вывод информации в сессию и дополнительно пишет результаты в файл. Нужно заменить на то, что необходимо лично вам. Вывод в сессию мы перенаправляем в dev/null. PID запущенного нами скрипта пишем в файл.

Делаем скрипт исполняемым:

[root@server /]# chmod +x script.sh

Запускаем скрипт:

[root@server /]# ./script.sh

PID читаем из файла:

[root@server /]# cat script.pid
115966

Когда выполнение команды нужно остановить просто убиваем процесс:

[root@server /]# kill 115966

 

1+

Samba share на CentOS 6

Создаем директорию, которая станет шарой, в моем случае:

mkdir /samba-share

Устанавливаем самбу и добавляем в автозагрузку:

yum install samba
chkconfig smb on

Идём в директорию с конфигом и бекапим дефолтный конфиг на всякий случай:

cd /etc/samba/
mv smb.conf smb.conf-default

Создаем свой smb.conf подобного содержания:

#========== Global Settings ================

[global]

workgroup = WORKGROUP # Имя рабочей группы

security = user

map to guest = bad user

min protocol = SMB1 # Минимальный и максимальный протокол самбы, если не указать то на последних сборках Windows не открывается
max protocol = SMB2

#========= Share Definitions ===============

[NWSC] # Имя шары

path = /samba-share # Путь до директории

writable = no

read list = root # Список пользователей, кто может читать

write list = root # Список пользователей, кто имеет право на запись

В моем случае я использую уже имеющуюся учётку root, при желании можно создать ещё пользователя и дать ему права на созданную папку.

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

smbpasswd -a root

Открываем порт 445 например для посети 10.10.10.0/24 в iptables:

iptables -I INPUT 1 -s 10.10.10.0/24 -p tcp -m tcp --dport 445 -j ACCEPT
iptables-save

Запускаем самбу:

service smb start

Всё должно работать, дебажить просмотром лога или командой smbstatus

2+

Базовая HTTP авторизация nginx/apache

Создаём файл с учётками и добавляем туда пользователя/пароль:

htpasswd -c /var/www/nfsen/.htpasswd test

Идём в конфиг сайта (по дефолту у HTTPD /etc/httpd/conf/httpd.conf) и в параметрах хоста добавляем следующее (выделено красным):

<VirtualHost *:80>
ServerName netflow.local
DocumentRoot "/var/www/nfsen"
Alias /icons "/var/www/nfsen/icons"
<Directory "/var/www/nfsen">
AuthType Basic
AuthName "nfsen"
AuthUserFile /var/www/nfsen/.htpasswd
Require valid-user
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>

После перезапуска web-сервера будет происходить запрос авторизации.

Добавить пользователя в существующий файл:

htpasswd /var/www/nfsen/.htpasswd test

Удаление пользователя:

htpasswd -D /var/www/nfsen/.htpasswd test
0