LINUX.ORG.RU

Сообщения zlofenix

 

DSA проверка подписи на polarssl

Краткий экскурс https://ru.wikipedia.org/wiki/DSA#.D0.9F.D1.80.D0.BE.D0.B2.D0.B5.D1.80.D0.BA....
Есть такая либа - polarssl, нынче называется mbedtls, суть проблемы в том, что в ней нет DSA, но есть большие числа, с созданием подписи проблем не возникло, а вот проверка - никак не идет.
В openssl - есть готовая функция, которая вычисляет v, а в protossl - нет, нашел в интернетах вариант v = (g^u1 * y^u2 mod p) mod q = (((g^u1 mod p) * (y^u2 mod p)) mod p) mod q - но либо криво записал, либо просто не сработало.
В общем очень нужна помощь с написанием этого чуда правильно. Относительно формулы выше выглядит так:

mpi_inv_mod(&w, &s, &q); - 1й шаг
mpi_mul_mpi(&u1, &hash, &w);
mpi_mod_mpi(&u1, &u1, &q); - 2й шаг
mpi_mul_mpi(&u2, &r, &w);
mpi_mod_mpi(&u2, &u2, &q); - 3й шаг, тут все правильно.
mpi_exp_mod(&u1, &g, &u1, &p, &t);
mpi_exp_mod(&u2, &pub, &u2, &p, &t);
mpi_mul_mpi(&v, &u1, &u2);
mpi_mod_mpi(&v, &v, &p);
mpi_mod_mpi(&v, &v, &q);
bool ret = mpi_cmp_mpi(&v, &r) == 0;

Фактически больше надо помощи с тем, как формулу можно иначе записать, т.к. не все функции есть в либе.

 , ,

zlofenix
()

Проблема с пробосом портов в впне

На меня пошел хороший ддос, пришлось прятаться через защищенную виртуалку, нашел на openvz, но без GRE, пришлось костылями, выбор пал на peervpn, туннель настроился легко, пинги работают, с виртуалки для теста файлы качаются с моего сервера через веб.
Сделал:
iptables -t nat -A PREROUTING -p tcp --dport 8888 -j DNAT --to-destination впн_ип_моего_серва:80
iptables -t nat -A POSTROUTING -s впн_ип_моего_серва -j SNAT --to внешний_ип_виртуалки
И, разумеется, ничего не сработало, не подключается ничего на 8888 порт виртуалки.
На моем сервере через tcpdump вижу что пакеты приходят, но не вижу чтоб уходили.

net.ipv4.ip_forward = 1 на виртуалке стоит

Может еще что зарезано провайдером виртуалки или что это может быть?
Саппорт виртуалки укатился, поэтому пнуть за отсутствие обещанного GRE и на эту тему не выходит.

Виртуалка под центосью, если что. Опенвпн городить не хотелось, слишком громоздко.

Как всегда забыл: впн только для связи между серверами, шлюзы не меняются. Если есть вариант связи лучше - буду только рад.

 ,

zlofenix
()

Openvpn странно себя ведет

Есть основной офис и филиалы, связь между ними на мерзком керио, которому нужен отдельный комп в роли шлюза, но работает. Решили таки 1 перевести на openvpn и коробки от длинка.
Задолго до этого настроил сервер под дебианом, все было нормально, из дома связь была стабильная со всеми через него.
Вчера таки поставил в 1 филиал DSR-150, там - интернет работает стабильно, как вчера коробка подключилась к впн - так и работает без отвалов, пинги стабильно идут, со всех сторон во все стороны, но вот удаленка через mstsc и radmin - отваливается, раз в пару минут примерно. Радмин - просто закрывается, mstsc - подвисает и либо оживает, либо переподключается.
С чем это может быть связано и как лечить?
А, с дома все работало великолепно, но там обычным openvpn клиентом подключался, а не роутером.

port xxxxx
proto tcp
dev tun
ca ca.crt
cert server.crt
key server.key
dh dh2048.pem
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
client-config-dir ccd
#куча пушей роутов и просто роутов
client-to-client
keepalive 10 120
tls-auth ta.key 0
#cipher DES-EDE3-CBC  # Triple-DES, коробка не может в него
cipher AES-256-CBC
#comp-lzo
max-clients 100
user nobody
group nogroup
persist-key
persist-tun
status openvpn-status.log
log         /var/log/openvpn.log
verb 3

