Показаны сообщения с ярлыком Настройка. Показать все сообщения
Показаны сообщения с ярлыком Настройка. Показать все сообщения

12 июл. 2008 г.

Debian 4.0 Etch + pam_ldap HOWTO

Долго я шел к этому, но дошел ;) и слава богу, что не до ручки, а до решения задачи: авторизации пользователей в системе через pam_ldap в среде Debian. На openSuSE все до безобразия просто, там с помощью YaST'a настройка сервера, создание корня дерева (base DN), заведение пользователя и его последующая аутенфикация - прошли сразу, быстро и без проблем. С дебианом пришлось нехило помучаться.
Затыка была еще в том, что реализация openldap в каждом дистрибутиве несколько отличается, есть разночтения в конфиг-файлах. И в Сети достаточно подробного и, главное, соотвествующего Debian 4 etch how-to я не нашел. Поэтому пришлось собирать инфу из разнозенных источников, ну и читать официальную документацию. Но, это все в прошлом, и сейчас кратко обо всех необходимых действиях, требуемых для решения поствленной задачи.
Первым делом нам поднадобится сервер OpenLDAP, обслуживаемый демоном slapd. Для общения ОС с деревом LDAP (точнее, для "трансляции" имен) потребуется libnss-ldap (Name Switch Service, если мне память не изменяет). Для реализации самой аутенфикации пользователя в системе неоходим PAM-модуль libpam-ldap.
apt-get install slapd libnss-ldap libpam-ldap
Если сразу после установки пакетов debconf не предложил их сконфигурировать, сделаем это самостоятельно. Сие избавит от ручного редактирования конфиг-файлов.
dpkg-reconfigure slapd libnss-ldap libpam-ldap
Сначала настраивается slapd.
На вопрос о пропуске конфигурирования OpenLDAP отвечаем отрицательно. В следующем окне вводим baseDN (Distinguish Name), говоря по-русски, уникальное имя, то есть как будет называется корень нашего будущего LDAP дерева - например inspire.hvn в моем случае. Сие в LDAP форме запишется как dc=inspire,dc=hvn (в будущем пригодится). Нажав ентер, получаем запрос ввести имя компании - тут свобода фантации, например, Roga&Kopyta Inc. ;) Далее вводим пароль записи - cn=admin,dc=inspire,dc=hvn, то есть админской учетки для работы с базой. После этого следует небольшой экскурс по сабжу выбора формата базы LDAP - BDB или HDB. Жмем ОК и выбираем BDB, согласившись с доводами разработчиков (однако пробовал и HDB, никаких проблем). Двигаемся дальше, "Удалять базу при вычистке slapd" - у нас там все равно ничего нет, так что пусь делит ;), LDAPv2 включать не нужно, все будет на LDAPv3. Далее видим в консоли сообщения о том что debconf создает /var/lib/ldap, помещает туда базу, запускет демон slapd.
Плавно перетекаем к настройке libnss-ldap...
Универсальный идентификатор ресурса (URI) - это адрес LDAP-сервера, куда nss будет обращаться за информацией. В нашем случае, когда сервер и клиент находятся на одной машине, эта строчка имеет вид ldap://127.0.0.1. В следующем окне нужно ввести уникальное имя базы поиска (base DN) - то же, что и при настройке slapd, но уже в полном, ldif формате, а именно dc=inspire,dc=hvn. Версия третья. Далее - наша база будет требовать учетное имя для входа - нет, спецпривилегии для root-пользователя - да. В следующем окне соглашаемся с проверкой и принудительной установкой прав 0600 на конфигурационный и secret (там пароль записи rootbinddn хранится) файлы libnss-ldap во имя секурности, ибо пароли там находятся в открытом виде. Здесь стоит отметить, что такое положение дел не есть секурно, поэтому вообще говоря, далее мастер предложит ввести название учетной записи, которой будет позволено лишь читать пароли, но непозволено их изменять. При таком раскладе нужно будет подредактировать вручную slapd.conf, где описываюся access-опции для всех категорий пользователей. Имхо же, если вы не страдаете паранойей, то это не так и нужно. В этом описании я все права делегирую лишь пользователю cn=admin (более того, он уже создан, еще в самом начале, и необходимые права для чтения/записи в каталоге LDAP у него уже есть). Поэтому, когда в следующем окне нас просят завести учетку для хождения libnss к LDAP, предлагаемого конфигуратором cn=manager шлем в лес и пишем cn=admin,dc=inspire,dc=hvn, ну и пароль соответственный. Затем инсталлер предлагает отредактировать nsswitch.conf - правда кнопки отказа все рно нет, так что давим ОК. Кстати, как окажется в будущем, предложение отредактировать файл было действительно лишь предложением, никаких действий в нем конфигуратор не произвел, но к этому мы вернемся ниже.
Переходим к настройке libpam-ldap. Практически все шаги аналогичны предыдущей настройке, поэтому кратко: URI - ldap://127.0.0.1, корень базы поиска - dc=inspire,dc=hvn, версия LDAP - 3. На следующий вопрос о root-пользователе базы - да, требование учетного имени - нет. Далее вводим DN для суперюзера базы, я опять же не завожу отдельного пользователя, а отдаю все на откуп cn=admin,dc=inspire,dc=hvn по вышеописанным соображениям. На вопрос о методе шифрования пароля выбираем crypt, как наиболее удобный и совместимый (по крайнй мере, я где-то так вычитал, хотя уверен, что выбор метода на работоспособность системы не сказывается) с unix-шифрованием метод. Конфигурация завершена. Теперь наша лдап база имеет корневую запись dc=inspire,dc=hvn, а так же запись админа cn=admin,dc=inpire,dc=hvn. Сделаем две ou (organizationUnit) записи - ou=people - там будут пользователи, и ou=groups - в ней будут описаны группы, в которые те или иные пиплы будут входить. Так как пока у нас ничего графического под рукой нет, пользуемся консолью и утилитой ldapadd из пакета ldapscripts, который, если не был поставлен как зависимость основных ldap-пакетов, нужно инсталить отдельно.
apt-get install ldapscripts
Создадим файлик следующего содержания (в нем мы опишем в ldif-формате желаемые записи):
dn: ou=people,dc=inspire,dc=hvn
objectClass: organizationalUnit
ou: people

dn: ou=groups,dc=inspire,dc=hvn
objectClass: organizationalUnit
ou: groups

dn: cn=testgroup,ou=groups,dc=inspire,dc=hvn
objectClass: posixGroup
cn: testgroup
gidNumber: 10001

dn: uid=test,ou=people,dc=inspire,dc=hvn
objectClass: inetOrgPerson
objectClass: posixAccount
uid: test
sn: test
givenName: TestUser
cn: test
displayName: test
uidNumber: 1050
gidNumber: 10001
userPassword: 123456
loginShell: /bin/bash
homeDirectory: /home/test
Сразу скажу по поводу паролей. Их можно передавать как в открытом виде (для тестовой записи вполне сойдет), так и зашифрованном. Как передашь, так и будет храниться в базе. Если plaintext по параноидальным соображениям не подходит, воспользоваться утилой slappasswd. К примеру наш тестовый пароль можно сделать таким:
slappasswd -h '{CRYPT}' -s 123456
{CRYPT}EvOKngmsHj6CA
или таким:
slappasswd -h '{MD5}' -s 123456
{MD5}4QrcOUm6Wau+VuBX8g+IPg==
Подробности - в man slappasswd. Полученную строку вполне можно запихать в наш текстовый файл.
Итак, добавим в наше дерево новые записи
ldapadd -D cn=admin,dc=inspire,dc=hvn -x -w 123321 -f /home/delayer/add.ldif adding new entry "ou=people,dc=inspire,dc=hvn"
adding new entry "ou=groups,dc=inspire,dc=hvn"
adding new entry "cn=testgroup,ou=groups,dc=inspire,dc=hvn"
adding new entry "uid=test,ou=people,dc=inspire,dc=hvn"
Опции ldapadd можно глянуть в man'е.
Перезапускаем сервер,
/etc/init.d/slapd restart
ищем нашего test'a
id test
id: test: Такого пользователя нет
Жаль... это значит что база LDAP не контактирует с системной... то есть PAM также не знает о таком пользователе... Соответственно, никто его и не авторизует. Это значит, что почему-то debconf в самом начале ничего не сделал c /etc/nsswich.conf (вот мы к нему и вернулись). Сделаем самостоятельно. Открываем его любимым текстовым редактором (фу, ну что за фраза избитая...), ищем строки passwd: group: shadow: и меняем их следующим образом:
passwd: files ldap
group: files ldap
shadow: files ldap
UPD:
/etc/init.d/nscd restart
Снова ищем test'a:
id test
uid=1050(test) gid=10001(testgroup) группы=10001(testgroup)
Уже лучше, не правда ли ;)
Остался последний штрих для достижения нашей цели - конфигурационные файлы в /etc/pam.d. В убунтовском репо есть классная чтука - скрипт auth-client-config, который сам изменяет что нужно в этом каталоге для успешной ldap-аутенфикации приходящего пользователя. В дебе почему-то такого пакета нет, видно, админы дебиана должны быть настолько суровы, что знать и делать все руками и vi ). Что ж, сделаем ;) (Хотя можно и просто стянуть да инсталлировать убунтовский пакет, наверняка встал бы без проблем)
Если бегло оглядеть файлы login, su, passwd, ssh и так далее, то, во-первых, по названиям их ясно, за что они отвечают ;), а во-вторых, все они подключают include'ом некоторые из этих файлов - common-auth, common-passwd, common-session и common-account. Их то мы и поправим.
Для достижения нашей цели файлы должны выглядеть так (почему именно так, и что значат нижеследующие символы - милости просим на man странички =):
/etc/pam.d/common-account
account sufficient pam_unix.so
account sufficient pam_ldap.so use_first_pass
account required pam_deny.so

