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

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

Как закрыть sshd без iptables

Если лень возиться с iptables, то ограничить доступ к ssh (и не только) можно и без iptables.

Для этого достаточно дописать несколько строк в файлы
/etc/hosts.allow
/etc/hosts.deny

Например, открываем доступ к sshd с ip 192.168.1.12 и 192.168.250.250, а для остальных доступ к sshd будет закрыт.
Добавляем в файл /etc/hosts.allow строку, где указаны разрешенные ip:

sshd: 192.168.1.12, 192.168.250.250

А в файле /etc/hosts.deny закрываем доступ всем, кроме разрешенных:

sshd: ALL

При попытке подключения с неразрешенного хоста получим ответ:

# ssh 192.168.0.1
ssh_exchange_identification: Connection closed by remote host

А если подключаться с разрешенного, то увидим приглашение ssh.

# ssh 192.168.0.1
user@host’s password:

Вот такой простой способ 🙂
Таким же способом, например, можно разрешить/запретить коннекты с mysqld, nfs или другим сервисам.

Прекращаю сборку пакетов 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 –

apache и mod_ruid – исполнение скриптов от имени пользователя

При использовании mod_php все скрипты исполняются от имени веб-сервера (www-data, apache, etc), из-за чего довольно трудно определить чем занят тот или иной процесс и кто делает нагрузку.
Да, можно использовать suPHP, fastCGI и т.д. Но в таком случае можно забыть про выставление параметров в .htaccess, потеря производительности, невозможность использования mod_php и другие фишки.
Можно использовать peruser или mpm-itk. В первом случае будут плодиться процессы, каждый из которых будет кушать память, что не особо хорошо.
Во втором случае – нужно пересобирать апач.

Как же быть ?
Как вариант – использовать модуль mod_ruid2. Почему именно mod_ruid ? Одна из причин – модуль поддерживается и развивается. Последний коммит в svn сделан неделю назад (от даты данного поста), это вселяет определенную надежду, что модуль и дальше будет развиваться, а найденные баги будут исправляться. mod_ruid не требует пересборки ни apache ни чего либо еще, будут нормально работать акселераторы (eAccelerator, xcache).

Read more apache и mod_ruid – исполнение скриптов от имени пользователя

Directadmin+nginx полный автомат

Доброго всем LOCALTIME ! 🙂

Решил поделиться с общественностью своими скриптами для связки directadmin и nginx.

В свое время для снижения нагрузки на apache было решено поставить nginx. После некоторого гугления была сделана первая попытка связать панель и nginx. На тот момент скрипт умел совсем немного – только создавать и удалять конфигурационные файлы виртуальных хостов. Он не умел работать ни с поддоменами, ни с алиасами, не умел и переименовывать конфиги доменов.

Затем последовала вторая попытка. Этот скрипт уже был немного “умнее”. Он умел создавать, удалять не только домены, но и поддомены. Однако, после того, как количество вирт. хостов выросло и управляться с большим количеством доменов стало как-то трудно, было решено полностью переписать всю схему работы связки directadmin и nginx. Все домены/поддомены/алиасы будут описываться в map-файле, а в конфиге будут использоваться соответствующие переменные, тем самым будет использоваться всего один небольшой общий конфиг, в котором и описывается виртуальный хост.
“Особые” домены описываются в отдельных конфигурационных файлах.
Кроме того, логи для всех вирт. хостов будет писать nginx, освободим нашего монстра apache от этой обязанности и оставим ему писать только error_log. Что положительно скажется на производительности.

Сказано – сделано.
По моей просьбе и некоторому подобию ТЗ, мой друг Александр Русских написал совсем новый и удобный скрипт, который и будет использоваться в этой статье.
Еще одна моя просьба была направлена Кириллу Коринскому, который написал небольшой патч для nginx. Данный патч выдает 503 ошибку, если уровень load average системы выше заданного в конфиге значения. Да, это грубо, но зато может уберечь сервер от ухода в глубокий своп. Поэтому уровень LA необходимо указывать заведомо высокий.

Итак, поехали.

Часть первая (Если nginx уже установлен – смотрим вторую часть)
У нас в распоряжении сервер с установленной панелькой DirectAdmin (отличная, кстати, панель). Чтобы не делать из системы свалку, nginx будет ставиться из репозитария.

Добавляем репозитарий в список, импортируем ключи и ставим nginx:

# echo "deb http://ftp2.debian.org.ua/debian-dou/ lenny 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
# aptitude install nginx

