vanoc.ru

Заметки

Архив категории ‘centos’

Zabbix 3 на nginx и php-fpm на centos 7

Комментариев нет

Идея в том, чтоб настроить веб-интерфейс zabbix 3 на nginx и php-fpm на одном сервере, а zabbix-server на другом.

Настраиваем веб-сервер

Ставим nginx

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx

systemctl start nginx
systemctl enable nginx

Конфиг nginx
vim /etc/nginx/conf.d/zabbix.conf

server {
listen 80;

root /usr/share/zabbix;
access_log /var/log/nginx/zabbix.access.log;
server_name 172.16.16.10;

location / {
index index.php index.html index.htm;
}

location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
fastcgi_param PHP_VALUE "
max_execution_time = 300
memory_limit = 128M
post_max_size = 16M
upload_max_filesize = 2M
max_input_time = 300
date.timezone = Europe/Moscow
always_populate_raw_post_data = -1
";
fastcgi_buffers 8 256k;
fastcgi_buffer_size 128k;
fastcgi_intercept_errors on;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}

client_max_body_size 32m;

}

Обращаю внимание, что у меня nginx работает с php-fpm через сокет. Если у вас по tcp порту, то ставьте
fastcgi_pass 127.0.0.1:9000;

Открываем 80, 443 порты
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Ставим php-fpm

rpm -ivh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install epel-release yum-utils
yum-config-manager --enable remi-php71

yum install php71
yum install php-fpm php-cli php-mysql php-gd php-ldap php-odbc php-pdo php-pecl-memcache php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap

systemctl start php-fpm
systemctl enable php-fpm

Настроим php-fpm

yum install net-tools

netstat -tulpn | grep php-fpm

Все в порядке, повис на порту 9000. Запустим его через unix сокет. Для этого открываем конфиг /etc/php-fpm.d/www.conf и комментируем строку:

vim /etc/php-fpm.d/www.conf

;listen = 127.0.0.1:9000

Вместо нее добавляем несколько других:
listen = /var/run/php-fpm/php-fpm.sock
listen.mode = 0660
listen.owner = nginx
listen.group = nginx

Заодно измените пользователя, от которого будет работать php-fpm. Вместо apache укажите nginx
user = nginx
group = nginx

Ставим zabbix

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
yum install zabbix-web-mysql

Настроим selinux
Дадим права на подключение к удаленной базе mysql
getsebool -a | grep httpd_can_network_connect_db
setsebool -P httpd_can_network_connect_db 1

Дадим возможность вебморде подключаться к серверной части
getsebool -a | grep zabbix
setsebool -P httpd_can_connect_zabbix 1

Настроим права
chown -R nginx. /etc/zabbix/web
chown -R nginx. /usr/share/zabbix

Дабы не получать ошибку

PHP message: PHP Fatal error:  Uncaught Exception: Cannot start session. in /usr/share/zabbix/include/classes/core/CSession.php:50

в /etc/php-fpm.d/www.conf ищем строку
php_value[session.save_path] = /var/lib/php/session

И выставляем полные права на директорию /var/lib/php/session

chmod 770 /var/lib/php/session
chown :nginx /var/lib/php/session
systemctl restart php-fpm

Перезапускаем nginx

systemctl restart nginx.service

 

Настраиваем второй сервер

Ставим mariadb
yum install mariadb-server mariadb-devel
systemctl enable mariadb.service
systemctl start mariadb.service

Создадим базу и дадим права

create database zabbix;
grant all privileges on zabbix.* to 'zabbix'@'localhost' identified by 'пароль';
grant all privileges on zabbix.* to 'zabbix'@'172.16.16.10' identified by 'пароль';
flush privileges;

где 172.16.16.10 — ip адрес веб-сервера

Ставим zabbix-сервер

rpm -ivh http://repo.zabbix.com/zabbix/3.5/rhel/7/x86_64/zabbix-release-3.5-1.el7.noarch.rpm
yum install zabbix-server-mysql zabbix-agent

