LINUX.ORG.RU

Сообщения abr_linux

 

Pgpool-2 не использует slave для балансировки нагрузки

На двух серверах установлен postgres 9.5.10 из репозитория ubuntu xenial. На главном сервере установлен pgpool 3.7.0 из исходников (./configure --with-openssl --with-memcached=/usr/include/memcached). Конфиг pgpool-а такой: https://pastebin.com/qWWgejQN

Здесь видно, что я указал обе ноды, отключил репликацию средствами pgpool, включил опцию master/slave и добавил кеширование memcached. Но что бы я ни делал, пулер не хочет обращаться к slave-ноде:

postgres=# show pool_nodes;
 node_id |    hostname    | port | status | lb_weight |  role   | select_cnt | load_balance_node | replication_delay 
---------+----------------+------+--------+-----------+---------+------------+-------------------+-------------------
 0       | localhost      | 5433 | up     | 0.500000  | primary | 0          | true              | 0
 1       | host2          | 5433 | unused | 0.500000  | standby | 0          | false             | 0
(2 rows)

Что можно предпринять? В любой статье пишут, что это очень легко, но я уже пробовал даже заюзать идущий в комплекте конфиг, который заточен именно на streaming replication и всё равно все запросы идут только на мастер.

 , ,

abr_linux
()

не работает dovecot sieve редирект на exim при MAIL FROM = <>

Добрый день! Установлен dovecot 2.2.22 с плагином sieve, а также exim 4.86_2. Оба пакета установлены на Ubuntu 16.04 из репов. Проблема в следующем: один сервис рассылок пишет нам письмо, указав в заголовке конверта MAIL FROM пустую строку, а если точнее просто «<>». Exim такое письмо принимает, передаёт его dovecot-у. Последний в свою очередь пробегается плагинам и говорит им сделать то, что они должны сделать. В частности sieve должен выполнить правила для ящика адресата. В ящике находится правило redirect. Sieve, обрабатывая редирект, подключается к exim для отправки письма дальше, запрашивая у dovecot параметры письма: заголовки и данные конверта. Dovecot в свою очередь смотрит, что у него поле отправителя путое. Думает, что так дело не пойдёт и подставляет туда <MAILER-DAEMON>. Это значение передаётся exim-у, а тот в свою очередь отвергает письмо с ошибкой «sender address must contain a domain».

Самое печальное, что конфигами ситуацию не исправить. У dovecot замена пустого отправителя на MAILER-DAEMON зашита программно. Как проверка домена отправителя у exim. И вроде как всё поведение даже вписывается в RFC. Но письмо как-то надо редиректить дальше. Более того, так как возникает ошибка обработки правил, возникает и ошибка доставки. Письмо не появляется даже в ящике адресата и торчит в очереди exim. Что в данной ситуации делать? Патчить код и перекомпиливать? Если да, то кого из них? Или может есть какие-то обходные пути?

 , ,

abr_linux
()

Почему почтовые сервера проверяют не тот IP на SPF?

Настраиваю Axigen, хочу сделать редирект с одного ящика на другой, например на GMail. И не могу понять, почему GMail проверяет не тот IP адрес.

Delivered-To: recipient@gmail.com
Received: by 10.112.130.97 with SMTP id od1csp629608lbb;
        Thu, 14 Apr 2016 07:02:25 -0700 (PDT)
X-Received: by 10.112.204.5 with SMTP id ku5mr6590155lbc.31.1460642545495;
        Thu, 14 Apr 2016 07:02:25 -0700 (PDT)
Return-Path: <info@sender.org>
Received: from mx.relay.ru (mx.relay.ru. [11.22.33.44])
        by mx.google.com with ESMTPS id n195si15723784lfn.163.2016.04.14.07.02.25
        for <recipient@gmail.com>
        (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128);
        Thu, 14 Apr 2016 07:02:25 -0700 (PDT)
