вторник, 9 сентября 2008 г.

VPN и Microsoft

После краха жесткого диска на домашнем маршрутизаторе, сделанном из старого ведра под Gentoo, пришлось настраивать все по новой. Дома у меня итнернет работает через vpn от местного кабельного провайдера. С настройками вопросов не возникло. Включил в ядре поддержку ppp и gre, поставил ppp и pptpclient и все радостно зашуршало.

Радость была не долгой, т.к. следующим шагом была необходимость настройки подключения по vpn на работу. В качестве шлюза, там используется Microsoft сервер, который не умеет работать с международными стандартами. Из возможностей авторизации на нем есть два варианта:
  • ms-chap
  • ms-chap v2
Кроме выражения - "каазлы!!!", на ум больше ни чего не приходит. Но раз мне эта кара досталась, будем выкручиваться. Не буду вдаваться в подробности, но остановлюсь на ключевых моментах.

1. Среди ключей для сборки пакета ppp есть ключ mppe-mppc. Этот ключ необходим если у вас старое ядро (до 2.6.14). С современными ядрами эту опцию в ppp необходимо отключить.

2. Создаем файл для туннеля /etc/ppp/peers/TUN

#/etc/ppp/peers/TUN
pty "pptp ip-vpn-server --nolaunchpppd"
name DOMAIN\\login
# Если не сделать refuse-chap то клиент будет ломиться по chap и получать отлуп сразу.
refuse-chap
# В моем случае надо блокировать eap, т.к. он не используется
refuse-eap
remotename TUN
file /etc/ppp/options.TUN
ipparam TUN


3. Создаем файл с опциями для pppd

#/etc/ppp/options.TUN
lock
noauth
nobsdcomp
nodeflate
# Это самая главная опция. Если не поднимается mppe то ни чего не работает.
require-mppe
# Т.к. мы работаем в интернет тоже по vpn, то для нашего туннеля
# необходимо блокировать смену маршрута по умолчанию
nodefaultroute


4. Пароль записываем в файл /etc/ppp/chap-secrets в следующем формате:

DOMAIN\\login TUN password *

5. Ну и на пред =) последок тестируем работу туннеля

pon TUN debug dump logfd 2 nodetach

6. Маленький тюнинг - установка руками номера ppp интерфейса. Так как у меня несколько туннелей, то каждому следующему присваивается следующий свободный порядковый номер, т.е. если поднят туннель ppp0 то следующими будет ppp1 и так далее. Данное поведение не всегда удобно, по этому я прибиваю номер гвоздями. Для этого в файле /etc/ppp/options.TUN устанавливается опция unit N, где N - номер туннеля, а точнее номер ppp интерфейса.

понедельник, 23 июня 2008 г.

Шрифты в Gentoo (часть первая, лирическая - интеграция Firefox в KDE)

Уже не первый год пользуюсь Gentoo с KDE и в общем не напрягался по внешнему виду шрифтов. Но на маленьком ноутбуке как то все коряво выглядит. Пока могу сказать только в каком направлении копать =).

В основном под руками мониторы с достаточно высоким разрешением, а что такое 1024x768 я уже подзабыл =). На больших разрешения, настройки Xorg и KDE по умолчанию, со стандартными шрифтам, дает весьма приличную картинку. А вот на мельнком разрешении, даже небольшая кривизна в отображении шрифта, режет глаза.

Может я бы и не заметил этого, если бы не помог мне Firefox. Firefox приложение Gtk, а пользуюсь я KDE, по этому мое баловство с внешним видом Kde, ни коим образом не влияет на внешний вид Gtk приложений. В общем затеял я облагородить Gtk-ашные приложения, а в первую очередь естественно Firefox.

Всего делов, поставить специальный движок для Gtk и сменить ублюдочный диалог выбора открытия/сохранения файлов.

Установил пакет x11-themes/gtk-engines-qt, после этого в Центре управления Kde появились настройки - "Стили и шрифты Gtk". Выставил, чтобы все настройки Gtk соответствовали Kde.