/etc/pam.d/common-auth
auth required pam_env.so
auth sufficient pam_unix.so nullok_secure
auth sufficient pam_ldap.so use_first_pass
auth required pam_deny.so

/etc/pam.d/common-password
password required pam_cracklib.so difok=2 minlen=8 dcredit=2 ocredit=2 retry=3
#если пакет cracklib2 не установлен, то предыдущую опцию следует закомментировать.
password sufficient pam_unix.so nullok md5 shadow use_authtok
password sufficient pam_ldap.so use_first_pass
password required pam_deny.so

/etc/pam.d/common-session
session required pam_limits.so
session required pam_unix.so
session optional pam_ldap.so
session required pam_mkhomedir.so skel=/etc/skel/ umask=0077
#предыдущая опция предназначена для того, чтобы при первом входе ldap-пользователя в систему ему автоматически создавался хоумдир. При ненадобности - камент )
Вот и все, проверим работоспособность.
delayer@interra:/$ su -l test
Password:
Creating directory '/home/test'.
test@interra:~$
В заключение добавлю, что если требуется добавлять много пользователей, и вообще периодически с записями работать, стоит обратить внимание на более наглядные утилиты, например, luma или lam, правда, для работы последнего требуется web-сервер и php5.

3 июл. 2008 г.

1Cv7.7 + HASP HOWTO

1Cv7.7 вообще-то говоря должна работать через аутенфикацию с помощью HASP-ключа. Да, существуют так называемые "отученные" от проверки наличия ключа дистрибутивы, и даже, вроде как , сама 1С позволяет. а иногда и рекомендует работать именно с такими версиями (при наличии каких либо проблем в работе). Однако, это и не Ъ и незаконно =). Если все лицензионно чисто, и используется win-система в качестве ОС, то проблем, естественно, никаких. С никсами все несколько иначе ;)...
Сегодня на повестке дня - работа 1С в окружении WINE@Etersoft на каком-нибудь дистрибутиве linux. В данном примере производится настройка локальной версии 1С на машине под управлением kUbuntu-8.04.
Считаем, что 1С-ка, WINE@Etersoft-1.0.9 куплены и установлены. Ключик HASP'a имеется в виде LPT-девайса (LPT HASP4 M4). Для начала требуется установить haspd - демон, который будет обслуживать хасп-запросы по сети (менеджер лицензий hasplm, слушает 475 udp-порт) и локально (winehasp, слушает UDP 2790), а также обеспечивать работу с ядром (модули aksparlnx, aksusbd, skeyd, usbsentinel - для разных типов ключей). Сей пакет можно заказать у Etersoft'a в личном кабинете пользователя для любого linux-дистрибутива. Получив оный, а также пакет с модулями, устанавливаем...
dpkg -i haspd_2.0-1_i386.deb haspd-modules_2.0-1_i386.deb
dpkg при установке сам пропишет haspd в автозагрузку и подгрузит необходимые модули.
Проверяем:
/etc/init.d/haspd status
Hardware protection keys support bundle. Etersoft (c) 2008
: haspd.init,v 1.113 2008/03/26 11:05:12 lav Exp $
Aladdin HASP 4/HL driver status:
-e kernel module aksparlnx is loaded
-e aksusbd is running
-e winehasp is running
-e hasplm is running
Daemon version: 1.8.1 - key API (USB) version: 3.85, key API (parallel driver) version: 3.86
Smartkey 3 USB/LPT driver status:
-e skeyd is stopped
SafeNet Sentinel status:
-e usbsentinel is stopped
-e SntlKeysSrvrlnx is stopped
Сие говорит о том, что загружены и отслеживаются компоненты для работы с HASP4 USB/LPT ключами, остальные (Smartkey, Sentinel) отключены. Однако, если получаем что то вроде
/etc/init.d/haspd status
Hardware protection keys support bundle. Etersoft (c) 2008
: haspd.init,v 1.113 2008/03/26 11:05:12 lav Exp $
Aladdin HASP 4/HL driver status:
kernel module aksparlnx is not loaded (WARNING: HASP LPT keys support is disabled!)
aksusbd is stopped
winehasp is stopped
hasplm is stopped
Smartkey 3 USB/LPT driver status:
skeyd is stopped
SafeNet Sentinel status:
usbsentinel is stopped
SntlKeysSrvrlnx is stopped
то выходит, что не слушается вообще ничего. ;) В этом случае требуется скомпилить модули самостоятельно. Для этого используем /etc/init.d/haspd build. Исходники ядра должны быть установлены. В [k]Ubintu/Debian это пакет linux-headers-*, где звездочка - это версия установленного ядра (uname -r). Build'анув нужные ядерные модули, подгружаем их через modprobe и снова проверяем /etc/init.d/haspd status.
Теперь посмотрим, видит ли ОС ключ, подключенный к LPT-порту. В случае локального ключа должна быть аналогичная нижеозначенной картинка:
eterkeytest --hasp
HASP:
HASP API VERSION: 8.0
HASP Local:
LPT HASP4 M4 (HASP4 is connected, key is HASP4 Net 5 licenses)
[4] 1C:Accountancy v7.7 (simple and network)
Если ключ сетевой, и кто-то уже (вот, редиски =)) по сети к нему пришел, то примерно так:
HASP Net at host (see NETHASP.INI) (press Ctrl-C to break):
..... -- active logins:16202
-- max logins: 53610
-- key type: HASP4 Net 774 licenses
-- activations: 48851
[4] 1C:Accountancy v7.7 (simple and network)
При таком раскладе нам остается только запустить 1С-ку =). Если ключ сетевой, то в файлике BIN/NETHASP.INI,что находится в каталоге, куда установлена 1С, указываем, где искать сетевой ключ. Вот так. к примеру:
[NH_COMMON]
NH_IPX = Disabled
NH_NETBIOS = Disabled
NH_TCPIP = Enabled

[NH_TCPIP]
NH_SERVER_ADDR = 192.168.0.1
NH_TCPIP_METHOD = UDP
NH_USE_BROADCAST = Disabled
Сразу стоит проверить, слушает ли менеджер лицензий и winehasp нужные порты...
netstat -ap | grep hasp
udp 0 0 *:475 *:* 12629/hasplm
udp 0 0 localhost:2790 *:* 12620/winehasp
Все нормально, можно подключаться ;) Если ключ тот, адрес сервера, в порт на котором он воткнут, корректен, и фаерволл сабжевые порты не блокирует, то все должно работать. Для проверки можно отключить iptables stop (iptables -F).
анное руководство рассчитано на версию 1С 7.7, работа с 8-ой серией не гарантируется. Дополнительная информация по настройке различных типов ключей защиты, а также основной источник материала для этих строчек находится в закромах Etersoft'a, то есть тут.

