29 дек. 2010 г.

Теория и практика в работе с IPSec

Тов. Лисяра снова поражает своей осведомленностью и умением подавать материал. Очень годная статья про IPSec и способы его приготовления. 
Не далее как неделю назад самому пришлость столкнуться с этой темой и вскорости разбираться во всяких racoon-ах, setkey-ях и прочего добра из пакета ipsec-tools. Поставленную задачу решить удалость, но уровня понимания процессов и методологии для какой-то памятной статейки по-прежнему явно недостаточно. Тупо же выложить рабочие конфиги - их и так в этих ваших интернетах дофига. А тут очень подробно, комментированно изложено все то, что мне пришлось проделать. И много еще дополнительного, что может пригодиться в будущем. В общем, рекомендация к прочтению однозначная.

Основные приемы работы с LVM

На заметочку и сохранение - очень годная статья с пережеванной базовой информацией про LVM.

27 дек. 2010 г.

Сборка "старых" модулей

Интересный хинт, который может сэкономить массу времени. Если нужно скомпилить некий модуль ядра, написанный когда-то давно, а linux-headers вкупе с linux-image свежее версии 2.6.21, то велика вероятность вот такой картины:
error: linux/config.h: Нет такого файла или каталога
хотя пакет linux-headers установлен в системе, и /usr/src/linux ссылается в нужное место. Оказывается, хидер config.h с ядра 2.6.21 стал обзываться autoconf.h, а старый код об этом, конечно, не знает. Таблетка элементарна:
ln -s /usr/src/linux/include/linux/autoconf.h /usr/src/linux/include/linux/config.h

13 дек. 2010 г.

[S60] ThreadSMS

Пара слов о сабжевой софтинке ThreadSMS: стоит 186,26 рупий, а удобства дает за эту цену очень и очень немало. Особенно оценить можно в случае активного пользования услугой SMS. Суть, как можно углядеть на скриншоте по ссылке выше, в отображении sms-переписки с конкретным контактом в виде форумного треда, что, во-первых, позволяет быстрее находить в куче сообщений (к примеру, в моем телефоне за три недели скопилось уже около полутысячи) нужную информацию (во многом благодаря группировке по контакту), во-вторых, при составлении ответа перед глазами остается текст предыдущего сообщения, а при просмотре треда - вся переписка (или ее часть, в зависимости от настроек), что дает возможность (мне, по крайней мере) не забыть, о чем вообще идет речь без дополнительных телодвижений. Ну и так еще по мелочи, вроде возможности автозапуска, нескольких представлений вида отображения треда, улучшенной нотификации (можно показать имя отправителя, текст сообщения), и еще каких-то плюшек, о которых я забыл ;). Из недостатков пока заметил недостаточную, на мой взгляд, интеграцию с ОС (не подменяет стандартную службу работы с SMS, дерется с ней при отображении нотификации) и отсутствие локализации.

8 дек. 2010 г.

sshuttle -- transparent proxy server for VPN over SSH

Проматривая очередной дайджест Debian Project News, узнал о добавлении в unstable-репозиторий софтинки
* sshuttle -- transparent proxy server for VPN over SSH [51]
   51 : http://packages.debian.org/unstable/main/sshuttle
 Более подробно о том, что реализует эта утилита, можно почерпнуть из README на github-странице проекта. Если в трех словах да по-русски, sshuttle дает возможность получить доступ ко всем сетевым ресурсам удаленной подсети (или конкретного хоста в оной), имея лишь пользовательский ssh-доступ, причем как с компьютера, организовавшего подключение (инициаотора ssh-подключения), так и с любой рабочей станции из расположенной за ним локалки, если этот компьютер является шлюзом или может выполнять его функции. Короче, в мемориз.
Да, на удаленной стороне нужен лишь ssh и установленный питон (а где его щас не ставится).

2 дек. 2010 г.

Логитеч или Лоджитек?

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

1 дек. 2010 г.

HDD. Информация к размышлению и не только.

Очень годный эпос о жестких дисках и их эксплуатации в трех частях: Выбор и покупка, Устанока, Эксплуатация. Сильно рекомендую к прочтению, тем более что информация представлена практикующими специалистами по выковыриванию информации с побитых и померших девайсов из RLab.

27 нояб. 2010 г.

PirateISP problem

Отвалился туннель в Швецию, который так недавно и непросто настраивался на этих страницах. Говорят, PirateISP зачем то поделил старые ключи. Заказал новые, жду..

25 нояб. 2010 г.

fam vs. gamin

А оказывается, вон оно как бывает... В общем, сносим fam, ставив gamin.

22 нояб. 2010 г.

KDE3 + неработающий numpad

Старенькая проблемочка со старенькими KDE3.5.10 в Debian Lenny (а вот этот - вечно молодой в течение всего до'squeeze'ного периода): цифровая клавиатура (numpad) может в упор не работать, хотя лампочка соответствующая "включение-выключение" отрабатывает, в случае включенной опции управления курсором мыши с клавиатуры. Убирается по адресу: Система - Параметры - Оборудование - Клавиатура (или что-то вроде такого пути, может различаться в разных дистрибутивах).

21 нояб. 2010 г.

Creative Commons по-русски.

Как гласит шильдик в нижнем правом углу этой страничке, все материалы, опубликованные здесь (исключая, конечно, ссылки на сторонние ресурсы, цитаты оттуда и тому подобное), публикуются на правах одной из лицензий Creative Commons, а именно - by-nc-sa, то есть
Атрибуция - Некоммерческое использование - С сохранением условий (Attribution-NonCommercial-ShareAlike) 3.0 Unported
Так было с момента первого поста, и будет впредь. А вспомнил я об этом потому, что сейчас полные тексты лицензий CC, а также их краткие описания (Commons Deed), доступны на русском языке. Сам шильдик уже обновлен ;)
Да, если вы впервые слышите о Creative Commons, то вам сюда. Прониклись идеей и хотите опубликовать свою работу под одной из CC-лицензий? Выбрать наиболее подходящую теперь можно с помощью локализованного помощника.
P.S.: новость сия до меня дошла с Хабра, за что ему и спасибо ;)

18 нояб. 2010 г.

Настройка GRE-туннеля в linux

Чтобы не забыть, настройка GRE-туннеля к маршрутизатору Cisco в Debian Lenny со товарищи (секция в /etc/network/interfaces):
auth tun0
iface tun0 inet static
    address tunnel_local_ip
    netmask tunnel_mask
    up ifconfig tun0 multicast
    pre-up iptunnel add tun0 mode gre remote remote_ip local local_ip ttl 225
    pointopoint tunnel_remote_ip
    post-down iptunnel del tun0
где  tunnel_local_ip, tunnel_mask - адрес и маска подсети интерфейса этого компьютера внутри gre-туннеля ("ближний" конец, если угодно);
       remote_ip - внешний адрес удаленного маршрутизатора;
       local_ip - внешний адрес этого компьютера;
       tunnel_remote_ip - адрес удаленного маршрутизатора внутри gre-туннеля ("дальний" конец).
Очевидно, что  для установления этого типа туннеля адреса remote_ip и local_ip должны быть доступны и видимы друг другу. Также следует помнить, что протокол GRE не обеспечивает шифрования трафика внутри туннеля (так как имеет место простая инкапсуляция пакетов), поэтому использовать такой метод стоит лишь в доверенных сетях.

17 нояб. 2010 г.

Проблема сборки свежих ядер (2.6.33+) в Lenny - ошибка несоответствия версий.

Едрить-колотить! В кои-то веки потребовалось самому подсобрать дебиановское ядро (2.6.35 проверить на проблемной машинке) для Lenny, дак и то умудрился словить вилы. А именно - вот эти вилы, о которых все прогрессивное красноглазое человечество уже с начала года знает.
Симптоматика следующая:
This is kernel package version 11.015.
| echo "The UTS Release version in include/linux/version.h"; echo "          \"\" "; echo "does not match current version:"; echo "      \"2.6.33-rc1-amd64\" "; echo "Please correct this."; exit 2
| The UTS Release version in include/linux/version.h
|            ""
| does not match current version:
|            "2.6.35-interra"
| Please correct this.
И как не мучайся, пока не поставишь версию пакета kernel-package за номером 12.036, где бага поправлена, фиг что соберется. Хотя вру, старые ядра (до 2.6.33), говорят, собираются. Это и есть единственно верное лечилово. Да, в стабильном репозитории нужной версии пакета нет, поэтому или качать по ссылке выше, или подключить testing.

12 нояб. 2010 г.

[S60] Nokia C6 - тюнинг задней крышки

Моя нокиа унаследовала, к сожалению, болячку телефонов 58-ой серии - люфт задней крышки. Он небольшой и при использовании в "собранном состоянии" практически не заметен. Однако при раскрытой клавиатуре и особенно при наборе текста люфт начинает здорово действовать на нервы (мне, по крайней мере). Однако предлагаемые в интернетах подложки под крышку бумажек, подклейки изоленты на батарейку и прочие подобные изыски, помогающие в случае той же нокии 5800 (кстати, предыдущий телефон - Motorola a1200 - тоже люфтил, и подложенный листочек устранял "неполадку" напрочь), с С6 бессильны - задняя крышка осень тонкая и гибкая, любая подложка ее выпячивает, а продольный люфт остается.
Мое решение заключается в следующем: берем обычные черные или белые, в зависимости от цвета телефона, нитки и делаем несколько намоток вокруг зубцов, расположенных в верхней части задней крышки. Затем закрепляем нитку (смазав клеем или просто сделав пару узелков) и осторожно ставим крышку на место. Люфт должен пропасть.
--------------------------------------------------------------
Ovi Mail: Making email access easy
http://mail.ovi.com

10 нояб. 2010 г.

Test mail2blogger service

Проверка сервиса.