Стащил конфиг от роутера:
client
remote xxxx
port xxxxx
proto tcp
cipher AES-256-CBC
auth SHA1
ca /var/certs/openvpn/ca.crt
cert /var/certs/openvpn/server.crt
key /var/certs/openvpn/server.key
tls-auth /var/certs/openvpn/ta.key 1
dev tun1
daemon
writepid /var/run/openvpn.pid
log /var/openvpn/openvpn.log
verb 3
persist-tun
persist-key
reneg-sec 0
auth-retry nointeract

В логах у сервера и клиента - вообще никаких ошибок, единственное, что там есть - каждый час обновление тлс.

 , ,

zlofenix
()

Нужен профайлер

Есть очень многопоточный софт на с++, с чудесными утечками памяти, чем их можно найти под дебианом?
Валгринд не может искать утечки в многопоточном, т.к. все потоки выполняет в одном, из-за чего до утечек даже дойти не успевает.
Желательно профайлер без необходимости ставить иксы хотя бы на сервере.

 ,

zlofenix
()

Нужна помощь с самописным вебсервером

Основной код https://bitbucket.org/zlofenix/temp/src

Есть общая кодобаза(куски, отвечающие за сеть - в архиве) для разных проектов, один из них - нормальный сетевой софт, в котором подключение не рвется после каждого запроса и может держаться сутками и в нем все нормально, относительно.
А есть https вебсервер, (ZS в архиве, SSLSocket и WebServerSocket) и он даже работает, не претендую на идеальный код, хотя если кто прокомментирует - буду рад, так вот - несколько дней вебсерв спокойно принимает подключения и выдает ответы, но потом, без ошибок и прочего, перестает, хром говорит ERR_CONN_RESET, а почему - отловить никак не выходит, т.к. сутки-двое работает без проблем, а все время держать valgrind - весьма затруднительно.
Кстати несколько часов гонял под валгриндом - никаких ошибок не было.
Может кто-то сможет осилить этот чудокод и увидеть где я ошибся?
В качестве либы для шифрования - polarssl 1.3.7.
1 вещь в архив забыл положить - сокет закрывается через shutdown(fd, SHUT_RDWR);close(fd);
Как всегда забыл - очень давно, на примерно таком же коде, но без SSL происходила та же фигня, т.е. маловероятно что дело в шифровании.

 , , ,

zlofenix
()

Не доходит до accept при большом количестве соединений

Есть хитрый север(tcp, не блокирующие сокеты), живет на 3х портах через listen(sock, 5) на каждый, далее сокет загоняется в epoll(EPOLLET), как и все сокеты входящих соединений.
Все это обрабатывают 6 потоков, в которых живет epoll_wait, при появлении данных - сразу разбор пакетов и их обработка в принявшем же потоке.
И пока подключений мало 500-1000 - все работает нормально, но когда количество подключений подбирается к 2-2.5к до accept доходят уже не все входящие подключения, при этом запись/чтение в уже подключенные сокеты идет без проблем и задержек.
Смотрел через gdb - почти всегда все потоки висят в epoll_wait, т.е. это не из-за долгой обработки пакетов.
Если наглядно: сразу после accept добавил логов на свой ип, попробовал подключится - connect на клиенте прошел без проблем, на сервере же accept случился только секунд через 30, если вообще случился, чаще клиент отваливается раньше.
На случай чего - tcpdump на сервере показывает попытку подключения сразу.
Собственно что это может быть за колдунство и где его исправлять?

 , , ,

zlofenix
()

Помогите с конфигом для эксима

Помогите написать конфиг/фильтр/что-то еще:
Есть несколько сайтов, работающих под nginx+php-fpm, у каждого сайта свой php процесс, запущенный от своего пользователя, в php.ini включено mail.add_x_header, необходимо что бы exim отправлял почту(dc_eximconfig_configtype='internet') только если в базе найдена запись с uid пользователя(из x-header) и почтой отправителя(from), в остальных случаях не отправлять ничего.

 , ,

zlofenix
()

Почтовик для отправки писем с сайта