15 мая 2008 г.

VirtualBox HOW-TO - Строим мосты

Сегодня мы поговорим о работе локалки в виртуальном окружении VirtualBox. Вводные слова на предмет "как я докатился до жизни такой" можно поглядеть здесь. С сетью здесь не так все гладко как в vmware. Если там уж нат, то нат, работает как часы сразу же после инсталляции. Гостевая ОС тут же начинает видеть Хост-систему, а то и дальше, в зависимости уже от настроек последней. Если мост (юзается отдельный ифейс), буть добр, в гостевой ОС пропиши требуемый ип, если он в вашей сети не выдается динамически, и работай. в VirtualBox'e не так все user-friendly. NAT здесь убогий донельзя. НА каждый ифейс выдается диапазон 10.0.x.0, где x=2,3,4.... Шлюзом становится нечто под адресом 10.0.x.15, оно же DHCP. Как со всем этим выйти во внешнюю относительно гостевой ОС сеть - непонятно, ибо по умолчанию никакх интерфейсов VBox не создает. А вручную чтой-то не попробовал. К тому же в руководстве что то блеется по поводу проброса нужных портов во "внешний мир". В общем, если NAT-вопрос допилю, то отдельный man будет иметь место.
Сейчас же речь пойдет о Host Interface Networking and Bridging, попросту о мостовом соединении гостевой и хостовой ОС. Здесь все более-менее понять можно, хотя до меня и не с первого раза осенило на предмет "как, бля, это запустить??". Поехали ;)
Эксурса в теорию не провожу ввиду того, что теория эта отлично изложена в User Manual, доступного для скачивания на той же странице, где и сам дистрибутив. Поэтому или мне тут безоговорочно верим, или идем читать ;)
Для работы моста в linux-системе требуется доступ пользователя, от имени которого будет запущен VBox, к туннельному устройству /dev/net/tun . С правами мучаться незачем, поэтому
delayer@inspire:~> ls -l /dev/net/tun
crw-rw-rw- 1 root root 10, 200 Окт 7 2007 /dev/net/tun
delayer@inspire:~> su
Пароль:
inspire:/home/delayer # chown root.vboxusers /dev/net/tun
То бишь всех пользователей, что будут рулить виртмашинами, пихаем в группу vboxusers. На собственность root'a посягать незачем.
Пару слов о том, что вообще престоит сделать.
Мост в VBox можно сделать постоянными (появляющимися при загрузке hostОS) - permanent, и динамическими, живущими только до ребута - dynamic. Я думаю, понятен момент, что мост создается на базе физического сетевого устройства, например eth0. Далее создается виртуальное устройство vbox0 (1,2,3...), которое будет нами включено в мост (bridge) с eth0. Управление vbox-интерфейсами осуществляется с помощью трех утилит:
  • VBoxAddIF, которая создает перманентные TAP ифейсы
# VBoxAddIF vbox0 user bridge0
где user - тот, кто будет это ифейс юзать (в моем случае пользователь virtual), а bridge0 - мостовой интерфейс, созданный ранее;
  • VBoxDeleteIF, которая, соответственно, делит созданные ранее vboxX устройства
# VBoxDeleteIF vbox0
  • VBoxTunctl - с ее помощью можно создавать/удалять временные (dynamic) интерфейсы
# VBoxTunctl -t vbox0 -u user ## создали
# VBoxTunctl -d vbox0 ## удалили

Теперь чуть больше частности.
В качестве hostOS будет openSuSE. Для создания моста нам потребуется пакетик bridge-utils, поэтому его нужно установить =)
# yast2 --install bridge-utils
Для того, чтобы можно было управлять мостовым интерфейсом через ifup/ifdown, требуется создать конфиг-файл для bridge0 (естественно с правами root'a) и внести туда следующие изменения:
создать конфиг файл для ифейса моста /etc/sysconfig/network/ifcfg-bridge0 c примерно таким текстом
inspire:/# vi /etc/sysconfig/network/ifcfg-bridge0
BOOTPROTO='static' #IP-адрес задается статически
#DHCLIENT_TIMEOUT=20 # если выбрана DHCP-раздача, раскомментить
BROADCAST='' # оставляем на
MTU='' # усмотрение ОС
NAME='bridge interface' # произвольное имя интерфейса
BRIDGE='yes' # ифейс выполняет функции моста
BRIDGE_PORTS='wlan0' # "моститься" будем на базе wlan0
IPADDR='169.254.0.1' # IP-адрес
NETMASK='255.255.255.0' # маска подсети (в моем случае я просто
# беру параметры настроек wlan0
REMOTE_IPADDR=''
STARTMODE='auto' # интерфейс поднимается при старте hostOS
USERCONTROL='no' # контроль осуществляется системой
То бишь мы указываем, что наш интерфейс будет иметь статический адрес такой-то, маску такую-то (если подразумевается DHCP, то BOOTPROTO='dhcp' это будет bridge-интферфейс, стартующий при запуске системы. А дальше ifdown wlan0 && ifup bridge0.
В моей системе wlan0 - беспроводной интерфейс, на котором висит DHCP-сервер, раздающий адреса для подключаемых в режиме ad-hoc пользователей. Так как вновь появившийся bridge0 взял на себя все параметры wlan0 (сам wlan0 запускается без адреса, маски и так далее, см. ifconfig), то и DHCP-сервер пришлось переконфигурировать на прослушивание brigde0. В этом двойная выгода - и wi-fiподключения не остались без адресов, и все создаваемые vboxX интерфейсы (а соответственно и внутренние интерфейсы гостевых ОС виртуальной машины) видят DHCP, тем самым могут без проблем получить адрес. После этого они будут находиться в раных условиях с wi-fi подключениями - в моем случае это маршрутизация как внутри локалки, так и сразу в интернет. Ну разве не сказка? ;)
Однако, отвлеклись. Далее создается хост-интерфейс vbox0 согласно вышеизложенной теории
inspire:/# VBoxAddIF vbox0 virtual bridge0
После этого он аттачится к вирт машине или консольно
inspire:/# VBoxManage modifyvm "Debian_4.0_r0" -hostifdev1 vbox0
или графически
Машина - Свойства - Сеть - Включить Адаптер, и в поле Имя интерфейса впаять vbox0
Все, стартуем виртуальную машину, запускаем там любой конфигуратор сети и говорим имеющемуся там сетевому интерфейсу получить данные по DHCP. Или выставляем статически, исходя из IP-конфигурации brigde0 (в том плане, чтобы они друг друга видели).
Каждая гостевая ОС использует свой vboxX интерфейс, поэтому если машин несколько, то насоздавать виртуальных интерфейсов следует согласно потребностям. Bridge0 дублировать не нужно.

11 мая 2008 г.

NX@Etersoft on Debian HOW-TO

Для многих задач наиболее актуальным, а зачасту и единственным, является решение терминальной работы приложения, которое разработано по принципу клиент-серверной архитектуры. Если речь идет о nix-сервере, то резонным встает вопрос о терминальном сервере. В принципе удаленный доступ можно организовать с помощью разным протоколов: ssh, vnc, rdp, nx... У каждого есть свои преимущества и недостатки, а также соотвествующая область применения. Далее будет рассмотрена установка и базовая настройка FreeNX сервера с наработками от компании Etersoft - RX@Etersoft, на базе дистрибутива Debian 4.0_r0. Цепляться к нему будем удаленно из openSuSE10.3 с помощью NX-клиента от компании NoMachine.
Почему решение от Etersoft'a? Уж не знаю что они допилили по сравнению с авторской реализацией, однако обещается (разработчиком естественно) корректная работа с рендерингом кириллических шрифтов. При использовании обычного freenx'а шрифты (замечено на многих win-приложениях - WinRAR, 1С, etc) накладываются друг на друга и получается каша. Если отключить рендеринг на стороне клиента (винды то бишь), то резко возрастает обмен трафиком и тормозится работа - вследсвие того что все фонты начинают передаваться bitmap'ами, что нехило по размеру. Решением спецы с Etersoft'a предлагают свой пакет NX'a. С ним и будем работать.
Качаем отсель собранные для нашего дистриба пакеты (freenx_0.7.2-1_i386.deb и nx_3.1.0-1_i386.deb). Затем устанавливаем их, перейдя в соответствующий каталог.
interra:/home/delayer/# cd .\!/rx
dpkg -i *.deb
Так же уже должен стоять пакет openssh-server. Если нет, то следует установить и его.
apt-get install openssh-server
В принципе все - далее займемся конфигурацией.
Для успешной авторизации клиентов нам нужны ключи. Их созданием занимается утилита nxkeygen
interra:/home/delayer/!/rx# nxkeygen
Unique key generated; your users must install
/var/lib/nxserver/home/.ssh/client.id_dsa.key
on their computers.
Далее этот файлик нам пригодится для пользовательских машин, сей ключ мы импортируем nx-клинентам для успешной авторизации на сервере.
Создаем пользователя (или пользователей =)) в системе любым удобным методом, например с помощью adduser.
Запускаем собственный инсталлер сервера, который произведет его настройку и запуск. На "выхлопе" получим примерно следующее:
interra:/home/delayer/!/rx# nxsetup
------> You did select no action.
FreeNX guesses that you want to _install_ the server.
Type "y" to abort the installation at this point in time.
"N" is the default and continues installation.
Use "/usr/bin/nxsetup --help" to get more detailed help hints.