--------------------------------------------------------------
Ovi Mail: Making email access easy
http://mail.ovi.com

9 нояб. 2010 г.

[S60] C6 - проблема переключения раскладки.

Практически первое, с чем пришлось столкнуться, взяв в руки телефон, это проблема ввода текста на двух языках. Если при использовании виртуальной клавиатуры проблем не возникает - все интуитивно понятно, в контекстном меню глаз привычно находит "Язык ввода", то при работе с полноразмерной клавиатурой такая возможность (заглянуть в меню) присутствует далеко не всегда. Компьютерные ctrtl+shift, кое-как зажатые одновременно (как и другие похожие сочетания), ни к чему не приводят. Интернеты рекомендуют использовать дополнительное ПО (LangSwitcher), установка которого достойна отдельного рассказа количеством и последовательностью необходимых действий (обязательно расскажу впоследствии отдельным постом). Однако можно обойтись и без него, и без мучений перехода в "сложенный" режим с последующим выбором нужного языка в контекстном меню. Оказывается, для вызова диалога выбора языка ввода нужно всего лишь последовательно нажать клавиши shift (стрелка вверх) и sym. В результате появляется меню выбора языков, нужно лишь ткнуть в нужный пальцем или enter-ом. Viola! 
Причем нагуглить мне это не удалось (я честно пытался!), узнал совершенно случайно при практическом использовании телефона. Однако от LangSwitcher-а всё же не отказался, ибо с ним переключение происходит в одно нажатие на выбранную клавишу (я забиндил неиспользуемый мной правый шифт).

Nokia Intro

Некоторое время назад я стал счастливым обладателем Nokia C6, qwerty-смартфона на платформе S60v5 ( Symbian OS 9.4). Устройство (сложно назвать этот агрегат просто телефоном) достаточно многофункционально как в аппаратном, так и в программном плане. Многое в нем, как например, переключение раскладки клавиатуры при вводе, реализовано нетривиально. Поэтому, дабы самому не забыть, а кому опосредованно и помочь, буду в этом же бложике оставлять заметки на предмет моего жития с сим девайсом. К тому же, Nokia отпустила "Симбу" в свободное плавание, выпустив коды Symbian OS под свободной Eclipse Public License (EPL). Так что общую тематику странички нарушать не придется ;).

30 окт. 2010 г.

Настройка openvpn-туннеля к PirateISP (Швеция)

Получил я приглашение от PirateISP на закрытое бета-тестирование их VPN-анонимайзера, который они замутили на OpenVPN. При настройке подключения возникли две проблемы, и об их решении мы сегодня поговорим. 
Во-первых, провайдером присылается сертификат, зашифрованный паролем, который вводился при регистрации. И, соответственно, опенвпн его при поднятии туннеля спрашивает. Неудобно, к тому же и пароль "кучерявый" у меня. Эта проблема решается простым добавлением в конфигурационный файл строчки  askpass /etc/openvpn/pass, где /etc/openvpn/pass есть файл, в котором, собственно, пароль и записан. 
Вторая проблема - некорректная обработка процессом опенвпн-а случая, когда маршрут по умолчанию задан не шлюзом, а интерфейсом, то есть:
inspire:/home/delayer# route -n | grep 0.0.0.0
0.0.0.0         0.0.0.0          0.0.0.0         UG    0      0        0 ppp200
При таком раскладе опенвпн (версия 2.1.3-2) не может отработать push-нутую сервером команду redirect-gateway, которая подменяет текущий маршрут по умолчанию новым, проходящим внутри туннеля, и задает дополнительный статический маршрут на удаленный vpn-сервер через старый маршрут по умолчанию, дабы туннель после смены дефгейтвея не отвалился сам по себе. При этом туннель все же поднимается, но трафик через него наотрез ходить отказывается.
Эту проблему удалось решить, подменяя перед запуском опенвпн-а маршрут по умолчанию через ppp-интерфейс маршрутом по умолчанию через шлюз, являющийся внешним ip-адресом означенного ppp-интерфейса. К сожалению, сделать это сразу (например, при начальной конфигурации интерфейсов при запуске ОС) не представляется возможным, ибо мой ISP дает мне хоть и "белый", но динамический IP-адрес. Поэтому приходится выкручиваться, определяя каждый раз выданный адрес снова и подставляя его в качестве маршрута.
Конечно, проделывать все вышеописанные идеи в консоли долго и неспортивно, поэтому был набросан небольшой bash-скрипт, позволяющий одной командой поднимать и опускать наш туннель к шведам.
cat /usr/local/bin/pisp.sh
#!/bin/bash

# Дано ;)
SUDO=/usr/bin/sudo
ROUTE=/sbin/route
OVPN_INIT=/etc/init.d/openvpn
EXP=/usr/bin/expect
PirateISP=pirateisp
FLUSH=/usr/bin/flush

# Получение внешнего IP
Rtel_IP=`/sbin/ifconfig ppp200 | grep "inet addr:" | awk {'print $2'} | sed "s/addr://"`

# Функция поднятия туннеля, включает в себя операции
# по изменению маршрутов по умолчанию
function up_tunnel {
    $SUDO $ROUTE del default dev ppp200
    $SUDO $ROUTE add default gw $Rtel_IP
    $SUDO $OVPN_INIT start $PirateISP
}

# Обратная предыдущей функция опускания туннеля
function down_tunnel {
    $SUDO $OVPN_INIT stop $PirateISP
    $SUDO $ROUTE del default gw $Rtel_IP
        $SUDO $ROUTE add default dev ppp200
}
# Выбор действия
case "$@" in
# Старт туннеля и запуск торрент-клиента
# (ради чего всё и писалось =) )
    flush)
        up_tunnel
        sleep 5
        $FLUSH
    ;;
# Поднятие туннеля
    start)
        up_tunnel
    ;;
# Отключение соединения
    stop)
        down_tunnel
    ;;
# Справка
    *)
          echo "Usage: $0 {start|stop|flush}" >&2
          exit 1
      ;;
esac
Теперь, набрав pisp.sh start, я через несколько секунд получаю openvpn-туннель с белым адресом, который Яндекс определяет как стокгольмский. Ввиду закрытости бета-теста народу немного, поэтому скорости отличные (по сравнению с тем же IPredator'ом, где, по слухам, больше 200kbps не дождешься). Такая скорость, по мнению Яндекса, у меня напрямую (IP: 94.181.193.48):
А такая - через PirateISP (IP: 194.14.172.146):
Я.Интернет. Измерьте вашу скорость.
Вот и сказочке конец, а кто слушал - молодец =).

28 окт. 2010 г.

MSS & MTU

Часто, когда речь идет об организации доступа в интернет проводных (Ethernet) и беспроводных (Wi-fi) клиентов, возникает проблема несоответствия MTU, основными симптомами которой является "полуоткрытие" или полная ошибка доступа к некоторым web-ресурсам (при идеальной работе других), затыки в трассировке и тому подобное. Причем при использовании специализированных устройств (wi-fi/adsl/wimax роутеров) таких проблем не наблюдается.А избежать подобных несуразиц очень просто с помощью того же iptables, благодаря которому мы интернет и раздаем ;). Например, если поместить в /etc/ppp/ip-up.d/ скрипт следующего содержания:
#!/bin/bash
if [ $PPP_IFACE = "ppp200" ]; then
   iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
    iptables -t nat -A POSTROUTING -o ppp200 -j MASQUERADE
fi
то при поднятии PPPoE-соединения на означенном интерфейсе мы, во-первых включаем маскарадинг на нем, а во-вторых, автоматически изменяем MSS проходящих пакетов. По умолчанию, для PPPoE (MTU 1492 байта) максимальный размер сегмента равен (MTU - 40 = 1452 байта). Размеры пакетов для других типов соединений и еще некоторые другие цифирки можно подглядеть, например, тут или тут. Ну или погуглить на предмет этих аббревиатур в частности и фрагментации IP-пакетов вообще.

Инкрементное возрастание имени сетевого интерфейса при загрузке ОС

Столкнулся со странной и очень неприятной проблемой: сетевая карта на нвидиевском чипе:
00:07.0 Bridge: nVidia Corporation MCP61 Ethernet (rev a2)
При загрузке системы сетевка определяется и udev-ом ей назначается имя eth0, все хорошо. Однако при следующей загрузке сетевка по каким-то неведомым причинам получает другой MAC и, соответственно, udev считает ее новым устройством и дает имя eth1. И так далее... На одном из форумов (ссылка где то утерялась) вычитал предпололжение, что на некоторых материнских платах некоторых производителей на NIC назначается какой-то "неправильный" с точки зрения модуля forcedeth MAC-адрес. Он, модуль, сему не верит, и присваивает некий свой, или что-то в этом роде. Короче, правда это, или сказки, но жопа имеет место быть. Лечение, предложенное там же, выглядит как добавление в строку привязки устройства аттрибутов ATTR{device} и ATTR{vendor}, которые неизменны. Узнать оные для сетевки можно так (X - номер интерфейса):
cat /sys/class/net/ethX/device/device
cat /sys/class/net/ethX/device/vendor
Или глянуть в файл /etc/udev/rules.d/70-persistent-net.rules, в закомментированном поле после PCI Device как раз указываются нужные параметры в порядке vendor:device
 cat /etc/udev/rules.d/70-persistent-net.rules | grep '#'
# PCI device 0x10de:0x03ef (forcedeth)
Однако, если убрать меняющийся мак из 70-persistent-net.rules и внести ATTR{device} и ATTR{vendor}, то есть, примерно так:
# PCI device 0x10de:0x03ef (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*",  ATTR{device}="0x03ef", ATTR{vendor}="0x10de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
 То... ничего не изменяется, и после ребута снова появляется еще одна строчка в 70-persistent-net.rules с новым именем нашего интерфейса. В итоге, решение нашлось в следующем: так как мак меняется только по вторым трем байтам, то можно использовать маску: ATTR{address}=="00:00:6c:*". Однако, аттрибуты ATTR{device} и ATTR{vendor} лучше все же оставить, потому что если окажется в системе еще один сетевой интерфейс, удовлетворяющий маске, udev может "сойти с ума", назначив обоим одно имя или не назначив вовсе. 