Подскажите что поставить и как настроить, подходящее под условия:
1. Нужна только отправка писем, прием не нужен вообще.
2. Отправка писем должна идти без пересылки через яндекс/гугл/прочее, т.е. как тот же exim-daemon-light например.
3. Самое важное: исходящий адрес(или несколько) должен быть закреплен за пользователем, т.е. чтоб пользователь не мог ничего отправить не от своего ящика. Есть несколько сайтов, работают под php-fpm, запущенных от разных пользователей, нужно чтоб они могли слать почту только от собственных ящиков, под своими же доменами.
4. Желательно хранить список пользователь(или uid)-почта в mysql базе.
5. Отправка уведомлений вида mail delivery failed на адрес отправителя - совсем не нужна, exim это дело очень любит.

 ,

zlofenix
()

Как правильно раздать права на папки?

Есть Х папок и Х же пользователей, надо сделать чтоб каждый пользователь мог только в своей папке читать/писать файлы, ну и просматривать содержимое тоже только свое.
А сложность вот в чем: должен быть еще 1 пользователь, желательно не рут, который должен читать/писать/смотреть во все эти папки.
Как лучше всего это реализовать?

 

zlofenix
()

exim4 и извращения с доменом

Есть домен, на нем подключена яндекс.почта и есть exim, отправляющий почту с этого домена, без участия яндекса.
Суть проблемы в том, что если на сервере поставить hostname домен - почта без проблем уходит на всякие mail.ru и прочие почтовики, но не может уйти на яндекс почту у домена, т.к. exim отправляет сам себе и не находит ящиков, что логично.
А если поставить hostname на внутреннее имя сервера - почта без проблем приходит на яндекс, но mail.ru и прочие ругаются на HELO.

Как можно решить эту проблему? Хочется чтоб и домен нормальный в HELO шел и почта уходила на яндекс от домена.

 , ,

zlofenix
()

openssl и SSL_read

Есть 1 сервер на плюсах и debian 7.1, сокеты сделаны через epoll, код - предельно простой, но _иногда_ на
bytes = SSL_read(m_sock_ssl, readBuffer.GetBuffer(), space);
происходят падения с кордампом, делаю gdb --batch --eval-command=«bt ful» - получаю что первые два вызова без дебаг символов, а 3й как раз на SSL_read.
libssl1.0.0-dbg стоит, но как его использовать, чтоб отследить суть краша?
Генерация мейк-файлов через cmake.

zlofenix
()

zabbix error 2006

Собственно есть заббикс, он радостно спавнит кучу процессов, которые не менее радостно подключаются к базе, даже при минимальной конфигурации - 18 коннектов.
Большая часть из них просто висит, не посылая ничего в базу, а в базе wait_timeout = 600, соответственно через 10 минут часть коннектов закрывается и если заббикс опомнится и попробует что-то туда послать - приходит ошибка 2006 и не выполнение запроса.

Так собственно вопрос: есть ли возможность обойти эту хрень ?
Желательно не увеличивая wait_timeout.
Или только ковыряние исходников заббикса и вписывание select 1 каждые 60 секунд, например ?

 , ,

zlofenix
()

Падает/перезагружается система

Есть сервер с debian'ом, сильно ранее с opensuse, на котором живет xen4, собранный из исходников, на сусе был пакетами.
По неизвестной причине перезагружается, причем суся хотя бы раз в 30 дней примерно, а дебиан совсем непонятно, сегодня упал - наверно 2х недель не прошло с последней такой фигни.
В messages и syslog ничего необычного, крон, да хапы rsyslog'а, а потом идет загрузки системы.

Между сусей и дебианом стоял XCP, на центосе - такой фигни не было, серв сам не перезагружался.

Как отследить причину перезагрузок ?
На продакшн сервере такая хрень очень вредит.

zlofenix
()

debian bridge