Do you want to abort now? [y/N] n
------> It is recommended that you use the NoMachine key for
easier setup. If you answer "y", FreeNX creates a custom
KeyPair and expects you to setup your clients manually.
"N" is default and uses the NoMachine key for installation.

Do you want to use your own custom KeyPair? [y/N] nSetting up /etc/nxserver ...done
Generating public/private dsa key pair.
Your identification has been saved in /etc/nxserver/users.id_dsa.
Your public key has been saved in /etc/nxserver/users.id_dsa.pub.
The key fingerprint is:
81:a9:42:ea:97:59:51:41:c3:e4:f0:63:29:cc:d8:10 root@interra
Setting up /var/lib/nxserver/db ...done
Setting up /var/log/nxserver.log ...done
Setting up known_hosts and authorized_keys ...done
Setting up permissions ...done
Setting up cups nxipp backend ...done

----> Testing your nxserver configuration ...
Warning: Could not find nxdesktop in /usr/bin. RDP sessions won't work.
Warning: Could not find nxviewer in /usr/bin. VNC sessions won't work.
Warning: "/usr/lib/cups/backend/smb" is not executable.
Users will not be able to enable printing.
Warning: Invalid value "DEFAULT_X_SESSION=/etc/X11/xdm/Xsession"
Users might not be able to request a default X session.
Warning: Invalid value "COMMAND_START_KDE=startkde"
Users will not be able to request a KDE session.
Warning: Invalid value "COMMAND_START_CDE=cdwm"
Users will not be able to request a CDE session.
Warning: Invalid value "COMMAND_SMBMOUNT=smbmount". You'll not be able to use SAMBA.
Warning: Invalid value "COMMAND_SMBUMOUNT=smbumount". You'll not be able to use SAMBA.
Error: expect necessary for /usr/bin/nxnode-login could not be found in '/usr/bin/expect'. Please install it or change nxnode-login accordingly.

Errors occured during config check.
Please correct the configuration file.
На сообщения об опасности особого внимания обращать не стоит, часть из них, что ругается на Invalid value, есть следствие того, что указанные переменные не определены ввиду отсутствия установленных компонентов (CUPS, samba), остальные уведомляют, что не могут найти некоторые компоненты nx-пакета. Однако ни RDP, ни VNC протокол мы использовать не будем, поэтому нам это не вредит ничуть %).
По поводу второго вопроса (с первым я думаю все ясно), связанного с KeyPair, выбираем вариант использования ключей специально для NoMachine, который и будет использоваться в качестве клиента. Хотя по сути, если мы создаем ключ заново nxkeygen'ом, а затем его импортируем клиентам, то смысл ответа n в принципе то теряется. Но подумал я об этом только сейчас, когда уже все работает ;). Так что по уму стоит поставить y, если мы хотим использовать свои ключи, сгенеренные на этой системе, и n, если планируется работать с NoMachine nx-клиентом и его дефолтными ключами. Тогда этап отработки nxkeygen'a выпадает.
Теперь зарегистриуем пользователя для nx-соединения через nxserver. Это делается через примерно следующий диалог:
interra:/# nxserver --adduser delayer
NX> 100 NXSERVER - Version 2.1.0-72-SVN OS (GPL)
NX> 1000 NXNODE - Version 2.1.0-72-SVN OS (GPL)
NX> 716 Public key added to: /home/delayer/.ssh/authorized_keys
NX> 1001 Bye.
NX> 999 Bye
interra:/var/lib/nxserver/home/.ssh# nxserver --passwd delayer
NX> 100 NXSERVER - Version 2.1.0-72-SVN OS (GPL)
New password:
Password changed.
NX> 999 Bye
Для надежности перезапустим nxserver
interra:/home/delayer/!/rx# nxserver --restart
Eсли пользователя нет в ОС, то nxserver вернет ошибку, так как при регистрации используется домашний каталог пользователя.
После этого на стороне клиента настраиваем NX-клиент, в данном примере от NoMachine - http://www.nomachine.com/download-client-linux.php, доступны сборки как для deb-, так и для rpm-орентированных дистрибутивов, ну и tarball тоже имеется. Поддерживаются linux, BSD, MacOS, Win системы.
Создав подключение (пояснение не привожу, так как считаю что ничег осложного в этом нет, все исключительно user friendly), импортируем сохраненный ранее ключ. Вот так: Configure -
General -> Key... -> Import -> /path/to/dsa-key -> Save
Все, проверяем подключение.
Если для секурности есть желание изменить ssh порт, то это делается в /etc/ssh/sshd_config, меняя значение Port. Аналогично изменяется директива SHHD_PORT на желаемое значение в /etc/nxserver/node.conf. Там же стоит изменить уровень логирования с дефолтного 0 на 2 или 4 ( опция NX_LOG_LEVEL). Подробности прямо в конфигурационном файле. Это полезно при начальной настройке и обкатке. Впоследствии несложно отключить и рестартнуть nxserver
interra:/# nxserver --restart
После перезагрузки самой системы freenx поднимается сам, благодаря init-скриптам.

3 февр. 2008 г.

[MicRO@work]:USB Fingerprint + Debian

Продолжением совместной с MicRO работы я думал запостить USB Fingerprint + Debian HOWTO, но оно, хауту ето, уже оказалось в свободном доступе на Опеннете. Я чо, рыжий шоле, лишним флудом заниматься... Делаем по-хитрому, даем линк. Ну и отражаем в топике, чтобы самому найти, если вдруг какая-нить сволочь любимая кто-то подарит подобный девайс. Тыдыщь, а я уже знаю, че с ним, девайсом, делать ;)

[MicRO@work]: HPLJ 1018 + Debian

Подарили нам на 2-летие принтер HPLJ1018 - ну нужно приручать, просто так он не давался (бескнопочный гад Ж)), на пробные печати тоже не реагировал. Немножко подумав, порыскав в инете, решение нашлось и так:

1. Ставим cups, foomatic, hpijs, foo2zjs (из этого у меня не стояло тока foo2zjs) {гыгы, даже у тру атцоф не всегда стоит... ;) всё}. Для тех кто в танке:
apt-get install cupsys cupsys-bsd hpijs foomatic-filters-ppds hpijs-ppds foomatic-db foo2zjs
Но тут нас ждёт подводный камень: foo2zjs чот както не правильно работает, не так как хочет принтер {тут не так, здесь не эдак... пересобрать нах!}, лечение нашлось сборкой из исходников .

2. Ну а дальше как по ману{а по какому, сопсно? ;)}:
$ wget -O foo2zjs.tar.gz http://foo2zjs.rkkda.com/foo2zjs.tar.gz
$ cd foo2zjs
Compile:
$ make
$ ./getweb 1018
$ su
# make install
# make install-hotplug
# make cups

