середа, 19 грудня 2007 р.

Як запустити Deluge 0.5.7.1

Після того, як Адмін Української Шари мене забанив за використання клієнта Azureus, довелося пересісти на Deluge. Однак після апгрейду системи а разом з нею і клієнта до версії 0.5.7.1 - останній перестав запускатися. Тому довелося на деякий час забути про закачки. Викроївши шмат часу і зарившись в інтернет я знайшов на одній сторінці "рецепт", як запустити deluge. Для цього слід виконати команду: sudo vim /usr/share/python-support/deluge-torrent/deluge/__init__.py та закоментувати всі посилання на glade.

Правда в цьому випадку будуть недоступними меню "Налаштування" та "Плаґіни", але ж ми не шукаємо легких шляхів ;)

Власне кілька днів опісля цього, я надибав ще один цікавий варіант, який полягає в тому, що у збірці використовується мова програмування python версії 2.4, а оптимальним є завантаження, без використання коментарів версії 2.5. Як людина допитлива, я одразу ж змінив у /usr/bin/deluge рядок #!/usr/bin/python2.4 на /usr/bin/python2.5, однак мене і тут чекала невдача, адже deluge у Debian зібрано на основі версіїї 2.4, а такого модуля, для версії 2.5 не існує. Довелося звертатися до офіційного сайту та збирати пакет власноруч.
Отже, змінюємо символічне посилання мови програмування python з версії 2.4 на 2.5
cd /usr/bin
sudo rm python
sudo ln -s python2.5 python
переходимо до теки /usr/src:
cd /usr/src
завантажуємо туди ж програму:
sudo wget -c http://download.deluge-torrent.org/index.php?dir=tarball/0.5.7.95/&file=deluge-0.5.7.95.tar.gz
розпаковуємо її:
sudo tar -xvf deluge-0.5.7.95.tar.gz
встановлюємо необхідні залежності для успішного збирання програми:
apt-get install g++ make python-all-dev python-all python-dbus python-gnome2-extras python-gtk2 python-notify python-pyopenssl librsvg2-common python-xdg python-support libboost-dev libboost-thread-dev libboost-date-time-dev libboost-filesystem-dev libboost-serialization-dev libssl-dev zlib1g-dev
та встановлюємо саму програму, за допомогою команд:
sudo make
sudo make install
після цього програма запустилася, однак жодних змін не відбулося. Виявилось, що для того, або зміни відбулися, слід видалити файл налаштувань з теки ~/.config/deluge

Отже:
rm ~/.config/deluge/prefs.state

Власне це і є вирішенням проблеми :)

четвер, 8 листопада 2007 р.

Web-камера для Лінакс

Сиджу я оце в Греції, та й вирішив доукомплектувати ноутбук веб-камерою. Тим паче, що вони начебто тут дешевші. Враховуючи, що людина я тут незнана, та й ношуся з Лінаксом, вибирати камеру слід дуже уважно. Тому тут, я хочу поділитися інформацією, яку накопав в інтернеті про підтримку улюбленою системою різних веб-камер.
Отже:
  1. Перелік обладнання від LDP
  2. Перелік обладнання від вар'ята, який сам написав 235 драйверів для вебкамер.
  3. Встановлення веб-камери Logitech QuickCam Pro 4000.
  4. Веб-камери від Creative
  5. Перелік обладнання для німецько-розумічих
  6. Огляд обладнання від Linux USB overview.
  7. Посилання на сторінки з драйверами від exploits.org.
  8. 3Com HomeConnect Digital /ViCam USB
  9. Тут підтримуються веб-камери від Aiptek, Creative, Digicom, Dynalink, Ezsonics, Intel, Microtek, Pace, SuperCam, TCE, TerraCam, Trust, Utobia, Zoom. Підтримуються не всі моделі.
  10. А отут пропонують роботу з камерами Aox, Endpoints, Phillips, Kensington, Spypen, Rimax, Creative, Chicony, Concord.
  11. Великий перелік обладнання, тому навіть не буду цитувати....
  12. Сторінка підтримки веб-камери Connectix QuickCam VC
Отже, перелік складено, можна відправлятися на пошуки щастя.

Покращення інформативності рядка стану для VIM.

Автор: Кім Шульц (Kim Shultz)
Переклад: Андрій Боровий
Оригінал статті

В нижньому кутку редактора Vim знаходяться дві речі: буфер командного рядка (де вводяться команди) та рядок стану. У первинній конфігурації рядок стану є простим та неінформативним, однак це можна змінити за допомогою простих методів.

