VestaCP – vesta-nginx failed with “libc.so.6: version `GLIBC_2.14′ not found”

После очередного автоматического обновления, панель перестала отзываться.
Причиной тому были ошибки:

/usr/local/vesta/nginx/sbin/vesta-nginx: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/vesta/nginx/sbin/vesta-nginx)

/usr/local/vesta/php/sbin/vesta-php: /usr/lib/x86_64-linux-gnu/libxml2.so.2: version `LIBXML2_2.9.0' not found (required by /usr/local/vesta/php/sbin/vesta-php)

/usr/local/vesta/php/sbin/vesta-php: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.14' not found (required by /usr/local/vesta/php/sbin/vesta-php)

Фикс простой и написан на форуме Весты:

# apt-get update && apt-get –reinstall install vesta-nginx vesta-php

Debian 8 Viber проблемы с “xcb”

При попытке запустить Viber получаем ошибку.

$ /opt/viber/Viber
This application failed to start because it could not find or load the Qt platform plugin “xcb”.

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, wayland-egl, wayland, xcb.

Решение. Доставить пакеты Read more Debian 8 Viber проблемы с “xcb”

SW RAID + LVM + Flashcache on Debian Jessie

Итак, поднимаем производительность дисковой системы за счет кеширования на SSD

Имеется тазик с Debian Jessie 8 и тремя дисками:
2х SATA 2 TB – SW RAID 1-го уровня (/dev/sdb, /dev/sdc)
1x SSD 240 Gb – не размеченный диск (/dev/sda)

Поверх рейда используется LVM2 для логических разделов. Read more SW RAID + LVM + Flashcache on Debian Jessie

Установка IPSET, TARPIT и т.д. на Squeeze

Честно скопи-пастил отсюда 🙂

# aptitude update && aptitude install module-assistant xtables-addons-source
# m-a prepare
# m-a auto-install xtables-addons-source
# depmod -a

Новые таржеты для iptables:

  • CHAOS: randomly use REJECT, DELUDE or TARPIT targets.
    This will fool network scanners by returning random results
  • DELUDE: always reply to a SYN by a SYN-ACK. This will fool TCP half-open discovery
  • DHCPADDR: replace a MAC address from and to a VMware host
  • IPMARK: mark a packet, based on its IP address
  • LOGMARK: log packet and mark to syslog
  • SYSRQ: trigger a sysreq over the network (sending a saK over the network looks like a real funny ida
  • TARPIT: try to slow down (or DoS) remote host by capturing the session and holding it for a long time, using a 0-bytes TCP window. Run that on port 25 if you have no mail server to slow down spammers 😉

Новые совпадения (matches) для iptables:
condition: match on boolean value stored in /proc/net/nf_condition/name
dhcpaddr: match the DHCP Client Host address in a DHCP message
fuzzy: match a rate limit based on a fuzzy logic controller
geoip: match a packet by its source or destination country
ipp2p: match (certain) p2p protocols
quota2: named counters
pknock: port knock
…. и другие.

У себя собрал, но запустить в работу еще руки не дошли.

vsftpd: No /usr/sbin/vsftpd found running; none killed.

Итак, сервер: Debian Squeeze + ISPmanager + vsftpd.
При попытке перезапуска фтп демона пишет:

# /etc/init.d/vsftpd restart
Stopping FTP server: No /usr/sbin/vsftpd found running; none killed.

При этом init-скрипт пишет номер процесса:

# cat /var/run/vsftpd/vsftpd.pid  
4634

Но пишет неправильный PID.
По всей видимости, при установке ftp из панели ISPmanager, в конфиг /etc/vsftpd.conf была добавлена строка:

background=YES

Соответственно, в pid файл записывался некорректный пид процесса. Это древний баг, оказывается
Собственно, про это же написано и в /usr/share/doc/vsftpd/README.Debian:

The included init script uses start-stop-daemon's --background option to run
vsftpd in the background.  If you have "background=yes" in your configuration,
the wrong PID will be recorded in /var/run/vsftpd/vsftpd.pid, and the init
script may fail to restart or stop vsftpd later.  Just remove "background=yes"
from vsftpd.conf.

Т.е. комментируем или убираем вообще строку “background=yes”, после чего init-скрипт начинает нормально запускать/останавливать vsftpd

PS. Как все таки, иногда, полезно почитывать документацию 🙂

/lib/libc.so.6: version ‘GLIBC_2.11’ not found

Попал в руки сервер Debian Lenny 5.0.7 со следующими симптомами:
не добавляются юзеры,  часть сервисов отвалилась (exim и dovecot, в частности, остальное не проверял), а при попытке что-ли установить получаем:

dpkg: /lib/libc.so.6: version `GLIBC_2.8' not found (required by dpkg)
dpkg: /lib/libc.so.6: version `GLIBC_2.11' not found (required by dpkg)
E: Sub-process /usr/bin/dpkg returned an error code (1)

Смотрим почему:

# ldd -v /usr/bin/dpkg
/usr/bin/dpkg: /lib/libc.so.6: version `GLIBC_2.8' not found (required by /usr/bin/dpkg)
/usr/bin/dpkg: /lib/libc.so.6: version `GLIBC_2.11' not found (required by /usr/bin/dpkg)
linux-vdso.so.1 => (0x00007fffeccfd000)
libc.so.6 => /lib/libc.so.6 (0x00007f4a09e8d000)
/lib64/ld-linux-x86-64.so.2 (0x00007f4a0a1e0000)

Version information:
/usr/bin/dpkg:
libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.8) => not found
libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
libc.so.6 (GLIBC_2.11) => not found
libc.so.6 (GLIBC_2.2.5) => /lib/libc.so.6
/lib/libc.so.6:
ld-linux-x86-64.so.2 (GLIBC_2.3) => /lib64/ld-linux-x86-64.so.2
ld-linux-x86-64.so.2 (GLIBC_PRIVATE) => /lib64/ld-linux-x86-64.so.2