3. Ну и наконец заходим на http://localhost:631/, после удаляем принтер HPLJ1018 если он есть и добавляем его заново, будет чтото типа: HP_LaserJet_1018_USB_1 добавляем именно его, после чего выключаем, включаем принтер и, о чудо, всё должно работать Ж) {от не нравится мне это "должно", право слово...но, внемлем}
——————————————————————————————
Не успев написать эту статью, пришлось приручать принтер в обраную сторону :) То есть Винда (тут принтер) — Линукс (Debian(хочет печатать)). Решение таково:

1. Ставим самбу клиента: apt-get install smbclient smbfs

2. На всякий случай поствим дрова foo2zjs, почти всё как выше
# make
# make install install-hotplug cups
После этого заходим например в Управление компьютером -> переферия -> принтер -> добавить -> другие и пишем:
smb://workgroup/user:pass@ipadress/name_printer
Ну или через Cups
Радуемся... {а ты - радуешься?? ;)}
MicRO©
P.S.: курсивом это я покомментил чуток ;) если кто в танке, хехе

NOD32 local update server on Linux machine

Ввиду отпуска на работе не появляюсь, поэтому базы для локального сервера обновлений NOD32 брать негде. В Сети есть "левые" апдейт-сервы, но чтобы с них тянуть, нужен или клиент, для которого нужна винда, или пофайлово тянуть браузером, что не айс. качалка (wget) в лоб пасует, ибо по адресу лежит индексная страничка, в теле которой и прописаны файлы. Поэтому и качается тока сам этот индекс. Но оставлять локалку без апдейтов тоже не айс, поэтому на просторах инета было найдено небольшое (даже два ;) ) хау-ту, как сделать на linux-базе процесс спирания баз с подобных серваков автоматичным. А сам процесс обновления уже налажен - через апач ;). Вот тут и тут предлагаются два способа, как сабж осуществить. Второй посерьезней, а первый как то хренова работает (а помоему так вообще не работает). Поэтому на первый забил (ибо не нужно нам столь фундаментальное решение), а на базе второго, поправив скриптег, сотворил вот примерно такое дело:
#!/bin/sh
WGET="/usr/local/bin/wget" #если другой путь, том замените его
WGET_OPTS="-r -c -nd -N -t 100" #Рекурсивное скачивание каталога
WORKDIR="/home/delayer/nod_upd/" # рабочая категория скрипта
TMPFILE="filelist.upd"
HOST=http://ved.metroland.ru/updates/nod32 # Здесь можно будет указать, с какого сервера брать обновления
cat $WORKDIR/update.ver | grep "file" | sed -e "s#file=#$HOST\/#" > $TMPFILE
$WGET $WGET_OPTS $HOST -i $TMPFILE
После выполнения сего скрипта в папке $WORKDIR у нас появляется готовые к потреблению базы обновления. Если в апаче мы сделаем VirtualHost вот такого типа:

DocumentRoot /mnt/www/data/nod_upd/
ServerName hostel3.hvn
CacheNegotiatedDocs On
ErrorLog /mnt/www/data/log/nod-error_log
CustomLog /mnt/www/data/log/nod-access_log common

Options FollowSymLinks -Indexes
AllowOverride None

то, забросив скачанные скриптом файлы прямо в DocumentRoot, получим полноценный сервер обновлений. ;) Вот в принципе и все дела. И сеть от вирусов более защищена, и админу, то есть мне ;), работы меньше ;)
...от тока сервера ети, где можно бесплатно базами поживиться, ыхх...нестабильны )

wi-fi via D-link G520 + ndiswrapper

Итак, сегодня наша задача - научить игуану (openSuSE 10.2 на базе ядра 2.6.18.2-34) работать с сетевой беспроводной картой D-Link Air-Plus G520, что построена на чипе RaLink RT61. Вроде в начальных условиях не соврал. Дальше проверим.
Считаем что карточка у нас успешна подключена в свободный PCI-слот и приветливо подмигивает одним из двух своих зеленых глазков. Замигает второй - задача решена. Сразу хочу сказать, что ядро 2.6.18.2-34 можно дополнить модулем wlan-ng-kmp, которые можно отыскать в репозитории openSuSE для соответствующих версий ядра. Этот модуль содержит свободные реализации драйверов для ралинковских чипсетов. В принципе, их можно найти в инете и скопмилить самостоятельно. Хотя бы вот по этому примеру.
Честно говоря, у меня они компилиться не захотели принципиально. Пробовал и модуль для ядра на их основе ставить - система работала до первого обращения к устройству - потом все зависало намертво. Более того, загрузить потом ее тоже было весьма проблематично, из-за того же первого обращения к сетевухе ;) Короче говоря, из всех решений наиболее оперативное, надежное и адекватно работающее - это настройка с использованием родных win-драйверов и разработки проекта ndiswrapper. Правда не знаю, как у них обстоят дела с прикручиванием wep/wpa/wpa2 шифрования (пока не занимался этим вопросом), но вроде можно ;).
Но приступим... Для начала убедимся, что сетевка у нас рабочая и на аппаратном уровне системой видится (требуются права суперпользователя). Ага, есть, и именно то, что нужно. Теперь со спокойной душой топаем на хоумпагу проекта ndiswrapper и загружаем исходники. Или - в любимый репозиторий пакетов и там ищем уже готовую rpm-ку. Неважно. Тут одна небольшая ремарка.
Проект достаточно быстро развивается, и некоторые релизы, в которых к примеру объявлена поддержка свежих версий ядраили еще какие новшества или исправления, на каких-то системах будут собираться, на каких-то нет. По крайней мере я перепробовал несколько версий, и остановился на 1,81 (на момент написания статьи актуальна 1,89). Так что если сорцы не компилятся или пакет не хочет устанавливаться, требуя непонятные зависимости и конфликтуя с половиной системы - есть резон попробовать другую сборку.
Итак, скачали распаковали и make install && make clean или rpm -i ... В первом случае (я его использовал) выйдет что-то вроде этого:
Как видно из скрина, whereis отдает нам местоположение ndiswrapper'a, значит все установилось хорошо. Далее нам потребуется .inf-файл драйвера сетевки. У меня он находится на CD (netrt61g.inf), шедшем в комплекте с девайсом. Устанавливаем драйвер командой
ndiswrapper -i /path/to/your/inf-file
(ключи можно посмотреть с помощью ndiswrapper -h). Далее проверяем корректность установки:
# ndiswrapper -l
netrt61g : driver installed
device (1814:0302) present
Усе гут! Теперь подгрузим модуль ядра и запишем в modprobe конфигурацию установленного драйвера.
# modprobe ndiswrapper
# ndiswrapper -m
adding "alias wlan0 ndiswrapper" to /etc/modprobe.d/ndiswrapper
Все, теперь ОС вполне может работать с картой. Осталось лишь "ввести ее на параллельную работу с сетью". Отрываем YaST - Сетевые устройства - Сетевая плата и наблюдаем пока следующую картину
Жмем добавить и попадаем в меню ручного добавления сетевого устройства. Заполняем нужные поля согласно скриншоту
Затем Далее, и попадаем в окно уже специфических настроек wi-fi карточки.

Тут остановлюсь подробнее. Доступно 3 режима работы wi-fi модуля в системе - Главная (ваш модуль работает как точка доступа), Управляемая (или режим инфраструктуры, когда есть внешная АР, то есть точка доступа) или Ad-hoc (так называемая одноранговая сеть без АР). Как раз третий нам и нужен, ибо точки доступа поблизости нет, а режим Главный ndiswrapper'ом не поддерживается. Ставим Ad-hoc.
ESSID - уникальное имя вашей wi-fi сети, не зная его, к сети не подключиться. Методы аутенфикации доступны как с шифрованием (wpa/wep), так и без него, но с общим ключом (значение которого нужно знать для допуска в сеть, он вводится в следующей строке) или с открытым (то бишь - велкам все). Берем общий ключ, ставим режим его ввода ASCII и вводим 5 или 13 (ограничения режима) символов. Настройки Эксперта в принципе можно не изменять, для умолчального запуска устроит.
Ну и все. Теперь применяем все изменения и получаем на выходе вполне функционирующий беспроводной интерфейс wlan0 c заданными параметрами.
Что и требовалось получить. Теперь, чтобы соединиться с данным компьютером по wi-fi с другой машины, нужно лишь просканить окружающее пространство на наличие сети и подключиться к ней, введя соответствующие ключ и essid и прописав в настройках сетевой карты IP-адрес той же подсети. Ну а если поднять DHCP-сервер, то последнее действие будет не нужно. ;) Но это уже совсем другая история, которую я расскажу в следующий раз.