Received-SPF: softfail (google.com: domain of transitioning info@sender.org does not designate 11.22.33.44 as permitted sender) client-ip=11.22.33.44;
Authentication-Results: mx.google.com;
       spf=softfail (google.com: domain of transitioning info@sender.org does not designate 11.22.33.44 as permitted sender) smtp.mailfrom=info@sender.org
Received: from mx.relay.ru (127.0.0.1) by mx.relay.ru (Axigen)
 with ESMTPS id 0AE624; Thu, 14 Apr 2016 17:02:21 +0300
Received: from info@sender.org by mx.relay.ru (Axigen) with ESMTP id 1C7734;
 Thu, 14 Apr 2016 17:02:21 +0300
Received: from homecall.co.uk (213.164.240.247) by mx.relay.ru (Axigen)
 with SMTP id 1B1478; Thu, 14 Apr 2016 17:02:18 +0300
Message-ID: <094A3D37AAD64BBC9CDA081A1D2F967E@homepc>
From: "Sender" <info@from.org>
To: <user@relay.ru>

Здесь сообщение идёт от info@from.org на user@relay.ru, который принадлежит моему почтовому серверу. Мой почтовик, приняв сообщение должен отправить его дальше на recipient@gmail.com, что собственно и проделывает. Но GMail в итоге думает, что письмо в оригинале пришло не с 213.164.240.247, а с моего 11.22.33.44. Соответственно, кидает его в спам.

Как понять, что лишнее или чего не хватает в заголовках, чтобы письмо правильно редиректилось, чтобы не поадало в спам?

 ,

abr_linux
()

Zabbix agent on is unreachable for 5 minutes

Такое сообщение стало появлятся каждые 6-7 минут после обновления с 2.4 до 3.0 серверной и всех агентских частей. Настройки в conf-файлах не менялись, через веб-интерфейс тоже. Более того, от агента приходят и другие сообщения, то есть, он работает и сервер с ним контактирует. Сервер и проблемный агент лежат на одной машине. Пробовал указывать как 127.0.0.1, так и адрес локалки 192.168.x.x. «zabbix_get -s 127.0.0.1 -k agent.ping» также возвращает «1», в веб-интерфейсе агент зелёный.

В логах сервера появляется вот такое:

1380:20160310:180153.072 Zabbix agent item "iostat.collect" on host "Hostname" failed: first network error, wait for 15 seconds
  1380:20160310:180208.095 resuming Zabbix agent checks on host "Hostname": connection restored

В чём может быть проблема?

 

abr_linux
()

Как в bind добавить отдельную зону без dnssec?

В данный момент у меня стоит опция «dnssec-validation auto» в глобальном разделе options. Мне нужно добавить зону «localdomain.local» с форвардингом на другие DNS-сервера. Конфиг я скопировал с аналогично-переадресуемой зоны:

zone "localdomain.local" {
	type forward;
	forward only;
	forwarders {
		192.168.1.101;
		192.168.1.100;
	};
};

И всё бы ничего, но на тех DNS-серверах не настроен DNSSec, в результате чего я получаю ошибку «Named: error (broken trust chain)».

Проблема решаема установкой dnssec-validation в off, но как по мне, так ето довольно небезопасно.

Можно ли как-то для конкретно моей зоны отключить проверку dnssec, не отключая его для других зон?

Я пробовал разделить зоны на view, в одном опция включена, в другом - выключена. Но задумка не сработала. Тогда я попробовал оставить просто одну вьюху со всеми зонами и отключить dnssec-validation для вьюхи, а из раздела options вобще параметр убрал - не работает.

Как быть?

 ,

abr_linux
()

Postgres 9.4, replication slots, не работает master failover

Вот по етой http://habrahabr.ru/post/245847/ статье была настроена репликация master -> slave. Стал прикручивать pgpool для балансировки и failover-а на случай падения одной из нод, и наткнулся на неприятный момент, что не понимаю, как работает восстановление master-а.

Если после проверки работоспособности слота репликации я отключаю standby, то после его включения данные с мастера подгружаются. Здесь проблем нет никаких.