С заменой диалога открытия файлов не так красиво, но достаточно просто, а самое главное эффективно. Нужно установить пакет kde-misc/kgtk. Это специальный врапер, который отслеживает необходимость отображения диалога открытия файлов и подсовывает Kde-шный. Далее нужно завернуть запуск Firefox через kgtk:

#cd /usr/local/bin
#ln -s /usr/bin/kgtk-wrapper firefox


После этого нужно поправить все ярлыки которые есть у вас на Firefox на новый путь /usr/local/bin/firefox. Плюс к этому нужно проверить, что в переменной $PATH путь /usr/local/bin стоит первым, тогда если не указыать полный путь к Firefox, то запускаться он будет по нашей ссылке.

Для полного кайфа, можно еще и сходить за симпатичными схемами на сайт Firefox =).

четверг, 19 июня 2008 г.

Интернет радио (продолжение)

Как я уже рассказывал, на маленьком ноутбуке я поставил в качестве плагин kaffeine для браузера, что бы слушать радио из интернет, ну и видео до кучи смотреть. Особенность этого плагина в том, что он не совсем плагин, он запускет kaffeine и передает ему URL для проигрывания.

Как я и отмечал ранее, есть второй заслуживающий внимания плагин - net-www/mplayerplug-in. Раньше он у меня стоял на рабочем ноуте, но я уже про это и забыть успел =), но тут появилась необходимость им воспользоваться, а он не работает. Выяснилось, что после смены версии браузера, а их уже несколько было, необходимо переустановить этот плагин. В общем заработало. У этого плагина есть интерфейс встраиваемый в браузер, что мне кажется очень удобным.

Нашел опять недостатки =). При проигрывании потока из интернет в m3u, нет интерфейсных кнопок управления стоп/плэй и т.п. и так же отказывается играть линки mms. Еще этот плагин грешит тем, что иногда не докачивает видеоролики.

Раз плагин от mplayer, то попробовал им проиграть линки напряму, т.е. то что делает правильно настроенный kaffeine без проблем с установленной переменной http_proxy, но ничего не вышло. Mplayer отказался проигрывать линки по причине авторизации на proxy сервере, хотя в переменной и имя и пароль присутствуют.

В общем получается некое различие между работой с proxy плагином и самим mplayer. Поиски по поводу авторизации на proxy пока привели к тому, что бродит где то патч, который може решить проблему.

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

Прикрутить запуск плейера на линк mms можно следующим образом:
  1. В Firefox открываем страницу "about:config"
  2. В появившемся списке настроек, по правой кнопке мыши, добавляем новый строковый параметр"network.protocol-handler.app.mms"
  3. Дальше он просит указать значение, устанавливаем нужный нам проигрыватель "/usr/bin/kaffeine"
  4. После этого добавляем булевый параметр "network.protocol-handler.external.mms" со значением "true"

После этих настроек, на ссылки mms будет вызываться kaffeine. Говорят точно так же должен работать и mplayer, но я пока это не проверял.

С прокси они конечно свинью подложили, хотя как сказать. Дело в том, что mms штука майкрософтовская и работает в linux при использовании dll, что является самым кривым вариантом, по похоже единственным возможным.

среда, 18 июня 2008 г.

В поисках nslookup

Потребовалось мне тут проверить некоторые записи в DNS. Набираю в консоли nslookup и нет такой команды =). Оказывается, в Gentoo (за другие дистрибутивы молчу, но вероятно этот пакет там ставится по умолчанию) nslookup входит в состав net-dns/bind-tools.

В состав пакета net-dns/bind-tools входят программы host, nslookup,dig. Все эти программы предназначены для опроса DNS серверов. При этом считается, что host устаревшая программа, nslookup самая распространенная, а dig - лучшая =).