Стоит заметить, что в этот пакет включено два неофициальных патча, которые описаны в блоге автора

После установки nginx не запустится – это нормально, так как на 80-м порту все еще работает apache.
Дальше будем приводить в порядок конфигурационные файлы apache и nginx.
Read more Directadmin+nginx полный автомат

Debian Squeeze 6.0 frozen

Сегодня, 6 августа, разработка дистрибутива Debian 6.0 (“Squeeze”) перешла в завершающую фазу – Debian Squeeze заморожен.
Это означает, что в дистрибутив уже не будут добавляться новые пакеты, а все силы будут направлены на “вылизывание” существующих багов.

В новой версии будет:
– ядро 2.6.32
– KDE 4.4.5, Gnome 2.30.0, LXDE 0.5.0, XFCE 4.6.2
– X.org 7.5
– OpenOffice.org 3.2
А также множество других новых и полезных пакетов, так что ждем выхода релиза  😛

Подробнее на сайте Проекта: http://www.debian.org/

Deb-пакеты nginx для Debian Lenny

Вышла очередная версия nginx.
По просьбам теперь собираются пакеты как для i386, так и для amd64.
Просьба качающим протестировать сборку для amd64, так как у меня просто нечем проверить.

Обратите внимание, что изменено поведение некоторых директив.

Изменения в nginx 0.8.48                                          03.08.2010

    *) Изменение: теперь по умолчанию директива server_name имеет значение 
       пустое имя "".
       Спасибо Геннадию Махомеду.

    *) Изменение: теперь по умолчанию директива server_name_in_redirect 
       имеет значение off.

    *) Добавление: переменные $geoip_dma_code, $geoip_area_code и 
       $geoip_region_name.
       Спасибо Christine McGonagle.

    *) Исправление: директивы proxy_pass, fastcgi_pass, uwsgi_pass и 
       scgi_pass не наследовались в блоки limit_except.

    *) Исправление: директивы proxy_cache_min_uses, fastcgi_cache_min_uses 
       uwsgi_cache_min_uses и scgi_cache_min_uses не работали; ошибка 
       появилась в 0.8.46.

    *) Исправление: директива fastcgi_split_path_info неверно использовала 
       выделения, если в выделения попадала только часть URI.
       Спасибо Юрию Тарадаю и Frank Enderle.

    *) Исправление: директива rewrite не экранировала символ ";" при 
       копировании из URI в аргументы. 
       Спасибо Daisuke Murase.

    *) Исправление: модуль ngx_http_image_filter_module закрывал 
       соединение, если изображение было больше размера image_filter_buffer.

Скачать deb-пакет разных версий для платформ i386 и amd64 можно тут

Свежие версии mysql/php для Lenny

На сервере вполне уютно живет Debian Lenny, однако хочется использовать более свежие версии софта, того же MySQL или PHP (речь идет о ветке 5.2). А учитывая, что в репозитарии ну очень уж древние версии, в бекпортах толком ничего нет, то возникает вопрос – как быть ?
Ставить из тестинга или собирать из сорцов как-то лениво, да 🙂
Однако есть люди, которым не лениво, за что им можно сказать “спасибо”.

Итак, подключаем репозитарий dotdeb.org и ставим свежие версии нужного нам софта.

deb http://packages.dotdeb.org  lenny all
deb-src http://packages.dotdeb.org lenny all

Импортируем ключики:

gpg --keyserver keys.gnupg.net --recv-key 89DF5277
gpg -a --export 89DF5277 | sudo apt-key add -

Обновляем списки пакетов

aptitude update

Теперь можно обновить устаревшие версии mysql и php на более свежие:

aptitude safe-upgrade

Если необходима версия php 5.3, тогда в source.list необходимо добавить:

deb http://php53.dotdeb.org lenny all
deb-src http://php53.dotdeb.org lenny all

В итоге получим мускуля версии 5.1.48-0.dotdeb.0-log
И php версии 5.2.13 или 5.3.2

mysql init-скрипт для directadmin

Мне крайне не нравится дефолтовый mysql инит скрипт, который идет в поставке Directadmin, потому как работает он крайне некорректно. Взял я штатный дебиановский инит-скрипт и приспособил его для работы с mysqld, который поставляется с панелью Директадмин.
Работает на все 100%, как и полагается в Дебиане.

Сам скрипт качаем тут

Выслушаю любые предложения/пожелания относительно данной модификации.