Цей розділ є витягом з нещодавно опублікованої книжки Hacking Vim.
Праворуч, первинний рядок стану відображає номер поточного рядка та колонки, а ліворуч - назву відкритого файлу, якщо такий є. Як тільки виконується команда Vim, замість рядка стану відображається буфер команд. Якщо ж команда виводить повідомлення, вони з'являються в правому кутку рядка стану.
Такий рядок стану цілком підходить для простого та швидкого редагування файлів. Однак, якщо Ви використовуєте Vim щодня і редагуєте різні формати файлів - значно зручніше використовувати більш інформативний рядок стану.
Команда, яка визначає вигляд рядка стану викликається наступним чином:

:set statusline format
де format
рядок у printf-подібному форматі, який описує вигляд статусу рядка. Зазирнувши у довідкову систему Vim, за допомогою :help 'statusline', Ви помітите, що рядок стану може показувати різну інформацію. Деякі параметри можуть бути більш корисними для щоденного використання, ніж інші.
Мій рядок стану містить наступну інформацію:
  1. ім'я файла, який я наразі редагую;
  2. формат цього файлу (DOS або UNIX);
  3. тип файлу, визначений Vim для цього файлу;
  4. символьний та шістнадцятковий код поточного символу;
  5. місце знаходження в документі у вигляді номера рядка та позиції в цьому рядку;
  6. довжина файлу (кількість рядків).

За допомогою наступної команди Ви отримаєте рядок стану із зазначеними вище параметрами:

:set statusline=%F%m%r%h%w\ [FORMAT=%{&ff}]\
[TYPE=%Y]\ [ASCII=\%03.3b]\ [HEX=\%02.2B]\
[POS=%04l,%04v][%p%%]\ [LEN=%L]

Я додав квадратні дужки для кожного параметру, щоб легше розрізняти їх між собою. Ці дужки є естетичним додатком, який Ви можете безпечно видалити.
Однак, навіть після введення цієї команди Ви не побачите жодних змін, рядок стану все ще буде мати старий вигляд, як при первинному встановленні. Це пояснюється тим, що Vim первинно не відображає рядок стану. Натомість він показує буфер команди з невеликою кількістю інформації. Для того, щоб Vim відобразив справжній рядок стану, слід змінити параметри у vimrc. Слід ввести команду, яка накаже програмі, виводити рядок стану як ще один останній рядок у вікні редактора.

:set laststatus=2

Після цього Ви побачите, що буфер команди залишився на своєму ж місці. Правда тепер з'явилося місце для рядка статусу, і Ви завжди будете мати на видному місці дані про поточний файл. Звісно, рядок стану займає певне місце області редагування. При потребі Ви можете видалити його до кінця сесії редагування, виконавши в середовищі Vim команду:

:set laststatus=0

Перемикання меню та рядка інструментів


Якщо Ви працюєте з Vim у консольному режимі, Вам не звикати до відсутності меню та рядка інструментів у верхній частині редактора. Зазвичай, Gvim, первинно використовуються обидва елементи.
Багато користувачів переконані, що наявність додаткового місця для редагування є значно важливішим, ніж наявність меню та рядка інструментів. Однак, деякі скрипти з меню додають більшої функціональності, а тому корисно мати під руками меню. Вирішити цю проблему можна за допомогою тимчасового вмикання/вимикання меню та рядка інструментів.
Наступний код прив'язує комбінацію Ctrl+F2 режиму увімкнення меню та рядка інструментів у Gvim. Щоб увімкнути цю можливість, додайте до файлу vimrc наступний код:

map   :if &guioptions =~# 'T'
\set guioptions-=T
\set guioptions-=m
\else
\set guioptions+=T
\set guioptions+=m
\endif

Тепер, якщо Вам не потрібне меню та рядок інструментів, натиснувши Ctrl+F2, Ви звільните місце для тексту. Для того, щоб приховати лише меню або лише рядок інструментів, слід трішки відредагувати файл налаштувань vimrc. Щоб ховати лише меню, використайте:

:set guioptions-=m 

Щоб сховати рядок інструментів:

:set guioptions-=T 

Інші частини графічного інтерфейсу можна змінювати за допомогою команд setguioptions. Отримати перелік того, що Ви можете змінити, можна за допомогою команди :help 'guioptions'.

середа, 24 жовтня 2007 р.

Новий драйвер від ATI

Нарешті з'явилась версія драйверу 8.42. Серед основних переваг:
- покращена швидкодія (десь у півтори рази)
- додано підтримку AIGLX (Колупаємо compiz) :-)

середа, 17 жовтня 2007 р.

Запускаємо Google Earth