katapult'ируемся

Интересная штука этот OpenSource.... да хотя вообще софт. Вот живешь ты, никого не трогаешь, и все табе нравится, все устраивает. Но вдруг, в один прекрасный день ты посредством чего-угодно (колонки в люимом журнале, рассылки, статьи, рекалмы, et cetera) узнаешь о какой-либо софтинке. Она привлекает твое внимание своими возможностями, как правило какой-либо мелочью, без которой ты обходился уже столько времени и обойдешься в принципе и дальше. Скачиваешь, ставишь, "маешь вещь" (с) Терра , и понимаешь, что дальше без нее не пойдешь никуда. Все - мое! Must have по-любому. А ведь ничего вроде в ней особенного. Вот так и сегодня....
Что я делаю, если хочу запустить приложение - alt + F2 ну и пишу название (имею ввиду GUI-шный софт, для консольного консоль была и есть); поставить желаемый трек в амароке - открываю плайлист, ищу/подгружаю, слушаю.... ну и так далее. Все логично, все привычно. Но... Но опера подбрасывает RSS-ку, ведущую меня сюда (привет, Strannick =) ). Ну а я же kпользователь, как не попробовать, к тому же и делать нечего особо было.
Вуаля, и katapult у меня в системе. Влился как родной.
Вкратце, что умеет, видно на скрине окна настройки


То бишь, нажав хоткей (alt+Space by default) вводим то что мы хотим, а "рогатина" (иконка у них такая;) ) угадывает, что я имел в виду - трек заказать, софтину запустить, слово "спеллчекнуть", калькуляток заборяжить, или линк мозилловский окрыть. Ну и по энтеру угадайка срабатывает. Удобно до ужаса ). Для меня особенно с амароком. Ради сего я даже базу треков всех обновил (рогатина из нее данные беруть). В общем, обязательно k применению.

root-tail: workspace логи

Давно уже была идея завести периодическое выкладывание скриншотов рабочего стола (ну одного из рабочих столов хотя бы ;) ) и потом, интереса ради, сравнивать более свежие скрины с более старыми. Ну вот сегодня похоже и начнем. Начнем, приурочив к тому, что у меня дошли руки до софтинки root-tail, занимающуюся тем, что выводит прямо на рабочий стол содержимое заданного (или заданных, можно и так) лог-файла. С обновлением оного естественно, аля команда tail -f, короче говоря. Сразу предупреждаю о граблях заинтересовавшихся k-user'ов, тобишь пользователей окружения KDE: дабы софтина заработала, то есть на рабочем столе действительно что-то да появилось, следует поставить тычку вот тут: Старт -> Настройка -> Рабочий стол -> Поведение -> Программы в окне рабочего стола. Естественно, если она неактивна, активировать опцию выше - Показывать значки на рабочем столе. После сих пертубераций смотрим man root-tail на предмет синтаксиса команды и получается что-то вроде этого:

(дал маху, не поглядев, с какими параметрами ksnapshot сохранил картинку.... вышло на 334Kb ;) а пережимать ой как лень...так что или довольствуемся тамбхейлом, или не жмемся на траф, гг )
Да, для удобства работы сделал вот чего: строку с командой (на экране результат работы вот этой: root-tail -g 1170x400+106+624 --font -adobe-*-*-r-*-*-14-*-*-*-m-*-*-* /var/log/vsftpd.log,green) пишем в какой-нить текстовый файлик, сохраняем его, или делаем на сохраненный где-то еще файл симлинк в ~/.kde/Autostart/, не забываем сделать его исполняемым хотя бы для владельца (chmod u+x) и также даем этому владельцу право чтения /var/log/vsftpd.log (в моем случае), если его еще нет. И все работает и радует глаз.
Так же представлена прошлая найденная красявость - консоль yakuake.

Визуальное наследство потомкам

Хы... тяжелая неделя, обещанная в понедельник, пока так и не началась. Это радует. Но начнется значит в любой момент и в более концентрированном виде. Это напрягает. Однако песня сегодня совсем не об этом. На выдавшемся так удачно и неожиданно досуге (отменили 2 пары из двух) ;), решил разобраться с проблемой захвата видео с рабочего стола. Ибо лучше один раз увидеть, чем сто раз услышать. Видеоманы по настройке того-то или этого-то воспринимаются конечным пользователем много проще, лучше и, что главное, действеннее..
Спросив старину гугла по сабжу, наткнулся на преинтереснейший и в будущем думаю нужный ресурс. Советую. По вопросу скринкастинга подцепил [gtk-, qt-]recordmydesktop и xvidcap. Ну.. у меня они были в репозитории, так что качать не пришлось (даже версии оказались актуальными), но вдруг кому потребуется. Обе софтинки имеют как полное консольное управление, так и GUI. Правда, у xvidcap он доступен "из коробки", а у recordmydesktop'a нужно проинсталлить пакетик gtk-recordmydesktop соответсвтующей версии, или qt-... что боле интересует. Поглядел я на GUI и того и другого...не знаю, имхо в консоли удобнее.. сразу прописал что нужно (маны очень подробные и с примерами) и начал тут же запись. Ессно, должны быть установлены некоторые кодеки, дабы софт мог енкодить "награбленное видео", но что требуется и что не установлено ранее...потянется зависимостями, так что работать должно. Единственное что хотелось бы сказать (я ети грабли искал чуть не день ;) ) - дабы программки смогли помимо видео грабить и звук (а мне этого очень хотелось), а они это умеют, нужно в настройках микшера KDE (kmix к примеру) включить Captire девайс и выставть ему какую то громкость (ее уровень уже зависит от железа и настроек системы и приемлемый выставляется опытно).


На данном скрине - последний ползунок выставляет громкость, "диод" снизу сигнализируется on/off статус Capture. После этого наши программулины смогут брать с него аудио поток. МОжно конечно и с IN выхода звук брать, но мне сие неинтересно. В остальном проблем в работе прог нет.
Свой выбор я оставил за recordmydesktop, ибо по сравнению с xvidcap'ом она более терпима к ресурсам. А так как общий функционал и качества картинки на выходе в принципе одинаково, то 10-20% используемого процессорного времени первой софтиной против 99% второй.. - для меня стал решающим критерием.
Займемся скринкастингом, друзья! ;)

1 февр. 2008 г.

VPN via kvpnc