Примечательный факт: /lib/libc.so.6 был не симлинком на libc-2.7.so, а был самостоятельным файлом.
Мдааа.. ))
На всякий случай попросил клиента заказать ipkvm и liveCD, а также показать /etc/apt/source.list (Откуда в lenny libc-2.11 ??).
После увиденного я вообще удивился как оно еще жило. Были подключены репы stable и sid (жуть !), да в придачу еще и от убунты репа. Apt-Pinning , естественно не использовался.

Пришлось хаком приводить систему в чувства.
Убрал лишние репы, скачал нормальный штатный deb пакет dpkg.
Так как установить его все равно не получится, подменил файл /usr/bin/dpkg на тот который из deb-пакета.
dpkg заработал, уже лучше.

Ну а дальше пошли уже мытарства по вычистке системы от всего лишнего и чуждого для этой версии. Вот тут как раз и пригодился ipkvm.
Загрузился в rescue режиме, поднял сеть, потом chroot /dev/sda1 (диск был разбит на root и swap)
Перелинковал libc.so.6 на libc-2.7.so ну и на всякий случай переустановил libc6, а то мало ли откуда там файл вместо симлинка взялся.
После чего попытка взлететь с родного винта.

Скажу, что на этот раз повезло и система поднялась удачно.
Правда, после этого было потрачено пару часов на вычистку и переустановку пакетов.
Но в итоге, все заработало как и должно работать, клиент доволен.
Ну и я доволен, что смог помочь )

Обновляем Exim для Directadmin

Все еще используете ексим 4.69 ?
Пора обновить версию.
Можно, конечно, собрать из исходников (как описано тут), а можно просто поставить уже готовый пакет.
Скачиваем и ставим пакет с сайта directadmin.
Для Debian:

# cd /usr/local/directadmin/custombuild
# wget http://files.directadmin.com/services/debian_5.0/da_exim-4.72.deb
# dpkg -i da_exim-4.72.deb

Для Debian 64bit:

http://files.directadmin.com/services/debian_5.0_64/da_exim-4.72.deb

Для CentOS:

# cd /usr/local/directadmin/custombuild
# wget http://files.directadmin.com/services/es_5.0/da_exim-4.72-2.i386.rpm
# rpm -Uvh da_exim-4.72-2.i386.rpm

Возможно понадобится доставить отсутствующие библиотеки (libperl5.10, db4 и т.д.).
Если отвалился TLS – выставить нужные права на /etc/exim.key (chown mail: /etc/exim.key)

Еще можно использовать dkim, достаточно поправить exim.conf и добавить проверки:

acl_smtp_dkim    = acl_check_dkim
.....
.....
###############################
#       ACL check_dkim        #
###############################
acl_check_dkim:

  defer dkim_status = fail
     logwrite   = DKIM test failed: $dkim_verify_reason
     message    = DKIM test failed: $dkim_verify_reason
     add_header = X-DKIM-FAIL: DKIM test failed: \
                  (address=$sender_address domain=$dkim_cur_signer), \
                  signature is bad.

  warn  dkim_status = invalid
     add_header = :at_start:Authentication-Results: \
                  $dkim_cur_signer ($dkim_verify_status); $dkim_verify_reason
     logwrite   = DKIM test passed (address=$sender_address domain=$dkim_cur_signer), \
                  but signature is invalid.

  accept dkim_status = pass
     add_header = :at_start:Authentication-Results: dkim=$dkim_verify_status, \
                  header.i=@$dkim_cur_signer
     logwrite   = DKIM test passed (address=$sender_address domain=$dkim_cur_signer), \
                  good signature.

  accept

Теперь ексим будет проверять цифровую подпись (если она есть) для входящих писем.
Для проверки можно отправить письмо с гугло- или mail.ru ящика. При получении письма в логе можно увидеть результат проверки:

2010-12-27 09:31:21 1PXxxx-000xxx-PR DKIM: d=gmail.com s=gamma c=relaxed/relaxed a=rsa-sha256 [verification succeeded]
2010-12-27 09:31:21 1PXxxx-000xxx-PR DKIM test passed (address=user@gmail.com domain=gmail.com), good signature.
...
2010-12-27 12:01:26 xxxx-xxx-FX DKIM: d=mail.ru s=mail c=relaxed/relaxed a=rsa-sha256 [verification succeeded]
2010-12-27 12:01:26 xxxx-xxx-FX DKIM test passed (address=user@mail.ru domain=mail.ru), good signature.

DKIM можно использовать как дополнительную проверку для фильтрации почты.

VirtualBox и warning in file ‘/var/lib/dpkg/available’ near line 53968 package ‘virtualbox-3.0’

При очередном обновлении “сквизи” вылезли варнинги

warning, in file ‘/var/lib/dpkg/available’ near line 12159 package ‘virtualbox’:
error in Version string ‘1.6.6-35336_Debian_lenny’: invalid character in revision number
…..

Если коротко, то это баг. Подробности описаны на bugs.debian.org

Лечится ручной правкой:

sed -i -e ‘/^Version:/ s/[^-a-zA-Z0-9:.+~ ]/+invalid+char+removed+by+dpkg+/g’ /var/lib/dpkg/available

(Взято с баг-трекера)

Прекращаю сборку пакетов nginx для Debian

Всем привет.
Я прекращаю собственную сборку пакетов nginx для Debian.

Точнее, не то что я прекращаю сборку, просто теперь это будет делаться по-нормальному.
Все deb-пакеты nginx уже автоматически собираются и выкладываются в локальный репозитарий на ftp.debian.org.ua

Как подключить репозитарий.
Добавляем в sources.list адрес репозитария:
Для Lenny

# echo "deb http://ftp.debian.org.ua/debian-dou/ lenny main" >> /etc/apt/sources.list

Для Squeeze

# echo "deb http://ftp.debian.org.ua/debian-dou/ squeeze main" >> /etc/apt/sources.list

Для Sid

# echo "deb http://ftp.debian.org.ua/debian-dou/ sid main" >> /etc/apt/sources.list

Импортируем ключик и обновляем список пакетов

# gpg --keyserver keys.gnupg.net --recv-keys 0A3D4789
gpg: requesting key 0A3D4789 from hkp server keys.gnupg.net
gpg: key 0A3D4789: public key "Debian.org.ua Custom Repository " imported
gpg: Total number processed: 1
gpg:               imported: 1

# gpg --armor --export 0A3D4789 | apt-key add -
OK

# aptitude update

В репу выкладывается как тестируемая ветка nginx (0.9.x), так и стабильная ветка (0.8.х).

Архив предыдущих версий доступен для скачивания по http отсюда:
http://ftp.debian.org.ua/nginx-arch/

Хочу заметить, что в сборку включены несколько патчей, которые не входят в апстрим версию.
Пакеты собираются для Lenny, Squeeze, поддерживаются две платформы – x86 и amd64.

Неофициальный репозитарий D.O.U создан благодаря усилиям Олега Милаенко (мэйнтентер украинского зеркала Debian GNU/Linux)
Все замечания и предложения по сборке отправлять на devel-team [#] debian.org.ua

Upd:
Также ключ можно скачать и сразу установить так:

wget -q http://ftp.debian.org.ua/debian-dou/archive.key -O- | apt-key add –