Есть 1 мост br0:
iface br0 inet static
bridge_ports eth0
address derp.derp.derp.derp
netmask 255.255.255.0
network derp.derp.derp.herp
broadcast derp.derp.derp.255
gateway derp.derp.derp.1
dns-nameservers hurr durr
И он без проблем поднимается при старте системы.
Но есть еще и br1, без привязки к сетевухе, т.к. он является внутренней сетью для виртуалок(xen, сейчас не важно).
Через brctl add br1 и ifup br1 без проблем поднимается, в конфиге прописан так:
auto br1
iface br1 inet static
address 10.0.0.254
netmask 255.255.255.0
Но при старте системы не запускается, почему и как заставить работать ?
Есть теория что из-за отсутствия bridge_ports, но нечего туда вписать.

 

zlofenix
()

Помогите с выбором рейд контроллера

Есть сервер со встроенным LSI Logic / Symbios Logic SAS1068 PCI-X Fusion-MPT SAS (rev 02)
В интернетах пишут что он не может использовать кеш винтов и не держит рейд10, только 1Е(про рейд сам не проверял, сервер далеко).
Посоветуйте что лучше:
1. сделать рейд 1Е
2. сделать софт рейд 0 на 2х хард рейдах 1
3. купить другой контроллер - посоветуйте какой, желательно в пределах 5к рублей.

zlofenix
()

Добавление правила в iptables

Есть возможность сделать особую магию ?
Допустим есть некое правило, как можно при выполнении этого правила добавить новое правило в другую цепочку правил ?
Ну например:
Есть правило на connlimit, если кто-то превысил лимит - заносим его ип в цепочку вечного дропа.

zlofenix
()

DDoSят

Уже 3и сутки буйствует ддос, у меня серв, на нем все на вирт машинах, так вот ддосят машину с вебом, атаку я отбиваю, но основная машина принимает весь поток мусора, и как следствие страдать начинают остальные вирт машины.
Может настройки какие сетевые подогнать на основной или еще что посоветуете ?
По трафу - атака незаметна, просто тупые запросы 1й и той же страницы ххххраз с каждого ип, причем
iptables -I INPUT -p tcp -m tcp --dport 80 -m connlimit --connlimit-above 25 --connlimit-mask 32 -j DROP
не помогает почему-то(но это на вебе, как основную машину защитить я не догадываюсь).

zlofenix
()

Сервер волшебно зависает

Сервер зависает совершенно неожиданно, иногда работает несколько недель, иногда раз в неделю зависает.
Причину узнать так и не удается.
На нем под XEN 4 живут 5 серверов, на винты не похоже, с данными все нормально.
Память относительно стабильно держит температуру, хотя 2 планки около 56 (по выводу sensors)

В момент зависания доступа к экрану нет, да и он все-равно уходит в экономный режим, так что не увидеть что там было (кстати можно это вырубить ?)

OpenSUSE 11.3

Как можно узнать почему зависает или прогнать какие тесты ?

zlofenix
()

XEN 4.0.1 HVM+PV

OpenSUSE 11.3 как хостовая ось
она же как гостевая
как только ставлю PV-модули для ядра(xen-kmp-default) на гостя - перестает загружаться, пишет ошибок про винт кучу
Проверял на разных версиях ксена и PV-модулей - всегда одно и то же
конфиг гостя:
name = «vps2»
vfb = ['type=vnc,vncdisplay=11']
vif = ['vifname=test,mac=00:16:3E:x:x:x, bridge=br0']
disk = ['file:/vm/11.3.iso,hdc:cdrom,r', 'phy:/dev/vms/test,hda,w']
memory = 1024
vcpus=1
kernel = «hvmloader»
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
builder='hvm'
acpi=1
apic=1
device_model = '/usr/lib64/xen/bin/qemu-dm'
boot='d'

Что может быть не так ?

zlofenix
()

зависание umount

Есть образ диска с разделами и lvm раздел на винте.
Делаю:
kpartx -a образ
mount /dev/mapper/образp1 1
kpartx -a /dev/lvm/disk
mkswap /dev/mapper/lvm-diskp1
mkfs.ext4 /dev/mapper/lvm-diskp2
mount /dev/mapper/lvm-diskp2 2
cp -a 1/* 2/
umount 1
umount 2
Совершенно независимо зависает размонтирование(сегодня зависли обе команды, обычно только одна, но не всегда), fuser ничего не показывает, kill -9 не помогает
процессы сами умирают через некоторое, весьма продолжительное время(ядро убивает ?)

С чем это может быть связано ? как вылечить ?

zlofenix
()

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