Таким образом, окончательный вид файла 70-persistent-net.rules получился таким:
cat /etc/udev/rules.d/70-persistent-net.rules
# PCI device 0x10de:0x03ef (forcedeth)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:00:6c:*", ATTR{device}="0x03ef", ATTR{vendor}="0x10de", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
 P.S.: Описанные действия проводились в Ubuntu 8.04 LTS, однако проблема в принципе может проявиться и в других дистрибутивах. Решение будет работоспособно и там, разве что имя файла persistent-net.rules может различаться.

21 окт. 2010 г.

LXDE + Not Authorized

После очередного обновления LXDE в моем Debian Sid возникла неприятность: при попытке подключить съемный носитель (флешку ли, диск ли) pcmanfm выдавал окно Not Authorized и не монтировал устройство. Вручную, естественно, все монтируется. Решение нашлось на форуме LXDE. Если лень читать тред, продублирую тут. Нужно смягчить политики policykit-а, разрешив действия с подключаемыми устройствами всем. Делается это заменой всех строк no на yes в файле /usr/share/polkit-1/actions/org.freedesktop.udisks.policy (в зависимости от дистрибутива название может различаться). Согласен, что это есть попустительство в плане безопасности системы, однако на домашней рабочей станции, думаю, вполне можно себе это позволить в качестве временного решения. Уверен, разработчики в курсе, и через какое-то время сие будет порешено неким официальным патчем.

20 окт. 2010 г.

CUPS + ipp (http) + Unauthorized error.

Еще один хинт на тему печати. Если встречается следующая проблема: принтер подключен к linux-машине, расшарен cups-ом, c win-машины настраивается подключение по http (ipp то бишь). Печать с винды уходит без ошибок, но купс дропает задание, говоря в error_log-e: Print-Job: Unauthorized.
Лечится следующим образом:
lpadmin -pprinter_name -o auth-info-required=none
И еще один момент: при использовании ipp на вин-системе можно не устанавливать драйверы конкретно для printer_name, достаточно выбрать Generic - MS Publisher Imagesetting в списке драйверов ОС. Задание передастся, как я понимаю, в RAW-формате (поправьте, если я не прав), а непосредственно на принтер его обработает и отправит уже CUPS.

16 окт. 2010 г.

Windows 7 + проблемы сетевой печати.

Продолжая тему виндов ;)
Имел сегодня продолжительный секс с "семеркой" на предмет подключения и работы сетевого принтера. Подключенный локально, USB'ом, он  работает. Подключенный по сети, через http ли, через smb, не работает. Причем "не работает" без ошибок и проблем - просто задание уходит в никуда. Единственное, что в итоге получилось - подключение принтера (сабж - Xerox WorkCentre 4118, для которого еще и человеческих дров под Win7 на сайте не сыщешь) по старинке через параллельный порт, в который net use'ом "воткнут" smb-принтер. На деле выглядит это так: добавляется локальный принтер с интерфейсом LPT1. Затем в командой строке пишется 
net use lpt1: \\server_ip\printer_name /USER:username password /y
Таким образом, винда отправляет задание на вроде бы локальный порт принтера, а на деле - в сеть на рашаренный по smb девайс. Метод работает как для доисторических программ из DOS, так и для наисвежайшей Win7.
Сунув описанную команду в автозагрузку, имеем решение "на постоянку".

Сетевой доступ к Windows XP.

Очень годная статья на предмет доступа к ресурсам ОС Windows XP по сети. Без нее я бы еще долго к admin$ ломился... На заметку, так сказать, ибо не линуксами едиными.

6 окт. 2010 г.

/etc/skel + ldap грабельки.

 При настройке авторизации через LDAP практически всегда будут иметь место пользователи, которые, будучи добавлены в дерево каталогов, не будут иметь домашней директории на конкретном компьютере. Для автоматического создания оных испольуется модуль  pam_mkhomedir.so, которые подгружается в /etc/pam.d/common-session. Однако есть интересные гра ельки: если мы умолчальный файл, который выглядит, как правило, примерно так:

session    required     pam_unix.so
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0077
поправим для работы с pam_ldap, к примеру, вот так (чтобы осталась возможность авторизоваться и не-ldap-ным пользователям):

session    sufficient     pam_unix.so
session    sufficient     pam_ldap.so
session    required        pam_mkhomedir.so skel=/etc/skel/ umask=0077
то обнаружится, что skel перестает отрабатывать. Пользователь авторизуется, заходит, но домашний каталог ему не создается.
Это происходит потому, что параметр sufficient, при успешной отработке заданного ему модуля, не продолжает проверку остальных параметров, что далее по списку, а сразу "дает добро" на вход. Об этом, и некоторых других важных для работы с PAM вещах, можно почитать тут.
Параметр required не предполагает принятия положительного решения (если заданный ему модуль дает отрицательный ответ, дальнейшая проверка прекращается), поэтому в случае положительного ответа модуля просмотр файла в /etc/pam.d/ продолжается.
Посему наши грабельки лечатся до безобразия просто:
session    required     pam_mkhomedir.so skel=/etc/skel/ umask=0077
session    sufficient     pam_unix.so
session    sufficient     pam_ldap.so

30 сент. 2010 г.

NX Client + Multimedia support

Появилась интересная задачка - получить звук с удаленного терминала на локальную рабочую станцию. И там и там linux (Debian Lenny и Ubuntu Lucid), терминал - NX (не ванильный NX-free от NoMachine), а RX@Etersoft, но в данном вопросе сие неважно). 
Немного потыкавшись по интернетам, выяснил, что сие возможно, причем без излишнего шаманства. Разработчики клиента добавили функционал "проброса" аудио-потока через nx-сессию, поэтому со стороны клиента достаточно в настройках подключения во вкладке Services выставить галку Multimedia Support. 
С серверной стороны действий несколько больше. Вскрытие показало, что для передачи аудио-потока используется eSound. В принципе, никаких допольнительных настроек оного не требуется, достаточно просто его установить:
apt-get install esound
Затем выставляем галку "Включить программное смешивание звука (ESD)" в Система - Параметры - Звук - вкладка Звук. Если установлен пакет gnome-audio, то тут же можно проверить работоспособность на звуковых файлах, нажав "Воспроизвести".
В принципе, всё. Можно слушать музыку, смотреть фильмы и так далее, нужно лишь установить какой-нибудь поддерживающий esd медиаплаер. Например, для работы с amaroK нужно в настройках движка xine (должна быть установлена библиотека libxine1) выставить модуль вывода esd. 
Непонятно, правда, как правильно задать вывод через esd для vlc, я ниасилил сделать это в интерфейсе настроек. Однако рабочим является такой вариант: vlc --aout=esd file:///home/user/Track1.mp3. Предварительно стоит установить пакет vlc-plugin-esd, который по умолчанию не всегда установлен.
Таким образом, если ширина канала позволяет, звук идет без артефактов. Теоретически, думаю, можно регулировать канал потока, но этим я не занимался пока что.

28 сент. 2010 г.

10.04 + ps/2 mouse

Столкнулся при установке/настройке Ubuntu Server 10.04 с неработоспособностью ps/2-мышки, однако, думается, сабжевые грабли возможны и при работе с другими дистрибутивами. Лечится элементарно - установкой пакета mdetect:
apt-get install mdetect
В особо клинических случаях может не хватать модуля для xorg-a, тогда:
apt-get install xserver-xorg-input-mouse

27 сент. 2010 г.

eGroupware + Невозможность добавления групп

При работе с eGroupware версии 1.6.003-2 вскрылся неприятный баг - невозможно добавить группу. Точнее, интерфейс добавления доступен, работает, но в итоге группа никуда не добавляется. Лечится, в целом, просто. В файле /usr/share/egroupware/phpgwapi/inc/class.accounts_ldap.inc.php ищется строчка if (!$old) - 243-я в моем файле - и меняется на  if (!$old && !$is_group). Собственно, всё. Если лень менять руками, тут обсуждается это же, но в форме патча.

22 сент. 2010 г.

Openoffice.org 3.2.1 + black splash

В свежем Инфра-Ресурсном Openoffice.org 3.2.1 имеется непонятный баг - при запуске (что в KDE4, что в LXDE), имеем черную заставку с кривым прогрессбаром. Лечится также непонятно, но просто: 
chmod -x /opt/openoffice.org3/program/ooosplash.bin
Никаких косяков впоследствии мной замечено не было, а заставка - работает ;)

21 сент. 2010 г.

Заполнение known_hosts

Иногда при настройке рабочей станции пользователя на базе Linux, или при создании образа тонкого клиента (особенно в этом случае!), или просто при загрузке образа с системой по сети требуется заполнить файл /home/user/.ssh/known_hosts, дабы ssh при подключении не ругался непонятными для человека буквами и цифрами. Вот как легко и просто это сделать:
ssh-keyscan -t rsa $server_ip >> ./known_hosts
О том, что это вообще за механизм такой, можно поглядеть, к примеру, тут. Или где-нибудь еще из выдачи Google. $)

20 сент. 2010 г.

xorg.conf + gtf

В очередной раз сегодня пришлось вспомнить, как вручную задать требуемое разрешение/развертку экрана в X.org. Дабы было, где искать, оставлю линк здесь - бамс!

9 сент. 2010 г.

NX + numlock + клавиатура

