mod_rpaf и Debian Jessie

Похоже, модуль апача rpaf в Jessie сломан. Подключается, в лог пишет правильный адрес, но вот, например, в $_SERVER[«REMOTE_ADDR»] по-прежнему адрес прокси, а не клиента. К счастью, в комплекте апача есть замена — это mod_remoteip. Конфигурируется достаточно просто:

  1. Нужно создать файл /etc/apache2/mods-available/remoteip.conf с примерно таким содержимым
    <IfModule mod_remoteip.c>
      RemoteIPHeader X-Forwarded-For
      RemoteIPInternalProxy 127.0.0.1 # тут должен быть адрес своего прокси
    </IfModule>
  2. Затем a2enmod remoteip и systemctl apache2 restart. Все, правильный адрес будет и в логах, и в переменных.

HW RAID в Debian

Обнаружил полезный для владельцев железных рейд-контроллеров репозиторий Debian/Ubuntu, который так и называется HWraid.

Подключается оч. просто, например, для Squeeze нужно добавить в /etc/apt/sources.list:

deb http://hwraid.le-vert.net/debian squeeze main

Ключ для подписи, увы, авторы не прилагают, т.ч. просто используем -y —force-yes при установке пакета.

Установка redmine на Debian Squeeze

Попросили сделать хост с редмайном для нескольких проектов, ставлю на Debian 6. В репах squeeze редмайн какой-то совсем старый, аж версии 1.0.1, а в бекпортах 1.1.2, хочется же последний, поэтому ставить буду из testing (или можно из unstable).

В файле /etc/apt/sources.list добавить строчку для testing:

deb http://ftp.us.debian.org/debian/ testing main contrib non-free

Сделать привязку к squeeze в /etc/apt/preferences или preferences.d, например, так

Package: *
Pin: release n=squeeze
Pin-Priority: 700

Package: *
Pin: release n=wheezy
Pin-Priority: -1

Далее установить редмайн командами

apt-get update
apt-get install mysql-server
apt-get install -t wheezy redmine redmine-mysql

Обновить придется половину системы, так что это будет уже не squeeze в чистом виде, но уж если хочется…

Теперь надо выдать через веб только что установленную систему. Есть множество способов это сделать, я использую apache+mod_fcgid

apt-get install apache2 libapache2-mod-fcgid libfcgi-ruby1.8

Создаем сайт для редмайна в /etc/apache2/sites-available/redmine с таким содержимым

SocketPath "/var/run/redmine/sockets/default"
<VirtualHost *:80>
  ServerName redmine.example.com
  DefaultInitEnv RAILS_RELATIVE_URL_ROOT ""
  DefaultInitEnv X_DEBIAN_SITEID "default"

  Alias "/plugin_assets/" /var/cache/redmine/default/plugin_assets/
  DocumentRoot /usr/share/redmine/public

  <Directory "/usr/share/redmine/public">
    Options +FollowSymLinks +ExecCGI
    Order allow,deny
    Allow from all
    RewriteEngine On
    RewriteRule ^$ index.html [QSA]
    RewriteRule ^([^.]+)$ $1.html [QSA]
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} dispatch.fcgi$
    RewriteRule ^(.*)$ dispatch.fcgi [QSA,L]
  </Directory>
</VirtualHost>

Включаем сайт

a2ensite redmine

и рерайты

a2enmod rewrite

правим права на некоторые каталоги

chown -R www-data /var/run/redmine

перезапустим апач

service apache2 restart

и можно заходить на свежеустановленный редмайн как admin / admin. Не забудьте поставить скин BaseCamp.

debian squeeze 6.0.3 openvz template

Странно, что в сети нет явных ссылок на шаблон Debian Squeeze для OpenVZ с нормально обновленными пакетами. Решил выложить у себя, мало ли кому пригодятся.

Версия amd64

Версия i386

DKIM в exim на Debian Squeeze

Странно, что ничего не гуглится по этому вопросу. Есть dkim и exim, dkim и debian, но все вместе — увы. На самом деле все просто:

  1. apt-get install dkim-filter
  2. cd /etc/exim4; dkim-genkey -d example.com -t -r -s mail
    Это создаст пару открытый/закрытый ключ для домена example.com с селектором mail
  3. mv mail.private example.com.key
  4. chmod 640 example.com.key
  5. chgrp Debian-exim example.com.key
  6. Добавляем следующие строчки в файл /etc/exim4/exim4.conf.template перед секцией remote_smtp в transport (отмечена transport/30_exim4-config_remote_smtp)
    DKIM_DOMAIN = ${lc:${domain:$h_from:}}
    DKIM_FILE = /etc/exim4/${lc:${domain:$h_from:}}.key
    DKIM_PRIVATE_KEY = ${if exists{DKIM_FILE}{DKIM_FILE}{0}}
    DKIM_SELECTOR = mail
  7. Перезапускаем exim, после этого нужно добавить в конфигурацию доменной зоны содержимое файла mail.txt (после этого он не нужен).
Вот и все. После этого нужно потестировать DKIM. Когда появится уверенность, что он работает полностью верно, можно заменить ключ t=y на t=s в TXT записи домена, что будет указывать на то, что DKIM находится не в режиме тестирования.

Удалить пакеты, помеченные как rc

На давно установленных системах осталась куча пакетов, помеченных как rc в списке пакетов. apt-get purge удалять их отказывается по причине того, что они уже удалены. Хорошо, что dpkg оказался не таким вредным и удалил остатки: dpkg -l | awk «/^rc/ {print $2}» | xargs dpkg —purge — и все.