После того, как я отключаю master, согласно мануалу http://www.postgresql.org/docs/9.0/static/warm-standby-failover.html я должен на standby создать триггер-файл, который даст знать ноде, что она из standby переквалифицировалась в master.

Соответственно, на етой единственной оставшейся ноде я провожу какие-либо действия CREATE, INSERT и пр., изменяющие базу, и жду восстановления бывшего master-а.

Я запустил master. На рабочей ноде автоматически удаляется триггер-файл, а recovery.conf переименовывается в recovery.done. OK. Что дальше?

Мастер пока не синхронизирован, содержит старые данные, репликация, понятное дело, не работает. В мануалах советуют восстановление всего в три шага:

- pg_start_backup на рабочей ноде, временно выполняющую функции мастера

- rsync папки данных с рабочей базы в устаревшую (кроме postgresql.conf, postmaster.pid, postmaster.opts, pg_log/, recovery.done, pg_xlog/)

- pg_stop_backup на той ноде, на которой мы первую команду делали. На данном етапе я получаю NOTICE: WAL archiving is not enabled; you must ensure that all required WAL segments are copied through other means to complete the backup

http://dba.stackexchange.com/questions/83655/postgresql-streaming-replication...

http://habrahabr.ru/post/213409/

Но после етого у меня мастер просто не запускается. Говорит FATAL: could not locate required checkpoint record

В чём ошибка? Я проделываю ети операции вручную, потому что хочу понять, как работает восстановление. pgpool мне уже вынес мозг своими возможностями и кучей скриптов и функций, половины которых я пока не совсем понимаю. Хочу пока изучить, как мастер восстанавливается вручную, а затем снова взятся за pgpool.

 , ,

abr_linux
()

Проблема с настройкой ntp сервера. При синхронизации с ним возникает strata too high

Добрый день.

Конфиг ntp-сервера:

driftfile /var/lib/ntp/ntp.drift
statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable
server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org
server ntp.ubuntu.com
restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap

Проверяю сервер

# ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 time.ooonet.ru  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 95.213.132.254  .INIT.          16 u    -   64    0    0.000    0.000   0.000
 ns.assembly.spb .INIT.          16 u    -   64    0    0.000    0.000   0.000
 cello.corbina.n .INIT.          16 u    -   64    0    0.000    0.000   0.000
 golem.canonical .INIT.          16 u    -   64    0    0.000    0.000   0.000

Почему-то у всех пиров stratum = 16, соответственно, при синхронизации с моим серваком возникает ошибка «Server dropped: strata too high».

На форумах пишут, что необходимо открыть порты 123 и 139, но у меня сервак имеет два внешних IP-адреса и файерволл там вобще ничего не блокирует.

Как сделать так, чтобы синхронизация с серваком проходила?

abr_linux
()

Чужой почтовый сервер шлёт письма от имени нашего домена

У нас имеется домен domain.com. Для него существуют A запись:

$ nslookup -q=A domain.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	domain.com
Address: 11.22.33.44

и MX-запись:

$ nslookup -q=MX domain.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
domain.com	mail exchanger = 10 mx.domain.com.

Authoritative answers can be found from:

$ nslookup -q=A mx.domain.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
Name:	mx.domain.com
Address: 11.22.33.44

Настроена обратная запись для IP:

$ nslookup -q=PTR 11.22.33.44 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
44.33.22.11.in-addr.arpa	name = mx.domain.com.

Authoritative answers can be found from:

Настроены SPF и DKIM:

$ nslookup -q=TXT domain.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
domain.com	text = "v=spf1 +mx -all"

Authoritative answers can be found from:
nslookup -q=TXT default._domainkey.domain.com 8.8.8.8
Server:		8.8.8.8
Address:	8.8.8.8#53