Итак, простенький мануальчик по сабжу. Даже со скриншотами ;) Правда, немного с артефактами некоторые получились, ну да ладно, на информационную составляющую сии огрехи не влияют особо. Но, тем не менее приступим.
Для поднятия VPN-соединения в SuSE я рекомендую использовать kvpnc версии не ниже 0.8.6 (у меня на момент написания стоит 0.8.8). Взять софтинку можно практически в любом репозитории, а если лень, то есть и на инсталляционном dvd. Однако в таком случае нужно контролировать версию: в более старых есть бага, не позволяющая клиенту пройти MS-CHAP аутенфикацию на впн-сервере (ошибка unrecognized option: mppe-requied).
В нашем случае, считаем, что актуальная версия уже установлена и готова к работе:
(первый артефакт должен был быть курсором мыши с всплывающей посказкой функции кнопы Мастера) - ето думаю итак все догадались ;) Так вот, кликаем на волшебную палочку и запускаем Мастера установки соединения. В появившемся окне выбираем тип соединения - в моем случае сабжевым является vpn, так что берем Microsoft PPTP (а что поделать, такой сервер ;) большая часть клиентов - винда, так что на openVPN'e не разбежишься)
Далее предлагается указать некоторые параметры PPTP. В принципе, если у вас в локалке ничего специфического не понастроено (уточните у того кто настраивал что ли..), то добавлять или видоизменять ничего не требуется. В моем случае, как уже было сказано выше, сервер заточен под виндовых клиентов, так что требуется MS-CHAP аутенфикация, в линуксе реализованная в качестве модуля ядра MPPE (MPPC). Да, примечание... если у вас ядро ниже 2.6.13, то придется его или обновить, или пропатчить дабы сия опция там появилась. Патч я где то на просторах инета видел. Нужно наложить его на исходники ядра и пересобрать последнее с включенной модульно или константно option MPPE. все как обычно ;). Но лучше уж сразу поновее ядрышко иметь, так онои секурнее, и эстетичнее ;)
Но, двигаемся дальше. Ну а дальше вообще семечки. Вводим имеющийся логин и пароль, желательно без ошибок и в нужной раскладке ). Тычки насчет сохранения оных расставляем согласно личным пристрастиям и степени паранойи. NT доменные имена думаю не пригодятся - не встречал я локалок с AD.... ну если ето ваш случай - я думаю вы знаете что вводить.
Тут я и сказать не знаю чего... одно поле выбора сетевого интерфейса... причем еси через локалку впн - то палюбому eth0... неинтересно (тока артефакт картинку чуток веселит). Топаем дальше.
А дальше у нас окно работы с роутингами. Тут в приципе на любителя, вернее, по обстоятельствам. В моей локалке прописанный в настройках маршрутизации default gateway в курсе, куда пулять мои пакеты как на запрос соединения, так и вообще в инет. ;) На то он и default $) Если у вас такого счастья нет, то ставим галку Use additional network routes, жмем Добавить маршрут (Add route) и в появившемся окошечке все вбиваем. Еси я все правильно понял, то етот маршрут создастся при подключении, и удалится при завершении работы программы. Да, как видно на скрине, в моем случае следует проставить опцию Replace default route. В иных ситуациях, возможно, правильным будет выбрать Keep default route. ( Скорее всего в тех случаях, когда сервер смотрит уже непосредственно в инет, а то у нас там куча всего за ним...traceroute классный выводится ;) )
Дальше нам предлагается включить\выключить проверку статуса соединения, указать ее временные интервалы, сказать, что удаленное пинговать для проверки степени живости коннекта и ресконнектить в случае отрицательного результата. В принципе, если соединение не мрет постоянно при отсутствии сетевой активности, то можно и отключить.

И последний штрих. Дженеральные, так сказать настройки. Помните капитана Врунгеля? "как вы судно назовете, так оно и поплывет"... воот! Так что придумываем имя и описание профиля не абы как, а с фантазией и вкусом. Вот только, прошу вас, отключить фантазерство напрочь при введении VPN gateway'я. Тут нужна счетверготоченность и полное осознание собственных действий. Неверный путь к впн шлюзу - и софтинка будет ломиться незнамо куда, и никакого инета вам не будет. Если не в курсе, спросите у уже упоминавшегося выше настройщика впн-шлюза вашего, или хотя бы у более прошаренных (читай, уже подключившихся) товарищей.
Вот и все. Дальше коннект! И если все было сделано правильно - вы в Сети. И можете с легкостью прочитать этот мануал ;)) Действительно, уже дописывая эти строки, опять вспомнились слова про то, что дрова от модема всегда оказываются в интернете. Но ведь надо же все-таки хотя бы пытаться сеять разумное-доброе-вечное на просторах Сети в общем, и на страницах моего блога в частности. Ищущий да обрящет. И для облегчения поиска и создания Коннекта и был накорябан сей пост. Хочется надеяться, что кому нибуть он поможет. Еще раз сорри за артефакты ;) и антрям.
Постскриптум: Добавочка выяснилась одна. Немаловажная как вышло. В общем, если в вашей сети VPN-шлюз и ваш хост находятся в пределах одной подсети, то дальше можно не читать. У меня к примеру, ситуация иная - я нахожусь в подсети 10.0.0.0/21, а мой впн-шлюз - в 10.1.0.0/19. Поэтому по умолчанию хост шлюз не видит, и соответственно, kvpnc будет стучаться неизвестно фкуда - а именно, выдавать ошибку о том что no route to host или что то в этом роде. Поэтому топаем в Yast - Сетевые службы - Маршрутизация, жмем Добавить - и добавляем маршрут в нужную подсеть (предварительно поставив тычку Настройки эксперта). Точные настройки будут у каждого свои, но у меня они выглядят так:
хЫ.... только сейчас заметил. Оболочки окон разные получились ;) Последний скрин - с Большого Брата (привет Emerald'у) Так что дополнительно оцените различия между оным и kwin. Но это ...уже совсем другая история, о ней - в следующий раз.

Beryl + XGL

Итак, beryl+Xgl. Думаю, если кто и зайдет на эту страничку теми или иными способами, это сочетание не будет пустым набором букаф. Хотя возможны и исключения. Но тем не менее расписывать, о чем далее пойдет речь, не буду, ибо лениво. На край ищущая душа вобьет ети же два слова в поисковик и получит кучу инфы по сабжу. Ну или можно пройтись по линкам внизу страницы. Эффект будет тот же )
Нижеследующий пост ни в коей мере не претендует на полноценный мануал по установке и настройке и не избавляет от четния документации по сабжу и содержимого уже обозначенных линков. Я просто записал в блоготерпимой форме все свои действия, приведшие в итоге к положительному результату. Может, поможет и еще кому - буду рад. Я вообще засел за берил еще и от того, что полазав по инету, так и не понял, может ли в принципе 3D-десктоп иметь место быть на буке с i945 в качестве графического чипсета. Результаты поиска прямо противоположны. И да, и нет. На разных форумах, в разных тредах.... но вроде и там и там аргументировано. Значит нужно пробовать самому. Что мы и попытаемся ниже совершить. Воть...
Для дальнейшей работы нам нужны следующие пакеты:
  • xgl
  • beryl-core
  • beryl-plugins
  • emerald : window decorator
  • emerald-themes
  • aquamarine
  • beryl-settings
  • beryl-manager
Что-то из этого возможно уже инсталлено, что-то нет. Последние актуальные версии всего, что связано с beryl'ом, xgl'ом и иже с ними, можно взять из репозитория со следующими параметрами:
Тип - rpm-md/repomd
Протокол - HTTP
Имя сервера - software.opensuse.org
Каталог - /download/X11:/XGL/openSUSE_10.2
Вбив все это в соответствующие поля в YaST - Программное обеспечение - Источник установки, мы получаем в свое распоряжение данный репозиторий и через тот же YaST - Программное Обеспечение - Управление программным обеспечением устанавливаем все вышеперечисленное. Так же репозиторий можно добавить через SMART, для чего нужно ввести консольно
su
smart channel --add http://software.opensuse.org/download/X11:/XGL/openSUSE_10.2/X11:XGL.repo
Кому что больше нравится, короче говоря. -)
Дале смотрим, все ли проинсталлилось корректно:
suse:/home/delayer # ls /usr/bin/ | grep beryl
beryl
beryl-manager
beryl-settings
beryl-xgl
Теперь немного работы руками, хоть в SuSE это и не принято ;)
Редактируем свой xorg.conf
sudo nano /etc/X11/xorg.conf
Что требуется изменитьили добавить...
Section "Screen"
[...ваши конфиги...]
Option "AddARGBGLXVisuals" "True"
EndSection

Section "Device"
[...ваши конфиги...]
Option "TripleBuffer" "true"
EndSection