Так, оставлю заметку здесь, чтобы помнить, где искать. Если имеется RX@Etersoft в качестве терминального сервера (или просто freenx, неважно) и nxclient в качестве, соответственно, клиента, то может проявиться пренеприятный баг: при создании терминального подключения сходят с ума клавиатурные маппинги некоторых клавиш (например, при нажатии стрелки вверх запускается скриншотер, т.е. отрабатывает PrScn). Лечится изменением типа клавиатуры на управляемую evdev. После переподключения проблема не воспроизводится. Правда, в некоторых случаях следует сходить в настройку клавиатуры, в часть горячих клавиш, и поменять там биндинг "Снять скриншот" с Print на Ctrl+Print.
Еще одна проблема - отваливается дополнительная клавиатура. Она лечится добавлением директивы NUMLOCK_METHOD="on" в /etc/nxserver/node.conf.d/50-numlockx.conf. Дополнительно может потребоваться отключение слежения DE за состояникм Numlock'а. В Gnome это делается с помощью gconf-editor'а: снять галку /desktop/gnome/peripherials/keyboard/remember_numlock_state.
Править можно также и вручную, все описанные директивые по такому же пути доступны в xml-файлах в /home/$user/.gconf.
UPD: В некоторых непонятных случаях ничего из вышеперечисленного не помогает. В некоторых случаях из этих некоторых помогает еще одна таблетка - переинициализация среды gnome. Это можно сделать, удалив из ~ директории .gconf .gconfd .gnome .gnome2 .gnome2_private .nautilus  .themes. После перезахода она создадутся заново, и numpad магическим образом начинает работать.

6 сент. 2010 г.

Нечитаемые имена файлов внутри zip-архива

Дельно о корректной распаковке за-zip-ленных в виндах архивах с левой кодировкой - тут.

3 сент. 2010 г.

МТС Коннект

Поговорим о 3G/EDGE/GPRS USB модемах, раздаваемых "большой тройкой". Сейчас речь пойдет о Huawei E1550, но, думаю, для других моделей все нижесказанное тоже актуально, за исключением разве что idProduct'а и idVendor'а, которые можно найти в Сети для каждой железки.
Проблема работы этих устройств в линуксах заключается, по большому счету, в том, что при подключении девайс определяется как CD-ROM, на котором лежит софт для подключения и работы в винде. После установки он сам переключает (flip-flop) девайс на "режим модема". У linux же такое переключение возможно, если работать с модемом софтинкой Mobile Partner от Huawei. Но она, на мой взгляд, уж сильно прожорливая и неторопливая, что особо нехорошо для мобильных устройств. Итак, основная задача - перевести девайс в режим модема, заимев в результате /dev/ttyUSB0, через который pppd и  будет "звонить". В случае Ubuntu все просто:
sudo apt-get install usb-modeswitch
Свежие версии "знают" о Huawei E1550, поэтому добавлять ничего не придется.
Для того, чтобы модем переключался в нужный режим автоматически при подключении, создадим правило udev: /etc/udev/rules.d/45-huawei1550.rules следующего содержания:
SUBSYSTEM=="usb", SYSFS{idProduct}=="1446", SYSFS{idVendor}=="12d1", RUN+="/usr/sbin/usb_modeswitch -v 0x12d1 -p 0x1446 -m 0x01 -M 55534243000000000000000000000011060000000000000000000000000000"
Таким образом, если udev видит подключенное устройство с совпадающими параметрами, он выполняет соответствующую команду.
Для проверки следует переподключить модем и поглядеть вывод lsusb, который должен отрапортовать о наличии модема.
lsusb | grep Huawei
Bus 003 Device 004: ID 12d1:1001 Huawei Technologies Co., Ltd. E620 USB Modem
В случае с Debian Lenny действий придется совершить чуть больше, ибо пакет usb-modeswitch доступен только для sid. Не беда, соберем сами. Алгоритм простой: качаем исходники, распаковываем, собираем и устанавливаем. Предварительно полезно прочитать информацию на страничке продукта, выяснив, к примеру, что для сборки необходимо установить пакеты tcl и libusb-dev, а также pppconfig для последующей настройки подключения.
apt-get install tcl libusb-dev pppconfig
mkdir modswitch; cd modeswitch
wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-1.1.4.tar.bz2
tar zjvf  usb-modeswitch-1.1.4.tar.bz2
cd  usb-modeswitch-1.1.4
make install
cd ..
wget -c http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20100826.tar.bz2
tar xjvf usb-modeswitch-data.tar.bz2
cd  usb-modeswitch-data
make install
Установщик сам "договорится" с udev-ом, поэтому переключение в режим модема при подключении девайса должно работать сразу, что и следует  проверить после окончания установки usb-modeswitch.
Теперь осталось лишь настроить ppp-подключение. Запускаем pppconfig, отвечаем на вопросы, к примеру, так: 
Create -> mts -> dynamic -> pap -> mts -> mts -> 115200 -> tone -> *99# -> Нет -> /dev/ttyUSB0 -> Finished
Все, осталось запустить соединение:
pppd call mts nodetach
Все должно работать. 
Один раз, на убунте, столкнулся с ошибкой: pppd отключался с таким отлупом:
Protocol-Reject for 'Compression Control Protocol' (0x80fd) received
rcvd [IPCP ConfNak id=0x1 ]
sent [IPCP ConfReq id=0x2 ]
Modem hangup
Connection terminated.
Полечилось явным указанием точки входа в /etc/chatscripts/mts:

# modeminit
'' ATZ
'' AT+CGDCONT=1,\"IP\",\"internet.mts.ru\"
Проверка скорости на internet.yandex.ru:

Я.Интернет. Измерьте вашу скорость.
То бишь - HSDPA имеет место быть худо-бедно ;)

12 авг. 2010 г.

samba + централизованное управление монтированием сетевых ресурсов

Некоторое упрощение и централизация операций с пользовательскими сетевыми дисками...
Настройки самбы:
security = user
[homes]
comment = Home Directories
browseable = no
path = /home/%u/net
read only = no
create mask = 0770
directory mask = 0770
valid users = %S
[netlogon]
comment = Network Logon Service
path = /home/%u/netlogon
guest ok = no
read only = yes
browseable = no
share modes = no
Скрипт подключения сетевых дисков (для каждого win-пользователя) l_script.cmd
@echo off
net use z: \\server\share1 /y
net use y: \\server\share2 /y
...
net use b: \\server\shareN /y
Настройки на рабочей станции пользователя: 
Записанный в автозагрузку скрипт обращения к удаленному скрипту (l_script.cmd на сервере) login.cmd:
@echo off
net time \\server /set /y
call \\server\netlogon\l_script.cmd
Таким образом, при логине win-пользователя в систему вызывается login.cmd, который синхронизирует время с сервером и вызывает оттуда скрипт l_script.cmd, который, в свою очередь, монтирует заданные для этого пользователя шары. Для того, чтобы при запуске системы окно консоли не вызывало испуг пользователя (с последующим звонком админу ;) ), сворачиваем его в панель задач: правый клик на ярлыке .cmd-файла в Автозагрузке - Свойства - Ярлык - пункт Окно - Свернутое в значок.
P. S.: Описанный механизм будет работать без участия пользователя лишь в случае, если учетная запись пользователя на рабочей станции полностью совпадает с учетной записью на сервере. Если по каким-то причинам это невозможно, то следует поменять скрипт login.cmd следующим образом:
@echo off
net time \\server /set /y
net use p: \\server\netlogon /USER:username password 
call p:\l_script.cmd
net use p: /delete /y

samba + ldap

Оставлю здесь ключевые грабли по проекту "Авторизация пользователей samba в LDAP". Во-первых, ссылка на описание переменных самбы - вот или вот
Далее, по конфигу:
netbios name = SERVER
security = user
passdb backend = ldapsam:ldap://127.0.0.1
ldap passwd sync = no
ldap suffix = dc=gmz,dc=local
ldap user suffix = ou=users
ldap group suffix = ou=groups
ldap admin dn = cn=admin,dc=gmz,dc=local
enable privileges = no
obey pam restrictions = no
domain logons = yes
domain master = yes
local master = yes
#для замуты с логонскриптами
logon path = \\%N\%U\profile
logon drive = P:
logon home = \\%N\%U
logon script = l_script.bat
Чтобы самба начала ходить к лдапу, ей нужно дать пароль админской записи: smbpasswd -w "ldap_admin_password"
По дереву LDAP'a:  дабы пользователь мог авторизовываться через ldap на самба-шарах, нужно:
1) после его создания дать ему objectClass'ы sambaSamAccount (возможно после добавления include samba.schema в slapd.conf) и shadowAccount;
2) добавить аттрибут shadowLastChange (для того, чтобы заработала смена пароля через smbpasswd)
3) добавить пользователя непосредственно в самбу: smbpasswd user 

Также следует установить пакеты smbldap-tools и samba-doc. Там есть и тема для LDAP'а или некие необходимые скрипты (в основном, похоже, интересны для построения домена).

9 авг. 2010 г.

Копирование в консоли с прогрессбаром