Указываем пароль базы
vim /etc/zabbix/zabbix_server.conf
DBPassword=пароль

Запускаем
systemctl start zabbix-server.service
systemctl enable zabbix-server.service
systemctl start zabbix-agent.service
systemctl enable zabbix-agent.service

Откроем порт mysql
firewall-cmd --add-service=mysql --permanent
firewall-cmd --reload

Открываем порты 10051, 10050, snmp
firewall-cmd --permanent --new-service=zabbix
firewall-cmd --service=zabbix --add-port=10051/tcp --permanent
firewall-cmd --service=zabbix --add-port=10050/tcp --permanent
firewall-cmd --add-service=zabbix --permanent
firewall-cmd --add-service=snmp --permanent
firewall-cmd --reload

По мотивам:
https://serveradmin.ru/ustanovka-i-nastroyka-nginx-php-fpm-php7-1-na-centos-7/
https://serveradmin.ru/ustanovka-zabbix-3-na-nginx-php-fpm/

25th Май 2018 ~ 14:32


Рубрики centos

Метки ,

L2TP/IPsec на centos 7

Комментариев нет

Подключаем epel репозиторий

yum install -y epel-release

Устанавливаем необходимые пакеты

yum install -y xl2tpd libreswan lsof

Настраиваем L2TP

Бэкапим дефолтный конфиг

cp /etc/xl2tpd/xl2tpd.conf /etc/xl2tpd/xl2tpd.conf.orig

Правим /etc/xl2tpd/xl2tpd.conf

listen-addr = 1.1.1.1

где 1.1.1.1 заменяем на свой ip

ip range = 10.0.5.50-200
local ip = 10.0.5.1

где 10.0.5. может быть любым, взято для примера

Бэкапим дефолтный конфиг

mv /etc/ppp/options.xl2tpd /etc/ppp/options.xl2tpd.orig

Создаем новый с такими параметрами

vim /etc/ppp/options.xl2tpd
ipcp-accept-local
ipcp-accept-remote
ms-dns 8.8.8.8
ms-dns 8.8.4.4
auth
idle 1800
mtu 1410
mru 1410
nodefaultroute
debug
proxyarp
connect-delay 5000
name xl2tpd
refuse-pap
refuse-chap
refuse-mschap
require-mschap-v2
persist
logfile /var/log/xl2tpd.log

Настраиваем IPsec