Section "Extensions"
Option "Composite" "Enable"
EndSection
Следует сразу проверить, включено ли 3D-моделирование (эффекты) в опциях вашей видеокарты.
suse:/home/delayer # glxinfo | grep direct
direct rendering: Yes
Иначе, для видеокарт nvidia - обязательно установить проприетарные дрова ( желательно поновее) - такая видеокаточка у меня на Большом Брате (FX 5200). В случае бука имею интегрированный чипсет i945 (во многом из-за гипотетических возможностей которого и была затеяна вся эта эпопея). Для интелловской графики нужно активировать режим 3D. Для этого можно и нужно воспользоваться SaX2 (стандартная утилита конфигурации Х-сервера). Там просто нужно опставить галочку напротив поля Активировать 3D и перезагрузить иксы. За одним перечитаются и свежеизменненные настройки xorg'a.
После рестарта X-servera (можно не заморачиваться и перезапустить их банальным alt+ctrl+backspace) в консольке пишем beryl-manager, наблюдаем фирменный сплаш-скрин и погружаемся в море трехмерности. ;) Но... возможны косяки. Во-первых, я столкнулся с тем, что поругавшись на отсутствие поддержки чего то там... менеджер просто послал лесом и отказался запускаться. Оказалось, что 3D в настройках видео не активировались. -)
Еще один очень неприятный косячок - после запуска экран белеет и ничерта не видать, хотя кубик можно покрутить. White Cube Problem, короче говоря. Решается на самом деле просто: в файле ~/.beryl-managerrc и ищем [beryl-settings] и прописываем/меняем содержимое на показанное ниже.
[beryl-settings]
render_path=2
Еще может быть следующая проблема - окошки/менюшки или корявую прозрачность имеют или вообще не работают. Это как выяснилось, получается оттого, что emerald'овско-beryl'овский модуль прозрачности (не помню, как он там называется) дерется со стандартным KDE'шным (называния, извините, тоже не помню, а искаться лениво ;) ..да и не суть важно). Так вот, чтобы этого избежать - отключаем всю кедовую прозрачность нафиг. Должно помочь.
Ну, все у нас в общем работает. Но согласитесь, некошерно каждый раз врукопашную запускать - хочется, чтобы все само делалось ;). Я решил эту неувязочку просто:
ln -s /usr/bin/beryl-manager /home/delayer/.kde/Autostart
мне хватило. Еси не работает можно попробовать и сам берил продгрузить
ln -s /usr/bin/beryl-xgl /home/delayer/.kde/Autostart
Таким же образом, если требуется запускать beryl-manager и beryl с какими либо параметрами (к примеру --use-copy --no-force-window-manager и иже с ними, подробности в man'ах), то тогда делаем так
touch /home/delayer/.kde/Autostart/3dstart.sh
echo "что_хочется_для_запуска" > /home/delayer/.kde/Autostart/3dstart.sh
chmod +x /home/delayer/.kde/Autostart/3dstart.sh
Да, в начале файлика стоит не забыть !#/bin/sh
Снова выносим иксы, заново логинимся .... и все должно быть. Трехмерно. Гламурно. Сорри, не удержался. ;)
Не знаю, буду ли писать что нить про настройку как самого beryl-manager'a и emerald'a... У меня вроде не возникло никаких трудностей... просто кликаем все подряд и смотрим на изменения, оставляя то что понравилось, и отключая хламности ;)
А на сегодня.. и вообще на эту неделю про сию бодягу я заканчиваю... и так дня три нарно угрохал, да еще сколько и собирался ;) Паблиш!
Основные линки (может что и забыл, спросите у гугла ;) )
http://en.opensuse.org/Beryl
http://ru.opensuse.org/Xgl
http://ru.opensuse.org/Beryl
http://ru.opensuse.org/Additional_YaST_Package_Repositories
http://ru.opensuse.org/Xgl_Troubleshooting

openSuSE - установка

Итак, пришло все-таки время инсталляции openSUSE Linux 10,2 на мой лаптоп Dell Inspiron 640m. Как и обещал, попробую сделать цикл если не статей HOW-TO, то хотя бы заметок в ключе «Как я это делал». Первое дело – установка. Инсталлятор сьюзи полностью графический, и после приглашения загрузчика мы попадаем в его, инсталлятора, объятия. )

Абсолютно ничего сложного: Выбор языка (предупреждение о том что русский перевод инсталлятора недостаточно полный) – корректировка если надо временных зон и непосредственно времени, выбор рабочего стола ( предлагаются KDE, Gnome и «что-то еще», за сим скрывается еще несколько более недружелюбных оконных менеджеров вроде fvwm, столь любимих различными гуру). Да, до еще временной зоны, Программа установки спросит насчет дополнительных источников. Поэтому, если у вас имеются какие либо заначки (у меня например, есть CD с записанным на нем language pack'ом, и несколько сотен метров прокачанных для Большого Брата пакетов), то их целесообразно в этот момент внести в «реестр». Для этого нужно активировать тычку – Дополнительные источники, выбрать тип CD/DVD/и тому подобное и вставить/указать_путь к файлам. Остальное система сделает за вас.

Далее чуть веселее. Проанализировав хард вашей машины, инсталлятор выдаст окно Настройка установки, где будут показаны все основные моменты того, что он собирается сделать. Переключаемся в вкладку Эксперт и смотрим. Нас интересуют поля Разметка и Приложения. В первом из означенных будет написано, что предлагается сделать с вашим хардом для установки системы. если вас все устраивает, можно смело пропускать. Если нет, то добро пожаловать в дебри Partition Manager'a. В принципе, сложностей не возникает, исключая того момента, что выбрав ручное разбиение, Вы столкнетесь с понятиями начального и конечного цилиндров разделов. (есть возможность оперировать и мега- гигабайтами относительно начала создаваемого раздела, (или предыдущего) но мне показалось это еще менее удобным. Как показала моя пусть не обширная но все же неоднократная практика, если на винте не туева куча разноименных logical / primary разделов с не пойми какими ФС, то автоматика срабатывает как надо и ничего ручками править не приходится. В моем случае так и вышло. Установщик нашел свободный раздел (40 Гб) между системным - виндовым, и последним - «файлопомойным», и предложил его разделить на '/' '/home' и 'swap' партиции, отформатировать в ext3 и установить систему на оные. Разобравшись с разбиением, обратим внимание на пакеты. Опять же, если ставится система впервые, а раньше опыта общения с любыми linux/unix-дистрибутивами не было, то можно оставить все как есть или (при достаточном месте на жестком диске), нажать на ссылку Приложения, и в появившемся меню наставить птичек хоть во все поля. В моем случае я ясно представляю, что из предлагаемого на DVD софта мне нужно, поэтому двигаюсь в Приложения, активирую возможность подробного выбора пакетов (соответствующая галочка внизу) и выбираю нужные пакеты. После этого система автоматически проверяет выбранные пакеты на неудовлетворенные зависимости, и при необходимости выдает окно со списком дополнительно устанавливаемых пакетов.

Соглашаемся со всеми изменениями и начинаем непосредственно процесс установки. На выбор или смотрим слайд-шоу с одами openSuSE линуксу, или наблюдаем за планомерно устанавливающимися пакетами. Прогресс-бар слева покажет сколько еще осталось ждать.

Идем курить/болтать в чат/писать сей мануал ;)

Вуаля! Все проинсталлилось и Установщику снова требуется наша твердая и уверенная рука – совершить базовую настройку системы. Как ни фундаментально это звучит, на опять же все просто. Вводим дважды пароль root'a (желательно одинаковый ;)). Кнопа Настройка Эксперта позволяет выбрать метод шифрования пароля – что душе больше понравится. ) Я оставил Blowfish. Имя хоста и настройки сети опускаю, ибо они у каждого свои. А что куда непосредственно вводить (если у вас нет DHCP сервера, который сделает все за вас), или уже в курсе, или спросите своего админа. ) Добавлю от себя только что я отключил network manager (так как не понял, нафиг его нужно...мешает тока ;)), выключил фаерволл ( его настройка требует отдельного разговора, да и в локалке обычной нафиг он нужен – мы же в линуксе ;) ), отключил поддержку IPv6 (сами понимаете почему), ну и ввел нужные настройки для моей локальной сетки (ибо сам одмин, спрашивать не у кого ;) ) Прочие пункты – вроде ISDN/DSL модемов, прокси и так далее можно будет настроить по необходимости позднее через YaST, да и нет у меня ничего этого. Двигаем дальше. Проверку соединения пропускаем, репозитории тоже потом подключим по мере надобности. Метод регистрации в обычном случае оставляем локальным ( если вы не в домене, или в сети нет LDAP'a и иже с ним) Далее создаем собственного пользователя (не под рутом же сидеть в конце концов), только стоит внести его группу wheel, если система не сделает это сама. Далее «внимательно» читаем примечания к релизу..

Последний пункт – Настройка оборудования. Ждем пока система определит периферию. Опять же, в большинстве случаев – без эксцессов. Если что не нравится, уже в частном порядке кликаем на ссылку – и смотрим/меняем по своему усмотрению.

Все. Выслушиваем поздравления инсталлятора, жмем Завершить – система перегружает X-сервер и все сетевые службы/сервисы для применения настроек и перед нами предстает окно ввода имени пользователя и пароля. SuSE Linux полностью установлен и готов к работе.
Что дальше?... stay tuned -)

UPdate: инсталлер 10.3 изменений особо не претерпел (если только на русский более полно перевели), так что актуальность статья все еще представляет.