Каждый, кто копировал/архивировал/дампил что-то большое консольно, задумывался "а когда ж все это завершится?". То есть мечтал о прогрессбаре. Найденные на просторах Хабра pipeviewer (pv) и скрипт bar отчасти проблему решают (в плане архивов и дампов), однако для меня наиболее частой операцией подобного рода является копирование папок с большим количеством файлов, опрогрессбарить которое ни тому, ни другому не под силу. И найденный позже рецепт копировать rsync'ом (rsync -r --progress /path/from/ /path/to/) также не стал панацеей, так как он показывает прогресс каждого файла, а не общий, как хотелось бы. В итоге решение все же есть. Модифицированный GNU cp под рабочим названием Advanced Copy имеет дополнительную опцию -g, при указании которой программа рисует прогрессбар процесса копирования файла, а если речь идет о директории, то -gR рисует уже два прогрессбара, для текущего копируемого файла и общего процесса копирования в целом.
Для работы вполне достаточно взять готовый бинарник и положить куда-нибудь в $PATH (разработчики рекомендуют заменить стандартный cp, я же просто положил его рядышком, обозвав cpbar'ом ;)), предварительно разархивировав, конечно, и поставив бит исполнения (+x).
Если вдруг не заработало, или это не ваш метод, на странице проекта можно получить инструкцию о том, как пропатчить GNU cp и скомпилировать модифицированный бинарь самостоятельно.

5 авг. 2010 г.

Если закончились временные лицензии на Windows 2000 Server...

Внезапная жопа приключилась у одного из клиентов - с рабочей станции (WinXP) перестало пускать на терминальный сервер (Win2k) с отмазой "из-за сетевой ошибки". Вскрытие показало, что виной всему было то, что старый недобрый двухтысячный сервер не имел активированного сервера лицензирования. А временная лицензия, выданная сабжевому компьютеру, внезапно кончилась.
Конечно, правильным путем решения такой проблемы является регистрация сервера лицензиования с последующей выдачей постоянных лицензий всем пользователям. Однако в полевых условиях это сделать возможным не представилось. Посему запоминаем временный хинт: удалить на клиентской машине ветку реестра HKLM\SOFTWARE\Microsoft\MSLicensing. Должно полегчать. До кучи я еще изменил имя компьютера, дабы временный сертификат выдался и сохранился в базе с другим именем.
В общем, мораль - на забываем о временных рамках ;)

25 июл. 2010 г.

Прослушивание web stream'ов

После появляения относительно толстого интернета я бросил качать всяческие радиошоу, а начал слушать музыку онлайн. На сегодяшний день основной музтрафик мне делает AH.fm и ETN.fm. Иногда еще DI.fm, но у них поток хилый, всего в 128kbps, против 192kbps и 256kbps у вышеназванных ресурсов соответственно. Но пост не об этом.
Сначала я слушал радио через amarok. Но чем дальше, тем он тяжелее, и ждать его запуска мне малость поднадоело. Сей плаер замечательно подходит для прослушивания и управления сколь угодно большой локальной коллекции, однако для двух-трех вебстримов - слонопотамен, к сожалению. 
Потом был realplayer. Запускается шустро, запомненные в Favourite url-ы стримов транслирует без вопросов. Плюс есть приятная (пусть и не особо используемая на практике) опция Live Pause (можно остановить прослушивание в любой момент, и затем продолжить с того же места, без перерыва трансляции). Однако сунувших как-то в монитор ресурсов, узрел, что все равно памяти сия софтинка уедает будь здоров. 
В итоге после прочесывания apt-cache search-ем репозитория Sid-а была найдена панацея. Имя ей - radiotray. Суть - имеется иконка в трее, по левому клику - список запомненных радиостанций, по правому - настройки этого списка и выход. Всё! Никаких тебе окон, вопросов, диалогов..ничего. Чистой воды unixway - проигрывать вебстримы и больше ничего.

30 июн. 2010 г.

Перекодировка выгрузок клиент-банка на лету (iconv + incrond)

Думал, что писал об этом, а оказалось, что думал о том, чтобы написать ;) Так или иначе, имеется небольшой скриптик, который в связке с когда-то упомянутым incron'ом занимается перекодировкой (практически "на лету") выгружаемой информации из клиент-банка из UTF-8 в CP-1251 для последующей загрузки оной в 1Сv8.1.
Создать его пришлось вследствие нежелания 1С-ки кушать выгруженные из клиент-банка (java-апплет ibank2, доступ через Firefox) данные, ибо они отдаются и сохраняются в UTF-8, тогда как 1C-ка (запущена под Wine@Etersoft) понимает только CP-1251.
Описанный костыль работает следующим образом: демоном incrond мониторится папочка:
incrontab -l
/exchange/банк/экспорт IN_CLOSE_WRITE /usr/local/bin/bank_tr_ex.sh $#
Как только в ней сохраняется файл (флаг IN_CLOSE_WRITE), запускается скрипт bank_tr_ex.sh:

#!/bin/bash

ICONV=/usr/bin/iconv
DIR=/home/exchange/банк/экспорт
OLDDIR=/home/exchange/банк/экспорт/old
FILE="$@"
ENC=`enca -i $DIR/$FILE`

if [ "$ENC" == "UTF-8" ]; then
        #echo $FILE
        sleep 1
        mv $DIR/$FILE $OLDDIR/$FILE.utf
        $ICONV -o $OLDDIR/$FILE -f UTF-8 -t CP1251 $OLDDIR/$FILE.utf
        mv $OLDDIR/$FILE $DIR/$FILE
fi
Задача скрипта: забекапить загруженный файл ($FILE.utf), транскодировать его в CP1251, подсунуть перекодированный файл вместо изначального.
После этого 1С-ка кушает выгрузку за милую душу ;)

23 июн. 2010 г.

Простейший редирект для www

Задачка: сделать редирект с http://localhost/ на http://localhost/blah, желательно быстро и просто. Возможные решения:
1) index.html:
 <META HTTP-EQUIV="REFRESH" CONTENT="0.2;URL=http://localhost/blah >
0.2 - время в секундах до редиректа
2) index.php:
<?
header ('Location: http://localhost/blah');
 >

22 июн. 2010 г.

GPG-ключ репозитория

Елы-палы, постоянно забываю, как в Дебиане (и бубунтопроизводных) добавить ключ к репозиторию:
gpg --armor --export PUBKEY | sudo apt-key add -

Debian guest + VMWare

При работе с гостевым Debian'ом в VMWare ESXi выяснилась занятная штука: udev Дебиана в упор не видел и не хотел именовать (и как следствие, я не мог указать нужное мне имя) сетевые интерфейсы. Более того, в /etc/udev/rules.d/ вообще не появлялся файл 70-persistent-net.rules, в котором описываются имеющиеся сетевые интерфейсы и осуществляется привязка имени интерфейса к его MAC-адресу.
Оказалось, что вопрос встал не только передо мной, и имеется его объяснение и решение: udev-ный генератор правил игнорирует сетевые интерфейсы, mac-адреса которых отвечают правилу:

# ignore interfaces with locally administered or null MAC addresses
# and VMWare virtual interfaces
ENV{MATCHADDR}=="?[2367abef]:*", ENV{MATCHADDR}=""
ENV{MATCHADDR}=="00:00:00:00:00:00", ENV{MATCHADDR}=""
ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", ENV{MATCHADDR}=""
То есть, не назначаются имена интерфейсам с MAC-адресами, назначаемыми вручную (и соответствующим правилу "?[2367abef]:*"), с нулевыми MAC-ами, и как раз адресами, которые по умолчанию принадлежат виртуальным vmware-интерфейсам. Таким образом, комментируем строчку
ENV{MATCHADDR}=="00:0c:29:*|00:50:56:*", ENV{MATCHADDR}="", 
в файле /lib/udev/rules.d/75-persistent-net-generator.rules (если его нет в /etc/udev/rules.d/), перезагружаемся, и udev сгенерит файлик 70-persistent-net.rules, в котором будут нужные нам строчки.

18 июн. 2010 г.

Управление пакетами в Linux


Интересная картинка, структурирующая кое-какие знания-понимания системы управления пакетами в Linux-дистрибутивах. Не то чтобы истина в последней инстанции и панацея от всех разнодистрибутивных непоняток, но в целом здраво.

10 июн. 2010 г.

VMWare Remote Console + неработающие стрелки на клавиатуре

Опять косяки с VMWare Server, точнее, с ее console. Оказывается, в некоторых случаях (а так как это связано с драйвером клавиатуры и свежим X.org, то проблема возможна во многих свежих релизах дистрибутивов) отваливается половина клавы (стрелки, цифры и т.д.) внутри гостевой машины. Воспроизводится на lin- и win- гостях. Лечилово описано в базе знаний VMWare - тут. Вкратце, правка /etc/vmware/config на хост-системе ни к чему не привела, чему я не удивлен, ведь я прихожу через браузер с третьей машины, которая не является ни гостем, ни хостом. Поэтому лечилово работает, если добавить требуемые строки в ~/.vmware/config, или создать оный с этими строками, если файл отсутствует. Мне почему-то еще пришлось переустановить Remote Console Plug-In, хотя это должно быть лишним. Опосля этих действий - заработали и стрелочки, и нампад.

Запуск двух разных версий Firefox

Как обычно, ВНЕЗАПНО!!1 выяснилось, что Firefox 3.6.3 в частности и вся 3.6.х серия вообще не работает с vmWare Server 2.0. Точнее, не со всей "вмтварью" в целом, а c Remote Console плугином. Он устанавливается без вопросов, но попытка открыть консоль виртуальной машины вываливается ошибка:
Cannot access virtual machine console. The request timed out

The attempt to acquire a valid session ticket for имя виртмашины took longer than expected. If this problem persists, contact your system administrator. 
Поиск в Сети подтвердил как проблему, так и отсутствие работающего решения. Однако, Firefox 3.5.9 работает корректно. Отсюда решение (временное, пока vmware-шники не допилят свой плугин): установить для работы с vmware релиз Fx 3.5.9, разрулить окружение фаерфоксов  с помощью профилей, запускать с разных ярлычков.
Выглядит это следующим образом:
1) создаем два профиля с помощью firefox -ProfileManager (один для работы в vmware - ff359, второй - для работы в Сети - ff363);
2) загружаем, распаковываем два огнелиса - 3.6.3 (нынешний stable), 3.5.9 (oldstable, я так понимаю).
3) создаем ярлычки запуска, указывая в поле запускаемой команды для "рабочего" браузера:
/opt/ff363/firefox -no-remote -P "ff363"
для "вмтварного":
/opt/ff359/firefox -no-remote -P "ff359"
Собственно, все ;) Теперь каждый из огнелисов запускается с собственным профилем, то есть дополнения, закладки, етц не пересекаются (опция -P), и при запуске копии браузера при уже запущенном открывается новое окно, а не вкладка (опция -no-remote).

