LINUX.ORG.RU

Сообщения Nuclerdragon

 

Nextcloud + PIWIK

Доброго всем времени суток!

Как мониторить Nextcloud 12 с помощью PIWIK 3.0.4?

Nextckiud и PIWIK находятся на разных поддоменах: nextcloud.example.com и piwik.example.com

Задача очень не тривиальная, как может показаться, Nextcloud всеми силами противостоит внедрению кода аналитики piwik.

Есть 3 файла в которые нужно внедрить piwik:

/var/www/nextcloud/core/temlates/layout.base.php
/var/www/nextcloud/core/temlates/layout.guest.php
/var/www/nextcloud/core/temlates/layout.user.php

Но если просто стандартным способом вставить код счётчика piwik до </header> ничего работать не будет, потому что браузер клиента получает от nextcloud инструкции СSP (Content-Security-Policy) https://www.html5rocks.com/en/tutorials/security/content-security-policy/ которые блокируют запуск скриптов или загрузку картинок со сторонних узлов, конкретно браузер получает заголовки:

curl -vvvv https://nextcloud.exaple.com

< Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-eval' 'nonce-bFV3U25zbkFOKzVFSTJsZnh4Y05CNE5KM09ITlk4R2VXeXl2Tlg2blBoMD06OHhSZC9meUxISzE5V2djS3ZuQmladG93bE1xREVwbkxNa0NmZmpEL1QzOD0='; style-src 'self' 'unsafe-inline'; frame-src *; img-src * data: blob:; font-src 'self' data:; media-src *; connect-src *; object-src 'none'; base-uri 'self';

< X-Content-Type-Options: nosniff
< X-XSS-Protection: 1; mode=block
< X-Robots-Tag: none
< X-Download-Options: noopen
< X-Permitted-Cross-Domain-Policies: none

В самом браузере (например Safari веб-инспектор) мы получаем:

Refused to load https://piwik.example.com/piwik.js because it does not appear in the script-src directive of the Content Security Policy.
Хорошо, что может быть проще, просто в заголовок добавим адрес нашего PIWIK для разрешения запуска с него скриптов и/или загрузки картинок, вот так:
script-src 'self' 'unsafe-eval' https://piwik.example.com;
Заголовок меняется, curl -vvvv нам это показывает, но от этого браузер не получает разрешения загружать скрипты с piwik.example.com, почему так мне уже не понятно.

Content-Security-Policy в owncloud настраивается в этом файле:

/var/www/owncloud/lib/public/AppFramework/Http/EmptyContentSecurityPolicy.php
и
/var/www/owncloud/lib/public/AppFramework/Http/ContentSecurityPolicy.php
и
/var/www/owncloud/lib/private/legacy/response.php

Если непосредственно в Nginx прописать add_header Content-Security-Policy... это никак не поможет, в этом случае браузер одновреннно 2 политики получит, первую, ту что в EmptyContentSecurityPolicy.php прописана и вторую ту, что от Nginx пришла, интересно как он их в этом случае обрабатывает, они друг друга добавляют, а если правила конфликтуют?

В итоге у меня PIWIK категорически не хочет работать с NEXTCLOUD, а если точнее то браузеры через которые открывается NEXTCLOUD получают инструкции от СSP не грузить ничего со сторонних доменов, в частности с моего PIWIK.

В репозитории приложений для NEXTCLOUD есть приложение для интеграции с PIWIK, но оно не работает, по крайней мере этой интеграции у меня не случилось.

У кого-нибудь работает Nextcloud 12 + PIWIK 3.0.4, которые на разных доменах находятся?

 ,

Nuclerdragon
()

Lynx и httpS

Доброго всем времени суток!

Для получения списка ссылок на все страницы сайта использовал в скрипте

lynx -crawl -traversal

Пример подобного скрипта: http://www.kompx.com/en/lynx-browser-creating-sitemap.xml

но выяснилось с httpS такая конструкция напрочь отказывается работать, например:

lynx -crawl -traversal -accept_all_cookies "https://www.yandex.ru/"
на выходе получаем:
lynx: Start file could not be found or is not text/html or text/plain<br>
          Exiting...
Чем можно заменить lynx -crawl -traversal ?

 ,

Nuclerdragon
()

Asterisk 14.1.2 с кодеком OPUS

Дорого времени суток всем!
Пытаюсь собрать Asterisk 14.1.2 с кодеком OPUS, но ничего не получается.
На asterisk.org сказано, что Asterisk наконец то стал официально поддерживать кодек OPUS, но как это работает то?

Что я пробовал сделать:

./configure
make menuselect
заходим в Codec Translator в разделе External видим code_opus, но выбрать его нельзя, предлагается загрузить его отдельно: Download the Opus codec from Digium. See http://downloads.digium.com/pub/telephony/codec_opus/README в инструкции по ссылке сказано: что code_opus будет загружен автоматически, его только нужно выбрать в make menuselect, т.е. у нас получился замкнутый круг, две инструкции друг на друга ссылаются.

Затем я нашёл параметр "--with-opus=PATH use Opus files in PAT"

./configure --with-opus=PATH
но здесь возникает вопрос, куда должен ссылаться PATH, пробую прописать путь до исходников OPUS, не помогло, пробую собрать OPUS и прописать путь до opus-1.1.3 затем до opus-1.1.3/include, затем до opus-1.1.3/lib (opus-1.1.3 - у меня это каталог в который я поставил Opus и соответственно его версия), всё это не помогло.

Ладно, качаем Opus с http://downloads.digium.com/pub/telephony/codec_opus/asterisk-14.0/x86-64/, распаковываем и прописываем путь до этого каталога, и опять ничего.

Как же это работает?

 ,

Nuclerdragon
()

Postfix SMTP relay поиск получателя в MySQL

Доброго дня!

Есть Postfix smtp relay, который принимает почту из Интернета и пересылает на внутренний почтовый сервер.

Есть доступ к удалённому MySQL серверу на котором есть база данных с именем «vmail» и есть таблицы:

1. Таблица: domain Колонка: domain
2. Таблица: alias Колонка: address
3. Таблица: mailbox Колонка: username

Нужно настроить фильтр входящей почты,
сначала проверять знаем ли мы домен получателя (*@example.com), если не знаем то отбрасываем соединение,
далее если домен знаем то ищем полное имя получателя в двух таблицах alias (Колонка: address) и mailbox (Колонка: username), например user@example.com, если получатель с таким именем найден то почта уходит на наш внутренний релей.

Сейчас почта уже ходит, но проверка имени получателя в базе данных MySQL не настроена.

Пожалуйста помогите с настройкой, кто разбирается, заранее спасибо!

 , ,

Nuclerdragon
()

Реализация Full Cone NAT

Доброго вечера Коллеги!

Как поднять Full Cone NAT, нужен патч к iptables?

Для тех кто не в курсе, -j SNAT это Source NAT и к Full Cone NAT отношения не имеет.

 

Nuclerdragon
()

SMTP front-end

Доброго дня! Есть два физических сервера с белыми IP, MX1 и MX2. В локальной сети есть mail сервер с серым IP. Сейчас mail сервер отправляет почту через SMTP релей на MX1, входящая почта приходит только через MX1, на котором происходит проброс 25 порта (DNAT). Клиенты почтового сервера подключаются к нему по SMTPS, IPAPS, так же через DNAT на MX1.

Вопрос, как организовать приём почты через MX1 и MX2, так что бы письма пересылались на внутренний почтовый сервер?

Клиенты могут попадать на почтовый сервер через nginx (mail proxy) с авторизацией, но nginx нe умеет пересылать smtp без авторизации.
Попробовал настроить smtp (postfix) релей на mx1, mx2, который принимает почту ото всех и отправляет на внутренний сервер, это работает, но такой релей пытается переслать любые письма соответственно, внутренний postfix не примет левые письма, но релей то уже ответит что письмо принято...

 

Nuclerdragon
()

SMPT релей (переброс почты между двумя почтовыми серверами в сети)

Доброго дня!
Нужно настроить открытый SMTP релей (postfix) для отправки писем с любых почтовых ящиков на любые от вышестоящего smtp сервера. Ограничение только одно, письма принимать только от вышестоящего smpt сервера (фильтр по IP адресу).
Может кто-нибудь подсказать правильный конфиг на этот случай?

Зачем это нужно?
Основной SMTP сервер запущен в сети на сервере с одним серым IP и есть несколько отдельных маршрутизаторов с выходом в Интернет, т.е. default route идёт через один маршрутизатор + часть внешних сетей (одна страна) маршрутизируются через второй маршрутизатор. Почту отправлять нужно строго через первый маршрутизатор, даже когда домен получателя почтового сообщения маршрутизируется через второй маршрутизатор.
Почему строго через первый маршрутизатор?
Потому, что PTR запись мы можем контролировать только для первого маршрутизатора, на втором маршрутизаторе динамический IP и соответственно динамическая PTR запись (изменить это невозможно).

 

Nuclerdragon
()

Сборка OpenVPN со static OpenSSL libraries

OpenVPN 2.3.10 не собирается со static OpenSSL libraries.

Что я делаю: 1. Собираю последнею версию openssl 1.0.1x