Власне проблема полягаэ в тому, що Google Earth не працює з новими драйверами.
Тому потрібно скачати старі драйвери для ATI. За допомогою команди
./ati-driver-installer-8.27.10-x86-64.run --buildpkg Debian/testing
зібрати пакунки. Після цього, викорстовуючи MidnightCommander відкрити файл fglrx-driver_8.27.10-1_amd64.deb та перейти до теки (всередині архіву) CONTENTS/emul/ia32-linux/usr/lib/. В цій теці знаходиться файл libGL.so.1.2 , який нам і потрібен.
В іншій панелі командера переходимо до теки /usr/lib32/xorg та перейменовуємо файл libGL.so.1.2 на libGL.so.1.2.orig. Після цього копіюємо новий (файл зі старого релізу драйверів) до теки /usr/lib32/xorg, хрестимося та запускаємо Google Earth

неділя, 14 жовтня 2007 р.

atkbd.c: Unknown key pressed

Виникла на днях халепа. При завантаженні ядра, почало виводити наступну помилку:
atkbd.c: Unknown key pressed (translated set 2, code 0xeeon isa0060/serio0)
atkbd.c: Use 'setkeycodes 060e ' to make it known
Пошук у тенетах не приніс нічого цікавого.
Трішки покопавшись у пам'яті я пригадав, що повідомлення почало з'являтися після того, як я вимкнув ноутбук за допомогою клавіші живлення, воно тоді не спитало нічого, і просто вимкнулося...
Загалом проблему було вирішено, після запуску Windows та перевірки всіх клавіш. Що ж було насправді - залишається загадкою :-(

пʼятниця, 5 жовтня 2007 р.

Безпечний віддалений доступ до стільниці

Автор: Федеріко Керекі (Federico Kereki)
Переклад: Андрій Боровий
Оригінал статті

Безпечний доступ до домашнього сервера може бути проблемою, особливо, якщо він не має статичної IP адреси, однак, ви можете розв'язати цю задачу за допомогою Linux, DynDNS, PAM та NX Free.

Кілька місяців тому мені потрібно було поїхати з дому, який знаходиться у Монтевідео (Уругвай) до Нью-Йорка. Оскільки планувалося перебувати за кордоном кілька тижнів, мені потрібно було переконатися, що я можу мати безпечний доступ до домашнього сервера. Незважаючи на стабільність Лінукса, я припускав, що у моєї родини можуть виникнути певні проблеми, а я не міг покладатися на передачу інструкцій за допомогою телефону або повідомлень.

Для того, щоб все добре працювало, було потрібно вирішити три проблеми. По-перше я використовую ADSL-з'єднання, не маючи статичної IP адреси, тобто моя адреса може змінюватися, а отже слід забезпечити доступ за умов, що я не знатиму поточної адреси. По-друге, я, звісно, можу використовувати SSH, однак багато хто намагається атакувати машини, які мають відкритий SSH-порт, а я не хочу робити свій комп'ютер мішенню. Зрештою, я чув про NX Free Edition, хотів спробувати його в роботі, однак я повинен бути певним, що роблю це безпечним чином.

Доступ до комп'ютера, який не має статичної адреси

Відсутність статичної адреси є проблемою, яку можна вирішити за допомогою DynDNS від Dynamic Network Services. Ця безкоштовна послуга дозволяє будь-кому мати власний піддомен, який асоціюється зі змінною IP-адресою. Все що потрібно,— це лише встановити невеликий клієнт поновлення, який буде зберігати відповідність імені комп'ютера його поточній IP-адресі, повідомляючи центральний сервер щоразу при зміні IP-адреси комп'ютера. Якщо ж ви використовуєте один із сучасних маршрутизаторів, його можна налаштувати на відсилання таких повідомлень, не використовуючи клієнт.

Перейдіть до сторінки DynDNS, отримайте безкоштовний рахунок та оберіть ім'я домену (я обрав remotekereki.homelinux.com). Наприкінці скористайтеся поданими інструкціями, щоб отримати клієнтську програму DD, яка є простим скриптом на мові Perl. Встановлення DDclient є дуже простим: отримайте код, розпакуйте його до /usr/bin (для цього потрібно мати права користувача root) та відредагуйте /etc/ddclient/ddclient.conf, вказавши деталі сайту:

pid=/var/run/ddclient.pid
daemon=600
protocol=dyndns2
use=web, web=support.easydns.com/utils/get_ip.php
server=members.dyndns.org
login=вашеІм'яКористувача
password=вашПароль
вашеІм'яДомену

Використовуючи рахунок root, я виконав chkconfig ddclient on після /etc/init.d/ddclient start та був готовий вирушати. Для того, щоб перевірити чи все справді працює, я виконав ping remotekereki.homelinux.com та отримав відповідь, яка означала, що моя адреса доступна з будь-якої точки світу. Першу проблему було вирішено!

Безпечний SSH доступ

Змінний модуль автентифікації (pluggable authentication module, PAM) є ключем до більшої гнучкості в питаннях безпеки. Зазвичай для користувача існує лише один шлях проходження автентифікації – ввести пароль та перевірити, чи він відповідає тому, який зазначено у /etc/passwd. Однак сьогодні використовується багато інших методів, які включають заміну файлу /etc/passwd смарт-картками (картки, які мають вбудовані логіку та мікропроцесор прим. перекл.) та іншими пристроями. Замість того, щоб переписувати усі програми для підтримки цих методів, достатньо встановити PAM — і усі перетворення відбуватимуться прозоро.

Я хотів встановити деякі обмеження на доступ, тому додав наступний рядок до файлу /etc/pam.d/sshd:

#%PAM-1.0
auth include common-auth
auth required pam_nologin.so
account include common-account
password include common-password
session include common-session
account required pam_access.so

Модуль pam_access містить додаткові методи перевірки безпеки, які описано у файлі /etc/security/access.conf. Я відредагував його, вказавши, хто має доступ до мого комп'ютера:

+ : ALL : 192.168.
+ : remote1776 : ALL
+ : nx : ALL
- : ALL : ALL

Перший рядок означає, що будь-хто (“ALL”) може отримати доступ до мого комп'ютера з внутрішньої домашньої мережі. Другий рядок дозволяє користувачеві remote1776 отримати доступ до комп'ютера з будь-якої точки планети, а третя дає такі ж самі права користувачеві nx, який використовується NX Free. Останній рядок містить запис, який забороняє доступ до комп'ютера усім, кого не перелічено вище.

Користувач remote1776 є рахунком з мінімальними правами, який було створено лише для того, щоб отримати доступ до мого комп'ютера та запустити команду su і працювати або під своїм рахунком, або під рахунком root. Якщо ж хтось і вгадає пароль цього користувача, йому буде потрібно вгадати паролі інших, більш важливих користувачів; в даному випадку це додатковий бар'єр, який потрібно пройти зловмиснику до того, як він зможе завдати серйозної шкоди.

Тепер потрібно налаштувати SSH, який буде використовувати всі ці налаштування. Я відредагував /etc/ssh/sshd_config, включивши наступне:

Port 16949
Protocol 2
PermitRootLogin no
MaxAuthTries 3
UsePAM yes

Завважте, що зазначені вище рядки це все, що є у цьому фалі; розглянемо їх. Перший рядок змінює стандартний, загальновідомий порт (22) на інший для того, щоб потенційному зловмиснику було важче його вгадати. Переконайтеся, що вказаний вами порт незайнятий. Також, я відкрив цей порт у своєму фаєрволі.

Рядок protocol 2 дозволяє уникнути використання простіших протоколів. Третій рядок пояснює себе сам: я не хочу, щоб хтось міг увійти у систему, використовуючи рахунок root; ускладнимо кракерам життя. Дозволяємо лише 3 спроби автентифікації перед появою перерви, зупиняємо атаки грубої сили (brute-force). І нарешті, останній рядок примушує SSH використовувати налаштування PAM.

Після цього всього я перезапустив ssh за допомогою /etc/init.d/sshd restart і тепер для доступу до свого комп'ютера міг використовувати ssh remote1776@remotekereki.homelinux.com:9622; отаку довгу команду!

Використання NX Free

Після зробленого, змусити працювати NX Free із вказаними обмеженнями було дуже легко. NX Freeмає власні методи безпеки, однак я додав кілька покращень. По-перше, я додав користувача nx у перелік користувачів, які мають доступ. По-друге, коли я вказував з'єднання, я змінив стандартний порт (22) на (16949). Це все, що було потрібно зробити. Звісно, ви маєте перевагу встановленої інфраструктури, однак чи не чудово зробити трішки більше роботи і отримати кращу систему безпеки?

Вивчення наведених вище методів — це шмат роботи, але змусити це все працювати разом було досить легко та дало потрібний ефект. Я використовував домашній ПК з Нью-Йорку без жодних перешкод, вирішивши кілька проблем, які мали мої родичі, працюючи з комп'ютером “відкрито”, без жодних спроб вторгнень.

Федеріко Керекі — уругвайський системний інженер з понад 20-річним досвідом розробки систем, надання консультацій та викладання в університетах.