1 июн. 2010 г.

Браузерное

Потихоньку переезжаю на Firefox. В основном потому, что надоело маяться с оперой по сабжу просмотра разного рода онлайн видео, а также - сильно нешустрой работы с гуглосервисами. Согласен, в винде таких проблем нет, и опера рулез ;) Но в линуксе, к сожалению, у норвежцев не все так радужно. Плюс хреново (опять же, в линуксе) работает Opera Link (особенно отвратно , точнее совсем никак, через прокси). А альтернативы (по степени интеграции) вследствие закрытости API браузера нет. А синхронизация между рабочим браузером и домашним мне нужна. По тем же причинам не вышло на равных работать дома в ФФ (смотреть "трубу" и читать Google Reader), на работе в Опере (гуглить, ресерчить, читать) - единого средства синхронизации закладок (а лучше еще и сохраненной истории и паролей) не существует. А то, что можно присобачить (тот же diigo.com, к примеру), использовать в опере с удобством невозможно, ибо работать можно разве что с закладками, и то или на отдельной странице, или сервлетом. В огнелиса же, с помощью дополнений, интегрируется практически что угодно. И синхронизация между n-ным количеством браузеров отпадает, как проблема, в принципе.
Посему - едем.
Все знают, что без дополнений Фаерфокс - так себе поделие. С ними же - мощный инструмент интернетчика любого помола. Таким образом, вот уже с недельку то тут, то там подглядываю да подсобирываю дополнения, которые призваны облегчить мне жизнь тяжелую и неказистую. Описывать свой use-лист смысла не вижу, ибо все дополнения, которые мною используются сегодня, я сбил в одну подборочку, там все алфавитно сортировано и описаниями автоматически снабжено. Оттуда же и стащить себе можно, коли что понравится. Конечно, по мере увеличения скилла лисозаводчика сей список будет меняться. Однако линк останется прежним, поэтому милости просим. Вдруг кто что для себя найдет, что сделает его пребывание в Сети более комфортным. Ведь ради этого все и писалось (ну, кроме, конечно, цели самому не забыть, где что лежит и как туда добраться ;) )

5 мая 2010 г.

ClusterSSH

Оказывается, есть такая круть. Как использовать это счастье - чтить сюда. Есть в репах Деба/Убунты.

28 апр. 2010 г.

Netwok Scanner (saned + xsane) HOWTO

Замечательный разжеванный метод настройки saned и xsane для работы сканера по сети. Если кратко, то
1) сервер:
а)  /etc/sane.d/saned.conf :
localhost
192.168.0.0/24
b) /etc/xinetd.d/sane-port: 
service sane-port
{
port = 6566
socket_type = stream
wait = no
user = nobody
group = scanner
server = /usr/sbin/saned
disable = no
}
c)  /etc/services:
sane-port 6566/tcp # SANE network scanner daemon
 d) /etc/rc.d/xinetd start

2) xsane
 a)  /etc/sane.d/net.conf:
192.168.0.1 #saned server IP

Как-то так, да...

14 апр. 2010 г.

Добыча вложений из eml-файла

Есть .eml файл, внутри которого торчит бинарник. Задача - достать оный ;) Оказалась - не такая уж и тривиальная: васяких типа доставальщиков, экстракторов и прочих вьюверов масса, но все хотят денег и не хотят работать. Прочитать письмо можно, банально сменив разрешение на .mht и скормив любому браузеру. А вот достать аттач - не выходит. Решение: плугин для просмотра\работы с EML-файлами для Total Commander. Ставим, откываем на F3 - правой кнопкой - Save Attached To... Всё! ;) Теоретически плуг работает и с Unreal Commander, но практически у меня не завелся - файл все равно открывается в Universal Viewer'е, что неправильно. Разбираться, честно, лень, спать пора ;)

13 апр. 2010 г.

Vmware Server 2.0.2 + RuntimeFault: Database temporarily unavailable or has network problems.

Странная ботва с VMware Server, была как на 2.0.1, так и после обновления до 2.0.2: при попытке добавить новую роль или ассоциировать имеющиеся роли с пользователями вмтварь плюется ошибкой вида
RuntimeFault: Database temporarily unavailable or has network problems.
Выяснилось (тут и тут), что проблема возникает вследствие того, что при добавлении юзера в роль происходит конфликт id-номеров вновь добавляемого пользователя, и администратора. Лечится это изменением директивы NextAceId с 11 на 20 в файле  /etc/vmware/hostd/authorization.xml. 

12 апр. 2010 г.

Контрольная цифра EAN-13

Потребовалось "восстановить" незаписанную вовремя контрольную (13-ую, последнюю) цифру штрихкода EAN-13. Собственно, результат:
#!/bin/bash
#Проверка наличия кода
if [ -z "$1" ]; then
echo "Введите сканкод в качестве аргумента"
exit 0
fi
CODE12=$1
#Определение длины кода
LEN1=`echo $CODE12 | wc -m`
#отбрасывание символа перевода строки
let LEN2=$LEN1-2
#echo $LEN1
#echo $LEN2
#Разбиение строки кода на отдельные цифры
for D in `seq 0 $LEN2`
do
let NUM=$D
let DIG$NUM=${CODE12:$D:1}
# echo DIG$NUM=$DIG$NUM
# echo $D
done
#Если по длине предполагается неполный EAN13, произвести расчет контрольной цифры
if [ $LEN2 == 11 ];then
#chet
VAR1=`expr $DIG1 + $DIG3 + $DIG5 + $DIG7 + $DIG9 + $DIG11`
#nechet
VAR2=`expr $DIG0 + $DIG2 + $DIG4 + $DIG6 + $DIG8 + $DIG10`
VAR3=`expr $VAR1 \* 3`
VAR4=`expr $VAR2 + $VAR3`
#Выбираем только последнюю цифру переменной $VAR4, если ее длина больше 1
LENVAR4=`expr length $VAR4`
if [ "$LENVAR4" -gt "1" ]; then
VAR4OFFSET=`expr $LENVAR4 \- 1`
let VAR4LAST=${VAR4:$VAR4OFFSET:1}
# echo $VAR4LAST
else
#Если длина $VAR4 единична, сразу определяем $VAR4LAST
VAR4LAST=$VAR4
fi
CTRL=`expr 10 \- $VAR4LAST`
if [ $CTRL == 10 ]; then
CTRL=0
fi
#Вывести контрольную цифру
  echo "Контрольная цифра для штрихкода $CODE12 - $CTRL"
fi

8 апр. 2010 г.

Karmic + MOTD

Не могу сказать, в какой из версий Ubuntu после 8.04 (hardy) появилась фича пихать в сообщение приветствия после успешного логина информацию об имеющихся обновлениях, но в 9.10 (karmic) она имеется точно. И меня напрягают неизбежные тормоза между успешной аутентификацией и появлением консоли. Поэтому надо выключить. Беглый обзор системы дал следующий рецепт: найти в /etc/pam.d/sshd строчку 
 session optional pam_motd.so
и закомментировать оную. Быстро и просто.
Если копнуть глубже, то выясняется, что сабжевый PAM-модуль поставляет пакет update-motd. Там же говорится, что для отключения динамического заполнения MOTD достаточно удалить содержимое /etc/update-motd.d/. Или вообще снести напрочь этот пакет ;)
Так или иначе, но без сей приблуды (не спорю, местами полезной) консолька снова радует быстрым логином ;)

31 мар. 2010 г.

VMware Server 2.0.x + Kernel 2.6.32

При установке vmware-server-2.0.2 на ядро 2.6.32 имеются, оказывается, грабли: установщик не может скомпилировать модули для работы сетевой подсистемы. Интернет говорит, надо что-то патчить. А лень ;). Но если взять вот этот скриптик (полный мануал и авторский пост тут), то он сам все сделает и запустить vmware-install.pl по завершении своей деятельности. За что ему (и скрипту, и автору - Radu Cotescu ) башое человеческое спасибо!
UPD: на оффсайте проблему работы под 2.6.32 вроде как тоже видели, и, мол, решается она правкой пары строчек  в сорцах модулей - вот так. Возможно, описанный выше скрипт сгружает патч, делающий именно это. А может и нет. Времени проверять второй вариант нет, поэтому оставляю лишь для общего развития с ярлычком "нетрогано"

27 мар. 2010 г.

anyremote HOWTO

Задолбавшись в очередной раз вставать с дивана, дабы прибавить звук или запустить очередную серию "Теории большого взрыва", захотелось облегчить свою тяжелую и неказистую жизнь ваянием "лентяйки". Так как из инструментария имелся, собственно, компьютер с Debian Sid и телефон с J2ME, умеющий Bluetooth, использовать будем именно их ;). Для рабочей станции был прикуплен самый дешевый голубозубый адаптер (Acorp какой-то). 
delayer@inspire:~# lsusb
Bus 002 Device 002: ID 1131:1004 Integrated System Solution Corp. Bluetooth Device
Ресерч по предмету управления через блютуз мометнально привел на страничку проекта anyremote, полностью удовлетворяющего моим запросам. Как сам anyremote, так и его фронтенды kanyremote и ganyremote (угадай, для какой DE который ;) ), наличествуют в репозиториях, ставим оттуда.
Сразу оговорюсь, что увидеть kanyremote мне так и не удалось, ибо пакет требует в качестве зависимости python-kde4, который на сегодняшний день является сломанным пакетом (для Sid точно). Если у вас KDE чуть постарее чем 4.3.4-2, то установиться должно. Я же поставил ganyremote.
Наверное, для знакомства с возможностями программы, да и для закачки J2ME-клиента в телефон (однако, можно jar/jad-файлы взять отсюда), графический фронтенд попробовать стоит. Не буду останавливаться на менюшках, опциях и прочем - интерфейс локализован, всё, на мой взгляд, интуитивно понятно. К тому же, у проекта достаточно хорошая документация.  Отмечу лишь, что у GUI-я вырисовалась одна очень неприятная особенность: хотя, судя по опциям, программа должна уметь, учуяв в зоне действия голубозуба телефон, запомненный в настройках, запускать на управление сервер, указанный в этих самых настройках, она этого не делает. Чтобы чем-то поуправлять, нужно вручную выбрать в списке нужный сервер и даблкликнуть на нем. Тогда он перейдет в состояние "Управляется", и телефон этот сервер увидит и даст подключиться. 
Избежать такой вселенской несправедливости можно, запустив anyremote напрямую, в обход фронтенда. А чтобы иметь возможность управления несколькими приложениями, можно запустить несколько копий anyremote с разными конфигурационными файлами. Для упрощения и автоматизации этого процесса я накидал вот такой вот скриптик: 
#!/bin/bash