./config --prefix=/opt/lib/openssl-1.0.1r threads zlib shared
2. Собираю OpenVPN со static OpenSSL 1.0.1r и LZO 2.09 libraries (причём с 1.0.2x OpenVPN на отрез отказывается собираться)
export PKG_CONFIG_LIBDIR="/opt/lib/openssl-1.0.1r/lib/pkgconfig/"
export CPPFLAGS="-I/opt/lib/openssl-1.0.1r/include/"
export LDFLAGS="-L/opt/lib/openssl-1.0.1r/lib/"
export OPENSSL_SSL_LIBS="-L/opt/lib/openssl-1.0.1r/lib/ -lssl"
export OPENSSL_SSL_CFLAGS="-I/opt/lib/openssl-1.0.1r/include/openssl/"
export OPENSSL_CRYPTO_LIBS="-L/opt/lib/openssl-1.0.1r/lib/ -lcrypto"
export OPENSSL_CRYPTO_CFLAGS="-I/opt/lib/openssl-1.0.1r/include/openssl/"
export LZO_LIBS="-L/opt/lib/lzo-2.09/lib/ -llzo2"
export LZO_CFLAGS="-I/opt/lib/lzo-2.09/include/lzo/"
./configure \
--prefix=/opt/openvpn-2.3.10 \
--enable-static \
--enable-iproute2
OpenVPN configure log:
...
checking for OPENSSL_CRYPTO... yes
checking for OPENSSL_SSL... yes
checking lzo/lzoutil.h usability... yes
checking lzo/lzoutil.h presence... yes
...
OpenVPN говорит, что нашёл openssl и lzo по указанным мной путям, иду дальше make && make install завещаются без ошибок, вроде бы как всё хорошо, но как бы не так:
/opt/openvpn-2.3.10/sbin/openvpn --version
OpenVPN 2.3.10 x86_64-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Feb 11 2016
library versions: OpenSSL 1.0.1f 6 Jan 2014, LZO 2.09
Originally developed by James Yonan
Copyright (C) 2002-2010 OpenVPN Technologies, Inc. <sales@openvpn.net>
Compile time defines: enable_crypto=yes enable_crypto_ofb_cfb=yes enable_debug=yes enable_def_auth=yes enable_dlopen=unknown enable_dlopen_self=unknown enable_dlopen_self_static=unknown enable_fast_install=yes enable_fragment=yes enable_http_proxy=yes enable_iproute2=yes enable_libtool_lock=yes enable_lzo=yes enable_lzo_stub=no enable_management=yes enable_multi=yes enable_multihome=yes enable_pam_dlopen=no enable_pedantic=no enable_pf=yes enable_pkcs11=no enable_plugin_auth_pam=no enable_plugin_down_root=yes enable_plugins=yes enable_port_share=yes enable_selinux=no enable_server=yes enable_shared=yes enable_shared_with_static_runtimes=no enable_small=no enable_socks=yes enable_ssl=yes enable_static=yes enable_strict=no enable_strict_options=no enable_systemd=no enable_win32_dll=yes enable_x509_alt_username=yes with_crypto_library=openssl with_gnu_ld=yes with_mem_check=no with_plugindir='$(libdir)/openvpn/plugins' with_sysroot=no

В итоге получается, что OpenVPN успешно собрался с LZO 2.09, а вот SSL почему-то 1.0.1f хотя мы собирали со static OpenSSL 1.0.1r.

В системе конечно установлена OpenSSL 1.0.1f. Как заставить OpenVPN не использовать системную библиотеку OpenSSL? (Сборка происходила на Ubuntu, kernel 4.2.5)

 , ,

Nuclerdragon
()

OSPF через OpenVPN, когда одна сторона за NAT'ом

День добрый!

Нужно поднять OSPF поверх OpenVPN поднятом между двумя Linux серверами. Основная проблема здесь в том, что один из серверов находится за NAT'ом. В чем спрашивается проблема то? Если использовать топологию p2m, то клиента из-за NAT'а спокойно подключится к серверу но в этом случае на стороне сервера будет недостаточно прописать маршруты через tun/tap интерфейс OpenVPN, так-как OpenVPN предполагает, что к нему могут подключится несколько клиентов и за каждым клиентом могут находится разные подсети, а интерфейс в системе один, для решения этой проблемы OpenVPN использует правила внутренней маршрутизации, параметр --iroute. С помощью iroute прописываются маршруты на конкретного клиента и это замечательно работает, но мне же нужен OSPF, я не хочу руками прописывать iroute, маршруты на клиента не фиксированы у меня.

Собственно p2m режим мне и не особо нужен, я могу для разных клиентов поднять отдельный OpenVPN сервер, но тут тогда встаёт вопрос как соединить два OpenVPN сервера точка-точка, если одна из сторон за NAT'ом?

Есть у кого идеи как поднять OSPF через OpenVPN, когда одна сторона за NAT'ом или как победить/обойти --iroute?

 , , ,

Nuclerdragon
()

RSS подписка на новые темы