Non-authoritative answer:
default._domainkey.domain.com	text = "v=DKIM1\; k=rsa\; t=y\; p=MIGdHA6GSCqdR1PQBP2fp15XeeKThBFr1unKcVEg6sBMU/8Mtsm3RNLBOqnzMeCBbVN1VUaJ4qVMACfYijOGRgNsirleWxGnavmohn965It2su5E2EHWCGHm3EFbfvCHwhraBNIio9aDOHkpeuk7TU5e1jhULme9w0tuihdo0xoqZi5aQhvCr9cOCVZgnvnwoV6uoctxr5fFyDiOJ0FlEkD8l3o0CNRDJPy"

Authoritative answers can be found from:

Тем не менее, какой-то левый сервак начал рассылать от нашего имени вредоносные письма. Я попробовал так же с левого сервака отправлять от нашего имени письма на подконтрольные мне ящики из популярных доменов, типа mail.ru, yandex.ru и пр. И во всех случаях письма попадают в спам. Однако, многие владельцы собственных почтовых серверов получают такие письма во входящие.

Вот заголовки вредоносных писем. IP реальные, адреса получателя и отправителя изменены:

Return-Path: <it@domain.com>
X-Spam-Status: No, hits=0.8 required=10.0
tests=BAYES_00: -1.665,EXTRA_MPART_TYPE: 1,HTML_IMAGE_ONLY_20: 1.546,
HTML_MESSAGE: 0.001,TOTAL_SCORE: 0.882,autolearn=no
X-Spam-Level: 
Received: from mail.pr-lg.ru ([193.105.37.96])
by mail.recipient.ru (Kerio Connect 7.4.3)
for r@recipient.ru;
Mon, 13 Oct 2014 04:43:09 +0400
Received: from gbergbetgbetrbergb (unknown [78.46.243.247])
by mail.pr-lg.ru (Postfix) with ESMTPA id 1A888EAB55
for <r@recipient.ru>; Mon, 13 Oct 2014 04:45:33 +0400 (GMT-4)
Message-ID: <2FD59C30934769FA26236AD7339678C0@gbergbetgbetrbergb>
Reply-To: =?koi8-r?B?5sXExdLBzNjOwdEg88zV1sLBIPPVxMXCztnIIPDSydPU?=
=?koi8-r?B?wdfP1w==?= <vkumskasu@mail.ru>
From: =?koi8-r?B?5sXExdLBzNjOwdEg88zV1sLBIPPVxMXCztnIIPDSydPU?=
=?koi8-r?B?wdfP1w==?= <it@domain.com>
To: <r@recipient.ru>

Что в таком случае можно щё предпринять, чтобы уверить принимающий сервер, что письма не наши?

Каким образом к таким атакам устойчивы сервисы mail.ru, yandex.ru? Ведь у них тоже только SPF и DKIM. Большего я не нашёл

abr_linux
()

Проблема с установкой MSS на шлюзе

Возникла ситуация, что интернет на клиентских компах стал «притормаживать». Я сразу стал грешить на MTU, потому что такая проблема уже давно была, да и признаки все те же. Вот только проблема в том, что на шлюзе уже давно стоит правило

iptables -t mangle -A FORWARD -o ppp0 -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:65495 -j TCPMSS --clamp-mss-to-pmtu
Несмотря на правило, в сети нормально работают только линукс-клиенты, хотя андройды с Play Market-ом тоже коннектятся через раз.

Дамп показал, что при попытке отправки большого пакета, шлюз отвечает ICMP сообщение «Destination unreachable (Fragmentation needed)», с параметром «MTU of next hop: 1492». Клиент подстраивает рамер пакета, отправляет... и снова получает ICMP ответ. Причём, проблема характерна для всех виндовых и нескольких андройд систем. Мой Mint отправляет пакеты такого же размера, но ответа от шлюза не получает.

Пробовал заменять правило на такое:

iptables -A FORWARD -o ppp0 -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1000
но оно похоже совсем не работает. Посколько в ICMP сообщении параметр «MTU of next hop» также равен 1492.