AR=/usr/bin/anyremote
CFGDIR=/usr/share/anyremote/cfg–data/Server–mode/
CONNECT=bluetooth
CHAN=20
USER=delayer
for PROG in mplayer vlc tvtime fileManager2 amarok
do
if [ –e $CFGDIR/$PROG.cfg ]; then
$AR –s $CONNECT:$CHAN –u $USER –name $PROG –f $CFGDIR/$PROG.cfg &
let "CHAN += 1"
echo $CHAN
else
echo "Для запуска управления программой $PROG не найден конфигурационный файл $PROG.cfg!"
fi
done
Запускаются пять серверов, которые java-клиент находит в зоне действия и может подключиться к любому выбранному. Anyremote позволяет запускать, контролировать и закрывать приложения, управление которых организуется. 
Да, разработчиками предлагается конфигурация типа all-in-one, где одним сервером запускается интерфейс управления сразу несколькими программами. Но у меня подружиться с этим не вышло: на отдельных конфигах сабжевые проги управляются стабильнее и проще. Именно поэтому был избран путь запуска отдельного процесса anyremote для каждого сервера.
Have fun! $)
P.S. Если при выполнении скрипта шелл говорит, что знать не ведает, что такое let, следует набрать от имени суперпользователя dpkg-reconfigure dash, ответив отрицательно на появившееся окно. Таким образом системе явно будет указано не использовать dash (который не знает о let, ибо это встроенная команда в bash) в качестве шелла по умолчанию.

23 мар. 2010 г.

mediawiki + отключение анонимусов

Чтобы использовать внутрикорпоративную wiki для целей записи различного рода настроечной и отладочной информации, однако имея доступ к ней из Сети, следует ограничить доступ к статьям "левых" людей. Очевидно, это можно сделать по-разному, у меня получилось так: В файл LocalSettings.php, что находится в корневом каталоге wiki, добавим следующие строки:
#restrict acc creation
$wgGroupPermissions['*']['createaccount'] = false;
$wgGroupPermissions['*']['read'] = false;
$wgGroupPermissions['*']['edit'] = false;
Таким образом, все незарегистрированные пользователи получают запрет на создание аккаунта (это выражается в том, что на главной странице нет ссылки "Создать аккаунт", а также на чтение и редактирование страниц, то есть при попытке зайти на любую страницу (пусть даже по прямой ссылке на нее), будет показано предложение авторизоваться. Создать же пользователя можно будет уже существующему администратрору или бюрократу из спецстраниц.

15 мар. 2010 г.

lenny + gnome-panel freeze

Очень странная фигня нарисовалась сегодня - после обновления Debian (c Etch до Lenny) на терминальном при создании терминального подключения gnome-panel запускалась, но была не активна, невозможно было нажать ни на значки, ни на меню. Причем после  /etc/init.d/gdm restart работа возобновлялась. Ярлыки на рабочем столе при этом работали корректно, приложения запускались. HUP панели к положительному результату не приводил. В итоге решение нашлось следующее: после обновления не были установлены драйвера к видеоадаптеру, и как следствие X-сервер не мог запуститься с ошибкой "no screens found". Установка необходимых дров и перезапуск иксов проблему "замороженной" панели решило. Хрен знает, что за дела ;) Но на заметку.

7 мар. 2010 г.

Canon MF3228 + Linux

Работа МФУ Canon MF3228 и иже с ними (и вообще любого печатающего девайса, производитель которого не знает других операционок, кроме Win) - два рецепта: первый и второй. Каждый из них по-своему костылен, но оба работоспособны. У первого есть проблема с работой под виндами моложе WinXP ввиду отсутствия корректно работающего redmon'а под vista/7. Второй более сложен по реализации, но работает везде, вроде как. Надеюсь, в скором времени получится выложить более сжатую версию сих документов. Но не обещаю ;)

Jabber showbattle

Да, и раз уж тема зашла о Jabber'е и его околотках, положу на страничку с хабра ссылочку. Если кратенько - снежки в жаббере. Если подробненько - по ссылочке ;)

приход в juick

Дело было вечером, делать быть нечего. Точнее, ничего делать не хотелось ;) Так или иначе, итогом сего времяпрепровождения явилось - http://juick.com/delayer/. До сих пор не понимаю животворящей идеи микроблоггинга, однако в этом конкретном случае, думаю, можно попробовать использовать сей сервис как рупор к Всемогущему ALL. Вследствие отсутствия регистрации и дополнительного софта (кроме уже имеющегося J-клиента) точка входа падает до минимума ;)

28 февр. 2010 г.

Debian. Неофициальные репозитории пакетов

Некоторое количество неофициальных репозиториев Debian - тут. Вполне может пригодиться.

13 февр. 2010 г.

Samba + Корзина

Интересное решение "защиты от дурака" для samba-шар - реализация Корзины на открытых файловых ресурсах. Делается через механизм VFS. Подробности и пример конфига - тут.

10 февр. 2010 г.

samba + unix accounts

Поставил я на новый сервер Lenny, завел там с полтора десятка пользователей. И нужно теперь развести, согласно данной заказчиком бумажке, этих пользователей по различным samba-шарам, с учетом указаний видимости/невидимости тех или иных общих каталогов. Умолчальный для меня способ - завести согласно списку unix-пользователей список smb-пользователей и уже средствами samba-ы развесить нужные разрешения. Однако лень. В итоге брожения по Сети на предмет поиска идеи упрощения своей тяжелой и неказистой жизни привели к следующим выводам:
1) как вариант, использовать существующие учетки системных (/etc/passwd, /etc/shadow) пользователей, авторизуясь, тем самым, через PAM. Однако тут есть существенные грабли. Как выяснилось практически и теоретически, механизм обмена аутентификационными данными у PAM и samba шифруются разными алгоритмами, и поэтому отправить самбу к PAM'у можно (obey pam restrictions = no), но бессмысленно - хеши паролей не совпадут  со всеми вытекающими. Чтобы  это обойти, требуется дополнительно отключать шифрование паролей со стороны сервера (encrypt passwords = no) и принуждать smb-клиентов отсылать пароль в plaintext, что запрещено по умолчанию как в linux, так в windows. Для этого smbclient следует запускать с указанием альтернативного конфиг-файла, в котором записано следующее (рецепт отсюда): 
[globals]
    client lanman auth = yes
    client plaintext auth = yes
В случае win-клиента необходимо поправить реестр, запустив такой reg-файл:
REGEDIT4
[HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanmanWorkStation\parameters]
"EnablePlainTextPassword"=dword:00000001
Или вручную, в Администрировании - рецепт тут.
Таким образом, клиент, желающий аутентифицироваться будет отправлен к PAM'у, где его будет ждать
auth    required        pam_unix.so nullok_secure
2) Можно утащить все в LDAP и c помощью того же PAM'а авторизовывать всех и вся. Рецептов - вал. Такой способ я считаю единственно верным в достаточно большой компании со сложной инфраструктурой и, возможно, частыми изменениями учетных данных и прав доступа. Внеся необходимые изменения в одном месте, получаем изменения во всех точках, касающихся авторизации.
3) Миграционно-ленивый метод. Здесь мы не выступаем против разграничения  /etc/passwd и smbpasswd. С другой стороны, мы противимся мартышкиному труду вбивания n-ного количества пользователей два раза, с последующим слежением (при необходимости) за синхронизацией изменений. Используя libpam-smbpass, мы будем создавать базу smbpasswd из существующей /etc/passwd постепенно. Тут можно поступить двояко. Или введя дополнительно в PAM следующее условие:
auth    optional        pam_smbpass.so  migrate
Таким образом, внеся это в common-auth, мы получим создание smbpasswd-записи для аутентифицирующегося пользователя в любом сервисе, использующем common-auth (login, ssh, proxy...). А так как для введения сервера "в бой" мне придется как минимум единожды залогиниться в систему всеми пользователями, то задача решится сама собой.
Или, с другой стороны, можно дополнительно к использовать первый способ. Такой сценарий идеален для миграции с шар "всё всем" на шары "каждому по потребностям" без геморроя и возмущенных звонков пользователей. Включил на месяц, а потом прикрыл plaintext-лавочку. И секурность соблюдена, и нервы в порядке.
Также необходимо добавить в common-password следующую запись:
password        optional        pam_smbpass.so nullok use_authtok try_first_pass
Это даст нам возможность автоматической синхронизации учетных данных при смене пароля unix-аккаунта. Раз уж мы используем одинаковые аутентификационные данные для работы в unix -среде и доступа на smb-ресурсы, то подобная синхронизация необходима. 

2 февр. 2010 г.

Вниманию абонентов "Билайна"