Смотрим чтоб был расскоментирован параметр include /etc/ipsec.d/*.conf в /etc/ipsec.conf

Создаем файл настроек с таким содержимым

vim /etc/ipsec.d/l2tp-ipsec.conf
conn L2TP-PSK-NAT
    rightsubnet=0.0.0.0/0
    dpddelay=10
    dpdtimeout=20
    dpdaction=clear
    forceencaps=yes
    also=L2TP-PSK-noNAT
conn L2TP-PSK-noNAT
    authby=secret
    pfs=no
    auto=add
    keyingtries=3
    rekey=no
    ikelifetime=8h
    keylife=1h
    type=transport
    left=1.1.1.1
    leftprotoport=17/1701
    right=%any
    rightprotoport=17/%any

где 1.1.1.1 заменяем на свой ip

Прописываем в /etc/ppp/chap-secrets свои логины и пароли

vim /etc/ppp/chap-secrets
"user1" "xl2tpd" "pass1" *
"user2" "xl2tpd" "pass2" *

Прописываем PSK ключ

vim /etc/ipsec.d/default.secrets
: PSK "SecretKey"

Добавляем правила в firewalld

firewall-cmd --permanent --add-service=ipsec
firewall-cmd --permanent --add-port=1701/udp
firewall-cmd --permanent --add-port=4500/udp
firewall-cmd --permanent --add-masquerade
firewall-cmd --reload

Настраиваем ip forward

vim /etc/sysctl.d/60-sysctl_ipsec.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.rp_filter = 0
net.ipv4.conf.all.send_redirects = 0
net.ipv4.conf.default.accept_redirects = 0
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.eth0.rp_filter = 0
net.ipv4.conf.eth0.send_redirects = 0
net.ipv4.conf.eth1.accept_redirects = 0
net.ipv4.conf.eth1.rp_filter = 0
net.ipv4.conf.eth1.send_redirects = 0
net.ipv4.conf.eth2.accept_redirects = 0
net.ipv4.conf.eth2.rp_filter = 0
net.ipv4.conf.eth2.send_redirects = 0
net.ipv4.conf.ip_vti0.accept_redirects = 0
net.ipv4.conf.ip_vti0.rp_filter = 0
net.ipv4.conf.ip_vti0.send_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.lo.rp_filter = 0
net.ipv4.conf.lo.send_redirects = 0
net.ipv4.conf.ppp0.accept_redirects = 0
net.ipv4.conf.ppp0.rp_filter = 0
net.ipv4.conf.ppp0.send_redirects = 0

Перезапускаем сеть

systemctl restart network

В принципе все. Запускаем.

systemctl enable ipsec
systemctl enable xl2tpd
systemctl start ipsec
systemctl start xl2tpd

Ах, да. Настроим logrotate для /var/log/xl2tpd.log

vim /etc/logrotate.d/xl2tpd
/var/log/xl2tpd.log {
missingok
compress
notifempty
weekly
rotate 2
create 0600 root root
}

Можно все это проделать вручную, либо воспользоваться этим скриптом (скрипт не мой, я его слегка причесал). В нем по сути этот же набор команд, поэтому достаточно только поправить переменные в начале файла — логин, пароль и PSK ключ и настройка займет меньше пары минут.

8th Май 2018 ~ 15:17


Рубрики centos

Метки ,

настройка dante-server на centos 7

2 комментария

Подключаем репозиторий gf

yum install http://mirror.ghettoforge.org/distributions/gf/gf-release-latest.gf.el7.noarch.rpm

Устанавливаем dante-server

yum --enablerepo=gf-plus install dante-server

Делаем, чтоб стартовал при включении системы

systemctl enable sockd.service

Сохраняем оригинальный конфиг

mv /etc/sockd.conf /etc/sockd.conf.orig

Пишем свой

vim /etc/sockd.conf
internal: eth0 port = 1080
external: eth0

socksmethod: username
user.privileged: root
user.unprivileged: nobody

client pass {
from: 0/0 to: 0/0
log: error
}

socks pass {
from: 0/0 to: 0/0
log: error
}

Для понимания можно почитать оригинальный конфиг. Там все доступно. Благо мы его сохранили.

Тем не менее пара слов по конфигу:
socksmethod: username — указываем использовать вход по логину и паролю системных пользователей
user.privileged: root — ставим root, потому что нам нужно читать файл /etc/passwd
client pass — правила работы с клиентами
socks pass — что разрешаем клиентам

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

useradd test -M -s /sbin/nologin
passwd test

Запускаем

systemctl start sockd.service

Добавляем правило в файрвол

firewall-cmd --zone=public --add-port=1080/tcp --permanent
firewall-cmd --reload

 

upd. Забыл добавить, что нужно отключить selinux

vim /etc/selinux/config

меняем значение на

SELINUX=disabled

и перезагружаем

shutdown -r now

 

ps: Стоит обратить внимание, что логин и пароль, а так же все передаваемые данные не шифруются. Если нужно шифрование, то стоит обратить внимание на Shadowsocks или MTProto proxy.

17th Апрель 2018 ~ 22:55


Рубрики centos

Метки

Sieve: Duplicate Extension

Комментариев нет

Удалять или перемещать дубликаты писем можно используя Dovecot Sieve и расширение «vnd.dovecot.duplicate» до версии 2.2.18 и «duplicate» в более свежих версиях. Дубли писем определяются по «Message-ID». Расширение по умолчанию отключено, но начать его использовать не составит труда.

/etc/dovecot/conf.d/90-sieve.conf

plugin {

  sieve_before = /var/spool/mail/vmail/default.sieve  # (путь может быть другим)

  sieve_extensions = +vnd.dovecot.duplicate      # dovecot < 2.2.18
  #sieve_extensions = +duplicate                 # dovecot >= 2.2.18
}

/var/spool/mail/vmail/default.sieve # (путь может быть другим)

require ["vnd.dovecot.duplicate"];      # dovecot < 2.2.18 
#require ["duplicate"];                 # dovecot >= 2.2.18

if duplicate {
    discard;
    #fileinto "Trash";      # если надо перемещать в корзину
    stop;
}

Проверить версию Dovecot

dovecot --version
2.2.10

Ввиду того, что я использую Centos 7 с Dovecot 2.2.10, то с версиями >= 2.2.18 не тестировал.

Источник Dovecot вики https://wiki.dovecot.org/Pigeonhole/Sieve/Extensions/Duplicate и гугл.

Кстати, в процессе настройки на тестовом сервере столкнулся с ошибкой «User test@exemple.com doesn’t have home dir set, disabling duplicate database»
Ошибка связана с тем, что в файле /etc/dovecot/conf.d/10-mail.conf не был указан параметр mail_home. Должно выглядеть примерно так:

mail_home = /var/spool/mail/vmail
mail_location = maildir:~/%n

По настройке mail_home и mail_location можно почитать в официальной вики https://wiki2.dovecot.org/VirtualUsers/Home

16th Январь 2018 ~ 11:32


Рубрики centos

Метки ,

Roundcube 1.2.5 to 1.3.x

Комментариев нет

В первую очередь делаем бэкап, как файлов так и базы.

Т.к. roundcube 1.3.х требует php7 нужно подключить нужные репозитории

rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Дальше удаляем старый php

yum remove php php-xml php-pdo php-mbstring php-mcrypt php-intl php-mysqli php-gd

Устанавливаем php7

yum install php70w php70w-opcache php70w-xml php70w-pdo php70w-mbstring php70w-mcrypt php70w-intl php70w-mysqli php70w-gd

Перезапускаем апач

systemctl restart httpd.service

Качаем свежий roundcube

wget https://github.com/roundcube/roundcubemail/releases/download/1.3.1/roundcubemail-1.3.1-complete.tar.gz
extract roundcubemail-1.3.1-complete.tar.gz
./roundcubemail-1.3.1/bin/installto.sh /var/www/roundcubemail/

Делаем бэкап старого composer.json Будем использовать новый

mv composer.json composer.json_old
cp composer.json-dist composer.json

Обновляем плагины

php composer.phar update --no-dev

При обновлении плагинов у меня вылезла ошибка

  [ErrorException]                                                                                                           
  file_put_contents(/var/www/roundcubemail/vendor/bin/crypt-gpg-pinentry): failed to open stream: No such file or directory

Она связана с битой ссылкой. Удалем ее и перелинковываем

rm vendor/bin/crypt-gpg-pinentry
ln -s /var/www/roundcubemail/vendor/pear/crypt_gpg/scripts/crypt-gpg-pinentry /var/www/roundcubemail/vendor/bin/crypt-gpg-pinentry

Осталось взять из composer.json_old те плагины, что уже работают с новой версией, и прописать в composer.json

Кстати, плагин managesieve таки работает и должен быть указан в config/config.inc.php

5th Сентябрь 2017 ~ 14:09


Рубрики centos

Метки

openDKIM: селекторы

Комментариев нет

Пару лет назад я писал про настройку OpenDKIM, но я не упомянул про селекторы. Это может пригодится, когда, допустим, нужно отправлять письма с нескольких почтовых серверов или с почтового сервера и сайта. Вариантов может быть много. Т.е., когда нужно указать для каждого сервера свой DKIM ключ.

Настраивается все ровно как в посту по настройке OpenDKIM. Отличий не много.

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

opendkim-genkey -D /etc/opendkim/keys/example.com/ -d example.com -s newselector

в записях KeyTable

newselector._domainkey.example.com example.com:newselector:/etc/opendkim/keys/example.com/newselector.private

в SigningTable

@example.com newselector._domainkey.example.com

Так же, при добавлении TXT записи нужно не забыть указать

newselector._domainkey      IN      TXT     ( "v=DKIM1; k=rsa; "
          "p=.................." )  ; ----- DKIM key newselector for example.com

2nd Август 2017 ~ 13:09


Рубрики centos

Метки

Clamav: игнорировать сигнатуру

Комментариев нет

Игнорировать сингатуру в Clamav можно создав файл local.ign2 и добавив в него собственно название сигнатуры.

echo "Signature" >> /var/lib/clamav/local.ign2

затем перезапускаем clamav.

Пример, сегодняшний косяк с блокировкой doc файлов

echo "Win.Exploit.CVE_2016_3316-1" >> /var/lib/clamav/local.ign2

10th Август 2016 ~ 16:47


Рубрики centos

Метки

centos 7 + openfire 4.0.2 + SSO

Комментариев нет

Заметка на память как заставить openfire работать с SSO

Качаем openfire и устанавливаем

wget http://download.igniterealtime.org/openfire/openfire-4.0.2-1.i386.rpm
yum install ~/openfire-4.0.2-1.i386.rpm

Читать далее »

26th Июль 2016 ~ 18:32


Рубрики centos

Метки ,

Перенос виртуального сервера на физический с созданием программного рейда

Комментариев нет

Задача: перести виртуальный почтовый сервер на физический с созданием RAID 1 (зеркало).

Имеется виртуалка на XenServer и физический сервер с двумя винтами по 1 Тб

Установим Centos minimal на один из винтов и поделим диск на разделы

/dev/sda1 /boot
/dev/sda2 swap
/dev/sda3 /

Теперь установим mdadm и vim (обожаю этот текстовый редактор)

yum install mdadm vim

Теперь надо подготовить второй диск для настройки на нем рейда. Скопируем схему разбивки диска с /dev/sda

sfdisk -d /dev/sda | sfdisk /dev/sdb

Что получилась можно посмотреть командой fdisk -l

Теперь сменим тип разделов /dev/sdb на «Linux raid autodetect» Для этого выполняем

fdisk /dev/sdb

жмем ‘t’, затем ‘1’ (первый раздел диска), затем ‘fd’
Повторяем все заново для каждого из разделов.
Сохраняем изменения ‘w’

Читать далее »

8th Апрель 2016 ~ 11:15


Рубрики centos

Метки

XenServer увеличение размера диска виртуальной машины

Комментариев нет

Делаем снапшот. В процессе он меня несколько раз спас.

По сути этот пост заметка на память, т.ч. ниже много копипаста с консоли.

Останавливаем виртуальную машину, увеличиваем размер диска в XenCenter и запускаем виртуалку.

Что имеем. В корне место почти закончилось.

% df -h
Файловая система        Размер Использовано  Дост Использовано% Cмонтировано в
/dev/mapper/centos-root   6,7G         6,7G  1,4M          100% /
devtmpfs                  909M            0  909M            0% /dev
tmpfs                     918M            0  918M            0% /dev/shm
tmpfs                     918M         8,3M  910M            1% /run
tmpfs                     918M            0  918M            0% /sys/fs/cgroup
/dev/xvda1                497M         216M  282M           44% /boot
% fdisk /dev/xvda
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Читать далее »

28th Октябрь 2015 ~ 16:17


Рубрики centos

Метки