Может, я что-то не понимаю в правиле TCPMSS? Я пробовал после етого правила ставит "-j LOG", чтобы убедится в том, что правила в разделе FORWARD отрабатывают. Логирование показало, что отрабатывают.

Что можно предпринять, кроме уменьшения на всех клиентах MTU?

abr_linux
()

/etc/network/interfaces, два интерфейса dhcp, какой из них будет default?

У меня есть два провайдера, которые дают IP-адрес по dhcp. Соответственно, конфиг /etc/network/interfaces такой:

auto eth0 iface eth0 inet static address 192.168.3.3 netmask 255.255.255.0

auto eth1 iface eth1 inet dhcp

auto eth3 iface eth3 inet dhcp

Как мне указать, что eth1 должен безусловно быть default-маршрутом? Система: Ubuntu 12.04 Server

abr_linux
()

DI-804HV не пингует удалённый адрес по IPSEC

В текущей конфигурации роутер стабильно поддерживал туннель на протяжении практически года. После очередного отключения света стали происходить непонятные мне вещи. Туннель поднимается. Даже проходят пинги из удалённой сети на роутер и локалку. Но вот из локалки не пингуется ни один адрес удалённой сети, даже с самого роутера. Пробовал полностью сбросить настройки, настроил заново, результата - ноль. IP адрес роутера: 192.168.3.1 Локалка: 192.168.3.0/24 Удалённый шлюз: 192.168.1.1 Удалённая сеть: 192.168.1.0/24

Пинги идут: 192.168.1.1 -> 192.168.3.1 192.168.1.1 -> 192.168.3.0/24 (стабильно теряется первый пакет)

Пинг не идёт: 192.168.3.0/24 -> 192.168.1.0/24 192.168.3.1 -> 192.168.1.1

Причём, на удалённом шлюзе не ловятся пакеты с внешнего адреса роутера, если пинговать удалённую сеть. Ощущение, будто на самом роутере пакеты, отправленные в удалённую сеть, просто не заворачиваются в туннель. Если кто сталкивался с такой проблемой, подскажите решение, пжлст.

PS. Удалённый шлюз Ubuntu 12.04 Server.

abr_linux
()

Ubuntu: Откуда считывается environment в ssh при подключении?

Собрал openssh из исходников. Заметил, что при подключении переменные окружения не такие, как если подключится к ssh из репозитория. Если сделать sudo -u user bash, то появляется всё нужное окружение. Кто знает, как ето реализовано в Ubuntu? Дело в том, что в системе с установленным openssh из репов файлов ~/.bashrc, ~/.profile, ~/.ssh/environment, ~/.ssh/rc и прочих, описанных в man я просто не нашёл. Мне по сути в моём самосборном sshd необходимо переопределять PATH, LC_* для каждого подключаемого пользователя автоматически.

abr_linux
()

В bash цикл while останавливается, если в теле цикла есть выполнение ssh

Есть такой код:

#!/bin/bash
ssh root@$server "cat /home/dimon/list | grep '^comp" | while read LINE
do
        type=`echo $LINE | awk {'print $2'}`
        path=`echo $LINE | awk {'print $3'}`

        DIR_EXISTS=`ssh root@$server "test -d $path" && echo 0 || echo 1`
done
Такой код в цикле исполнится только один раз. Если убрать строчку с DIR_EXISTS, то цикл выполнится нужное количество раз.

Суть в том, что я хочу на удалённой машине проверить существование каталога. Почему скрипт себя так ведёт? Есть ли какие-то другие способы проверить существование удалённого каталога? Очень желательно по ssh

abr_linux
()

Как приостановить один из процессов копирования в Nautilus/Nemo

По глупости запустил несколько процессов копирования на флеху. Естественно, и сам процесс копирования и окружение стали подвисать.

Есть ли способ временно приостановить n-1 процессов копирования, чтобы они продолжались по-одному?

Нашёл через htop процессы nemo со статусом «D», которые я принял именно за процессы копирования. Дал всем, кроме одного приоритеты -5, а одному +3 - не помогает, продолжаются все равномерно.