Из старой привычки работы с windows мне конечно проще работать с nslookup. На мой взгляд у нее есть 2 основных преимущества:
  • она есть на любой платформе, за частую по умолчанию
  • имеет интерактивный режим работы
Утверждается, что она не всегда выдает корректный результат, но в 99% случаев этого достаточно.

Поиграл с host - баловство =). Приятная программка, простая, но для диагностики DNS, мало пригодная. Возможно её использовать в скриптах, не знаю. Не вдохновился. Очень понравился её отладочный режим работы, там видно кому какие запросы посланы и т.п., капризничает по поводу точки на конце имени =).

Dig действительно оказалась интересной программой. Вывод результатов запросов в формате файлов зон bind.

Теперь остается не забыть, что кроме nslookup есть ещё dig, который может во многих случаях быть более удобным.

Обновление Gentoo - часть вторая

Имеется установленная Gentoo и необходимо её обновить. Обновление может потребоваться по многим причинам, в первую очередь наверное психологическим, хочется работать на самом новом программном обеспечении и вовремя получить все новые возможности. Другие причины менее существенны, т.к. стабильность корректно настроенной системы (хоть Windows) в правильных руках ни когда не вызывает нареканий.

В установленной системе Gentoo существует некий перечень установленного программного обеспечения пользователем и общий перечень возможного программного обеспечения для установки, который и является самим деревом Portage.

Обновление Gentoo сводится к замене дерева Portage и последующей замене установленных программ на версии, которые актуальны на текущий момент.

Написать этот текст меня сподвигло разнообразие возможностей провести обновление Gentoo в зависимости от доступности интернет. Как получить обновленное дерево Portage?

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

# emerge --sync

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

В случае доступности интернет только при использовании прокси, или в тех случаях когда стандартный --sync завершается ошибками, вроде невозможности скачивания файлов может помочь вариант обновления "через web".

# emerge-webrsync

Основное отличие данного варианта заключается в том, что работает через http и дерево Portage не обновляется, а заменяется полностью. Из интернет выкачивается архивированный образ Portage и распаковывается на компьютере с выполнение всех нужных процедур.

При этом, если необходимо указать прокси сервер, то нужно выставить переменную http_proxy:

# export http_proxy="http://имя:пароль@прокси:порт"

Рекомендую эту строку вставить в файл .bash_profile.

Дальше начинается экзотика, её необходимость возникает, когда отсутствует возможность доступа в интернет с обновляемого компьютера. На обновляемый компьютер необходимо каким либо образом перенести архив нового Portage. Получить его можно с любого из зеркал Gentoo. Вам нужен файл portage-200xxxxx.tar.bz.

В зависимости от вашего желание есть не менее одного пути =) дальнейших действий.

1. Разместить файл portage-200xxxxx.tar.bz в каталоге /usr и распаковать его, с последующем перестроением:

# tar xjvfp portage-2006ХХХХ.tar.bz2
# emerge regen

2. Перенести файл portage-200xxxxx.tar.bz в каталог /var/tmp/emerge-webrsync и выполнить команду:

# emerge-webrsync -n

В зависимости от выбранного и возможного метода обновления дерева Portage вы получите новый Portage, но старую систему. Обновление самой системы выполняется по команде:

# emerge -uvD world

Ключевое слово world означает, что будут обновлены все установленные вами пакеты и их зависимости. В результате обновления в системе могут оказаться ненужные на текущий момент пакеты, их можно удалить:

# emerge --depclean

Это действие может повлиять на уже установленные программы, в основном на используемые библиотеки. Не обновленным программам нужны старые библиотеки, а о существовании новых они не знают, по этому необходимо выполнить повторную сборку таких программ. Проделать эту процедуру проще всего запуском revdep-rebuild, которая входит в пакет gentoolkit.

# revdep-rebuild

Вот в общем и всё. Дерево Portage обновлено, все программы обновлены. В заключение скажу, что без доступа в интернет возиться с Gentoo самое неблагодарное занятие которое только можно придумать!