Касается всех абонентов "Пчелайна". В свежей редакции договора "Об оказании услуг связи "Билайн" появился вот такой пункт: 
9. Соглашаясь с условиями Договора в настоящей редакции, Абонент выражает свое согласие на получения рекламной информации, распространяемой по сетям связи в целях и случаях, когда необходимость такого согласия предусмотрена нормативно-правовыми актами о рекламе.
Под рекламной информацией в рамках настоящего пункта понимается информация, распространенная любым способом, в любой форме и с использованием любых средств, адресованная неопределенному кругу лиц и направленная на привлечение внимания к объекту рекламирования (когда объектом рекламирования является третье лицо), формирование или поддержание интереса к нему и его продвижение на рынке. К рекламной информации не относится информация об Операторе и Услугах, доведение которой до Абонента Оператором обязательно в соответствии ФЗ «О связи», Правилами и другими нормативными документами в их развитие.
В случае несогласия Абонента с получением рекламной информации условия настоящего пункта не распространяют свое действие на взаимоотношения Сторон при условии, что Абонент:
- подпишет соответствующее заявление об отказе при заключении Договора или направит его в адрес Оператора в период действия Договора, в том числе при принятии изменения условий договора;
- откажется, позвонив на соответствующий телефонный номер. Подробности на сайте www.beeline.ru
Вот такие вот пироги. И действительно, за последнюю неделю несколько единиц спама уже мною было получено. Причем, редиски, номер в договоре не прописали, и, чует мое сердце, по www.beeline.ru можно до-о-олго его искать. На наше счастие есть Хабр, а на хабре есть статья, а в статье есть нумер - 0674 05551, позвонив на который, мы от сего пункта, согласно договору, отказываемся.
Да, а бланк заявления тоже имеется - вот.

1 февр. 2010 г.

SAMS + Y2010 Error

Кто пользует Squid Account Management System (SAMS) и еще не в курсе, почему у пользователя невозможно отобразить статистику за 2010 год, читать сюда.

26 янв. 2010 г.

CP1251 -> UTF8

Вот тут лежит очень скриптик, порой очень полезный. Я бы и сам мог его написать, если бы понадобилось часто пользоваться iconv'ом...но раз уж есть готовое решение, да еще и удобно "упакованное", то правильнее будет не плодить энтропию, а сказать "Пасиба" автору и пользовать. Собственно, сам скрипт:

#!/bin/sh
mv "$1" "$1.bak" \
&& iconv -f windows-1251 -t utf-8 "$1.bak" > "$1" \
&& (echo "Done:"; ls -la "$1"*)

24 янв. 2010 г.

IPv6 Era. The Beginning (на примере debian sid)


А вот захотелось мне поработать с ipv6, дабы понять, что это за зверь, и какое нас с этим зверем может ждать будущее. Провайдер мой такое счастие сам не дает, поэтому будем пользоваться услугами сторонних ресурсов, а именно GoGoNet. О том, что представляет из себя шестая версия IP протокола, также известная как  IP Next Generation (IPng), распространяться не буду, ибо, во-первых, сам еще слабо прощупал эту тему, а во-вторых, материала для "прощупывания" в Сети немало. Начать можно с Википедии, и дальше по ссылкам.
Заиметь IPv6 адрес сегодня можно, по сути, четырьмя способами:
1) прямым, то есть получив адрес от провайдера;
2) 6to4, интересен при наличии IPv4 статики;
3) туннельным, то есть с помощью так называемых "туннельных брокеров";
4) teredo, протокол, инкапсулирующий ipv6трафик в UDP-датаграммы ipv4.
Краткое описание указанных способо, а также перечисление основых плюсов-минусов использования того или иного из них можно поглядеть здесь.
В данной заметке речь пойдет о туннельном брокере gogonet. Чтобы получить доступ к его сервисам, следует зарегиться. Так как это социальная сеть, то при регистрации спрашивается куча всякой хрени ;). Внутри этой соцсети есть сервис Freenet6, который и предоставляет доступ к ipv6-вселенной. С ним можно работать и анонимно, и авторизованно. Разница вся в том, что при анонимном подключении ipv6 вашего туннеля будет новым при каждом подключении. А, согласитесь, динамический ipv6 - это даже не смешно. Фичей "авторизованного" туннеля является выдача в перманентное пользование одного и того же адреса. Итак, регаемся во Freenet6 - тут. После успешной регистрации на мыло свалится письмо, где будут указаны userid/password, которые были вбиты при sign up процедуре. Они нам еще пригодятся ;)
Далее. Отсюда грузим доку по конфигурации клиента и сам клиент. В доке много полезного, так что она обязательна к прочтению, или хотя бы к пролистыванию. Почему то сорцы клиента отдаются в виде файла gw6c-6_0-RELEASE-src.exe, однако на самом деле это обычный .tgz, так что
mv gw6c-6_0-RELEASE-src.exe gw6c-6_0-RELEASE-src.tgz
tar -xvf gw6c-6_0-RELEASE-src.tgz
cd gw6c-6_0_1/
В файле INSTALL имеются необходимые указания к сборке. Если кратко, то нужно иметь dev-версии некоторых пакетов (у меня, к примеру, потребовалось доустановить лишь libssl-dev), а собирать/устанавливать такой командой:
make ostype=linux installdir=/usr/local/bin/gw6/ install
Так как configure-скрипт недоступен, то понять, что не хватает каких-либо исходников, можно по  ошибке компиляции и ругани вроде

bufaux.c:54:24: error: openssl/bn.h: Нет такого файла или каталога
А где его взять? Все просто:
wajig find-file bn.h
libssl-dev: /usr/include/openssl/bn.h
wajig install libssl-dev
Итак, софтина скомпилировалась и установилась. Если использовать анонимное соединение, то уже можно запускать /usr/local/gw6/bin/gw6c. Она сама распочухает, как вы получаете инет, и поднимет sit или tun интерфейс в зависимости от типа соединения.
А мы же пойдем настраивать /usr/local/gw6/bin/gw6c.conf
Вырез
72;в все лишнее, настройки вышли такие:
userid=delayer
passwd=ss21113a
server=amsterdam.freenet6.net
auth_method=any
host_type=host
prefixlen=64
if_prefix=
dns_server=
gw6_dir=/usr/local/gw6
auto_retry_connect=yes
retry_delay=30
retry_delay_max=300
keepalive=yes
keepalive_interval=30
tunnel_mode=v6anyv4
if_tunnel_v6v4=sit1
if_tunnel_v6udpv4=tun0
if_tunnel_v4v6=sit0
client_v4=auto
client_v6=auto
template=linux
proxy_client=no
broker_list=tsp-broker-list.txt
last_server=tsp-last-server.txt
always_use_same_server=no
log_file=0
log_filename=/var/log/gw6.log
log_rotation=yes
log_rotation_size=32
log_rotation_delete=no

Вообще, конфигурационный файл неплохо комментирован, да и в доке каждый параметр детально описан, так что проблем с конфигурацией возникнуть не должно. Пара комментариев:
Директива server выставленая согласно этой ссылке. Если выставить, согласно документации, authenticated.freenet6.net, то клиент отыщет наиболее оптимальный сервер из имеющегося пула, запишет его в tsp-last-server.txt, и будет ходить за ним при каждом запуске туда. Так что можно облегчить ему жизнь.
Опция dns_server, если я правильно понял, позволяет указать адрес сервера, который обеспечивает для данного адреса reverse DNS. Это интересно, когда есть свой домен, и имеется возможность рулить IPv6-записями dns-сервера.
Ну и log_file лучше для первого запуска вывести в 3, дабы видеть, что происходит, и получать информацию для анализа в случае проблем.
Итак, первый запуск:

Built on ///Linux inspire 2.6.31-1-686 #1 SMP Sun Nov 15 20:39:33 UTC 2009 i686 GNU/Linux///.Received a TSP redirection message from Gateway6 authenticated.freenet6.net (1200 Redirection) The Gateway6 redirection list is [ taipei.freenet6.net, sydney.freenet6.net, amsterdam.freenet6.net, montreal.freenet6.net ]. The optimized Gateway6 redirection list is [ amsterdam.freenet6.net, montreal.freenet6.net, sydney.freenet6.net, taipei.freenet6.net ]. amsterdam.freenet6.net is an unknown host, do you want to add its key?? (Y/N) y
Согласившись, мы получаем публичный ключ удаленного сервера и устанавливаем с ним соединение:
Перезапустив для верности клиента, смотрим лог:
cat /var/log/gw6.log | grep IPv6
2010/01/24 19:37:24 I gw6c: Checking for Linux IPv6 support...
2010/01/24 19:37:24 I gw6c: IPv6 support found.
2010/01/24 19:37:24 I gw6c: Your IPv6 address is 2001:05c0:1400:000b:0000:0000:0000:5d07.
Соединение установлено, адрес получен, ifconfig tun0 радует своим выводом:
root@inspire:~/download# ifconfig tun0
tun0      Link encap:UNSPEC  HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
          inet6 addr: 2001:5c0:1400:b::5d07/128 Scope:Global
          UP POINTOPOINT RUNNING NOARP MULTICAST  MTU:1280  Metric:1
          RX packets:613 errors:0 dropped:0 overruns:0 frame:0
          TX packets:602 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:500
          RX bytes:547393 (534.5 KiB)  TX bytes:61258 (59.8 KiB)
Осталось лишь проверить работоспособность:

ping6 ipv6.google.com
PING ipv6.google.com(2a00:1450:8001::63) 56 data bytes
64 bytes from 2a00:1450:8001::63: icmp_seq=1 ttl=55 time=91.9 ms
Если зайти на сайт KAME, то мы увидим танцующую черепашку (работает в iceweasel, chrome, konqueror), что говорит об ipv6-соединении ;)
Для автоматизации запуска добавим в /etc/rc.local до строчки exit 0


if [ -x /usr/local/gw6/bin/gw6c ]; then
        cd /usr/local/gw6/bin/
        ./gw6c
fi