Попытался через SIGSTOP затормозить один из дочерних процессов - затормозили все.

Что щё можно предпринять?

abr_linux
()

Что деалет PHP в свободное время?

Есть скрипт:

<?
	$arr = array();
	for ($i = 0; $i < 50000001; ++$i)
		$arr['a$i'] = true;

	$start = microtime(true);
	$b = isset($arr['a510000000']);
	echo microtime(true) - $start;

	$arr2 = array();
	for ($i = 0; $i < 50000001; ++$i)
		$arr[$i] = 'a$i';

	$start = microtime(true);
	$b = in_array('a510000000', $arr2);
	echo microtime(true) - $start;
?>

Выполняю через `php ./script.php`

Первые 10 секунд он висит без вывода, видимо, заполняет первый массив. Потом выплёвывает время поиска в массиве через isset. Потом снова 10 секунд висит, видимо, заполняя второй массив. Потом выплёвывает время поиска через in_array.

А вот что скрипт делает потом в течение почти полминуты?

abr_linux
()

Кто-то подменяет /usr/sbin/sshd

Периодически наблюдаю, что контрольная сумма демона ssh меняется. После первых подобных случаев поставил auditd.

Поймал момент подмены файла:

7944. 11/27/2013 18:24:33 (null) inode=171308 dev=fc:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 87 yes /usr/bin/install -1 26491
7945. 11/27/2013 18:24:34 /usr/sbin/ 2 yes /usr/bin/install -1 26493
7946. 11/27/2013 18:24:34 (null) inode=172852 dev=fc:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 190 no /usr/bin/install -1 26494
7947. 11/27/2013 18:24:34 (null) inode=172852 dev=fc:01 mode=0100755 ouid=0 ogid=0 rdev=00:00 91 yes /usr/bin/install -1 26495
7948. 11/27/2013 18:24:34 (null) inode=172852 dev=fc:01 mode=0100600 ouid=0 ogid=0 rdev=00:00 82 yes /usr/bin/strip -1 26497
7949. 11/27/2013 18:24:34 /usr/sbin/sshd 90 yes /usr/bin/strip -1 26498
7950. 11/27/2013 18:24:34 /usr/sbin/sshd 92 yes /usr/bin/strip -1 26499
7951. 11/27/2013 18:24:34 /usr/sbin/sshd 90 yes /usr/bin/strip -1 26500
7952. 11/27/2013 18:24:34 /usr/sbin/sshd 90 yes /usr/bin/install -1 26501

Выхлоп auth.log:

Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:21:08 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:21:09 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request window-change reply 0
Nov 27 18:21:09 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:21:09 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req window-change
Nov 27 18:22:52 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:22:52 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:22:52 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:23:32 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:23:32 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:23:32 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:23:52 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:23:57 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:23:57 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:23:57 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:24:06 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:24:06 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:24:06 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:24:16 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:24:16 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:24:16 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:24:26 i-1930-8513-VM sshd[27690]: debug1: server_input_channel_req: channel 0 request winadj@putty.projects.tartarus.org reply 1
Nov 27 18:24:26 i-1930-8513-VM sshd[27690]: debug1: session_by_channel: session 0 channel 0
Nov 27 18:24:26 i-1930-8513-VM sshd[27690]: debug1: session_input_channel_req: session 0 req winadj@putty.projects.tartarus.org
Nov 27 18:24:35 i-1930-8513-VM sshd[10233]: Received signal 15; terminating.
Nov 27 18:24:35 i-1930-8513-VM sshd[15571]: Set /proc/self/oom_adj from -17 to -17
Nov 27 18:24:35 i-1930-8513-VM sshd[15571]: debug1: Bind to port 22 on 0.0.0.0.
Nov 27 18:24:35 i-1930-8513-VM sshd[15571]: Server listening on 0.0.0.0 port 22.
Nov 27 18:24:35 i-1930-8513-VM sshd[15571]: debug1: Bind to port 22 on ::.
Nov 27 18:24:35 i-1930-8513-VM sshd[15571]: Server listening on :: port 22.

Вот конфиг sshd_config:

# Package generated configuration file
# See the sshd_config(5) manpage for details

# What ports, IPs and protocols we listen for
Port 22
# Use these options to restrict which interfaces/protocols sshd will bind to
#ListenAddress ::
#ListenAddress 0.0.0.0
Protocol 2
# HostKeys for protocol version 2
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
#Privilege Separation is turned on for security
UsePrivilegeSeparation yes

AllowGroups ssh
PermitRootLogin no

# Lifetime and size of ephemeral version 1 server key
KeyRegenerationInterval 3600
ServerKeyBits 768

# Logging
SyslogFacility AUTH
LogLevel Debug

# Authentication:
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes

RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile	%h/.ssh/authorized_keys
AuthorizedKeysFile	/etc/ssh/sshd_files/%u/authorized_keys

# Don't read the user's ~/.rhosts and ~/.shosts files
IgnoreRhosts yes
# For this to work you will also need host keys in /etc/ssh_known_hosts
RhostsRSAAuthentication no
# similar for protocol version 2
HostbasedAuthentication no
# Uncomment if you don't trust ~/.ssh/known_hosts for RhostsRSAAuthentication
#IgnoreUserKnownHosts yes

# To enable empty passwords, change to yes (NOT RECOMMENDED)
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Change to no to disable tunnelled clear text passwords
#PasswordAuthentication yes

# Kerberos options
#KerberosAuthentication no
#KerberosGetAFSToken no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes
#UseLogin no

#MaxStartups 10:30:60
#Banner /etc/issue.net

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

Subsystem sftp /usr/lib/openssh/sftp-server

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

Коннектится могут пользователи из группы ssh, причём только у троих из них есть sudoers-права. Пароли сложные, меняли их несколько раз. Есть авторизация по ключам. Приватные ключи лежат только на компьютерах, откуда происходит коннект.

root запрещён.

Какими щё средствами можно понять, как происходит атака?

Что ето: уязвимость ssh, скомпроментированы ключи, тупо перебор пароля?

abr_linux
()

Компиляция PHP. Вечная проблема с конфигом

Вдоль и поперёк начитался манов по компиляции php, но загрузка конфига меня до сих пор выбивает из колеи.

Проблема в том, что php-cli не находит php.ini

Строка configure:

./configure  --enable-fpm --with-mcrypt --enable-mbstring --enable-soap --with-openssl --with-mysql --with-mysql-sock --with-gd --with-jpeg-dir=/usr/lib --enable-gd-native-ttf --with-pdo-mysql --with-libxml-dir=/usr/lib --with-mysqli=/usr/bin/mysql_config --with-curl --enable-zip --enable-sockets --with-zlib --enable-exif --enable-ftp --with-iconv --with-gettext --enable-gd-native-ttf --with-t1lib=/usr --with-freetype-dir=/usr --prefix=/usr/local/php-5.4.22 --with-fpm-user=www-data --with-pgsql --with-pdo-pgsql --enable-bcmath
При таких опциях php-cli будет искать файл php.ini в каталоге /usr/local/php-5.4.22/etc, тогда как php-fpm найдёт его в каталоге /usr/local/php-5.4.22/lib

Пробуем подсказать компилятору, что файлик будет один, дописываю опцию '--with-config-file-path=/usr/local/php-5.4.22/etc/php.ini'. Ок, php-fpm теперь видит конфиг правильно, но при запуске php -i получаем «Loaded Configuration File => (none)»

Пробую подсказать, что файл искать стоит в директории etc, дописываю '--with-config-file-scan-dir=/usr/local/php-5.4.22/etc'. Получаю аналогичное «Loaded Configuration File => (none)»

Если запускать php-cli с опцией -c, то конфиг подгружается. Естественно, файлы на местах.

В чём причина такого поведения PHP?

abr_linux
()

Захват с камеры в OpenWRT без обработки

Ищу программу для того, чтобы можно было захватывать поток с камеры и передавать его по сети на сервер. Тот, в свою очередь уже будет обрабатывать видео. Цель: уменьшение нагрузки на проц. Камера Logitech C270 HD. Даёт, само собой HD-качество. Палитра: YUYV.

`cat /dev/video0' не работает. Как я понимаю, дело в том, что на камеру нужно подавать какие-то управляющие данные или как-то правильно обрабатывать прерывания.

Для OpenWRT часто советуют mjpg_streamer, но он использует обработку видео. Без задания fps и resolution что-то получить с камеры вобще не удаётся. Самое максимальное, что потянул роутер - 320x240x10fps. Далеко от HD.

Копался в настройках motion. Но он тоже оказался с преднастройками разрешения и fps. На компе выдвал загрузку проца в 0.5%. Для моего роутера ето будет все 150%.

На компьютере пробовал захватывать поток при помощи `mencoder tv:// -ovc copy -tv noaudio -o video.dump`. В результате получался несжатый поток, который даже проигрывался Totem. Нагрузка проца чуть ли не нулевая, чего не удавалось добится другими средствами захвата. Минус в том, что нет реализации в OpenWRT.

Есть ли какие-то щё средства для того, чтобы получить необработанный raw-поток с камеры, чтобы не грузить проц?

abr_linux
()

mbsync не бекапит подпапки почтового ящика

Конфиг программы:

IMAPAccount user@domain.ru
Host mx.domain.ru
User user@domain.ru
Pass ********
UseIMAPS no
UseSSLv2 no
UseSSLv3 no
UseTLSv1 no

IMAPStore remote
Account user@domain.ru

MaildirStore local
Path "~/mailbackups/user@domain.ru/"
Inbox "~/mailbackups/user@domain.ru/Inbox"

Channel user@domain.ru
Master :remote:
Slave :local:
Pattern *
Create Slave
SyncState *

Проблема в том, что при составлении списка папок не учитываются подпапки. Лог mbsync выдаёт, что при запросе LIST передаётся значение «%», а не «*».

Хотя, в том же мануале написано:

Patterns are IMAP4 patterns, i.e., * matches anything and % matches anything up to the next hierarchy delimiter.

При замене строки «Pattern *» на «Pattern %» тоже передаётся «%». Получается, что mbsync не видит разницы между «*» и «%» и в любом случае запрашивает верхний уровень папок. Как его настроить так, чтобы он все папки видел?

abr_linux
()

В заголовке письма всплывает не тот IP в поле Received: from

Недавно сайт переехал за CloudFlare в целях отбоя от DDoS.

Все DNS-записи сменились, но при отправке почты в поле Received: from до сих пор присутствует старый IP сервера с сайтом. При том, что почтовый сервер совсем на другом сервере с другим IP.

Вот какие данные:

$ nslookup site.ru
Non-authoritative answer:
Name:	site.ru
Address: 11.22.33.44
Name:	site.ru
Address: 11.22.33.55

$ nslookup -q=MX site.ru
Non-authoritative answer:
site.ru	mail exchanger = 10 mx.site.ru.

$ nslookup mx.site.ru
Non-authoritative answer:
Name:	mx.site.ru
Address: 55.66.77.88

11.22.33.44 и 11.22.33.55 - ето адреса, которые предоставляет CloudFlare, реальный адрес сервера с сайтом - 22.22.22.22.

55.66.77.88 - адрес почтового сервера.

Письмо приходит с вот таким заголовком:

Received: from mx.site.ru ([22.22.22.22])
        by mx.google.com with ESMTPS id d6si9120687laa.143.2013.11.05.02.05.39
        for <*****@gmail.com>

Каким образом в заголовок попадает реальный IP сервера сайта, который даже не связан с mail-сервером и адрес которого не числится в DNS?

abr_linux
()

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