понедельник, 3 ноября 2008 г.

Так то!!!

Я прошел "Тест на определение словарного запаса"



ВАШ СЛОВАРНЫЙ ЗАПАС - Результаты теста
Ваш словарный запас на очень высоком уровне! Превосходный результат! Вы правильно ответили на 32 вопросов из 35! Поздравляем!
Пройти "Тест на определение словарного запаса" здесь

пятница, 18 июля 2008 г.

Полный разбор файла конфигурации OpenVPN

Пример файла /etc/openvpn/server.conf
port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt
push "route 192.168.7.0 255.255.255.0" # home subnet
;duplicate-cn
keepalive 10 120
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
;status openvpn-status.log
;log-append openvpn.log
verb 10
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0

Указываем, на каком порту принимать соединения:

port 1194

Указываем протокол (tcp или udp):

proto udp

Указываем, что именно будем инкапсулировать в туннеле (ethernet фреймы - tap или ip пакеты - tun)

dev tun

Прописываем пути к ключам и сертификатам:

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem

Выделяем внутренний диапазон адресов для VPN:

server 10.10.10.0 255.255.255.0 # vpn subnet

В какой файл будем записывать выданные для VPN адреса?:

ifconfig-pool-persist ipp.txt

Прописываем на клиенте маршрут до домашней сети (той которая за сервером):

push "route 192.168.7.0 255.255.255.0" # home subnet

Пинговать каждые 10 секунд, если хост не отвечает в течении 120 секунд, считать его в недоступным:

keepalive 10 120

Разрешить сжатие пакетов:

comp-lzo

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

user nobody
group nogroup

Пытаться переподключаться после падений интерфейса (не уверен, что правильно перевёл):

persist-key
persist-tun

Уровень подробности логов (от 0 до 9):

verb 4

Не писать в логи повторяющиеся сообщения:

mute 20

Разрешить пересылку пакетов между клиентами:

client-to-client

Автоматически прописать машрут на сервере до клиента

client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0

Настройка OpenVPN в Ubuntu

Должен быть установлен пакет openvpn:

sudo apt-get install openvpn

Сервер

Создаём конфигурационный файл для сервера /etc/openvpn/server.conf:

port 1194
proto udp
dev tun
;dev-node tap0
ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key # This file should be kept secret
dh /etc/openvpn/dh1024.pem
server 10.10.10.0 255.255.255.0 # vpn subnet
ifconfig-pool-persist ipp.txt
push "route 192.168.7.0 255.255.255.0" # home subnet
;duplicate-cn
keepalive 10 120
;cipher BF-CBC # Blowfish (default)
;cipher AES-128-CBC # AES
;cipher DES-EDE3-CBC # Triple-DES
comp-lzo
user nobody
group nogroup
persist-key
persist-tun
;status openvpn-status.log
;log-append openvpn.log
verb 4
mute 20
client-to-client
client-config-dir /etc/openvpn/ccd
route 192.168.1.0 255.255.255.0

Полный разбор файла конфигурации

Примечание: при загрузке системы автоматически поднимаются все VPN соединения, для которых в папке /etc/openvpn есть соответствующие файлы с расширением .conf.

Теперь необходимо создать ключи и сертификаты для шифрования и авторизации (http://openvpn.net/index.php/documentation/howto.html#pki). Соответствующие скрипты для этого находятся в папке /usr/share/doc/openvpn/examples/easy-rsa/2.0

Создаём CA (авторитетный сертификат):

cd  /usr/share/doc/openvpn/examples/easy-rsa/2.0
sudo bash
. ./vars
./clean-all
./build-ca

Теперь создадим сертификат и приватный ключ для сервера:

./build-key-server server

Создаём ключ для клиента (если клиентов несколько, процедуру придётся повторить):

./build-key client1

Примечание: для каждого клиента должно быть указано своё уникальное имя (в данном случае client1).

Примечание: если новый клиент создаётся спустя некоторое время, процедура будет выглядеть следующим образом:

cd  /usr/share/doc/openvpn/examples/easy-rsa/2.0
source ./vars
./build-key client2

Генерируем параметры Диффи-Хеллмана:

./build-dh

Помещаем следующие файлы в директорию /etc/openvpn/

  • ca.crt
  • server.crt
  • dh1024.pem
  • server.key

Создаём файл /etc/openvpn/ipp.txt в который программа будет помещать IP адреса выданные клиентам клиентов.

Клиент

Конфигурационный файл клиентской машины /etc/openvpn/client.conf будет выглядеть следующим образом:

remote XX.XX.XX.XX 1194
client
dev tun
proto udp
resolv-retry infinite # this is necessary for DynDNS
nobind
user nobody
group nogroup
persist-key
persist-tun
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key
comp-lzo
verb 4
mute 20

Теперь необходимо скопировать с сервера в папку /etc/openvpn/ сгенерированные клиентские ключи и авторитарный сертификат сервера:

  • ca.crt
  • client1.crt
  • client1.key

Автоматическая настройка маршрута на сервере до удалённой сети

Важное замечание: Все клиенты идентифицируются на сервере по имени выданного им сертификата (в нашем примере client1).

Если за клиентом находится подсеть 192.168.1.0/24, то для того чтобы при подключении этого клиента, на нашем сервере автоматически прописывался маршрут до него, мы должны сделать следующее:

  • добавить в файл server.conf строки:
client-config-dir ccd
route 192.168.1.0 255.255.255.0
  • создать файл /etc/openvpn/ccd/client1 такого содержания:
iroute 192.168.1.0 255.255.255.0

среда, 9 июля 2008 г.

Теперь я умею OpenVPN

Сегодня провозился почти весь день. В очередной раз убедился что логи рулят. Но я таки поднял VPN-туннель между офисами.
Осталось разобраться, как же прикрутить к нему маршрутизацию. Конечно, в мане это всё есть, но как-то коротко и неочевидно. Будем завтра погуглить.

понедельник, 21 апреля 2008 г.

Как вывести текст конфига без комментариев и пустых строк?

Давно уже интересовался этим, но всё не доходили руки как следует погуглить. Ответ прост и красив, как и всё в юниксах ;).
cat myfile | grep -v "^#" | grep -v "^$"

воскресенье, 6 апреля 2008 г.

Запираем Skype в клетку AppArmor

Заметка написана по мотивам вот этой статьи и вот этого руководства.
Как мне стало известно, скайп проявляет любопытство (не по чину) к личным данным пользователя, который имел неосторожность запустить его на своём компьютере. Причем собирает любую мало-мальски ценную информацию: технические характеристики системы, историю посещения страниц и сохранённые пароли в Firefox и Opera, пользователей системы, установленные программы и много всего прочего...
Информация о таком непотребном поведении программы появилась в сети достаточно давно.
Естественным шагом был бы полный отказ от использования Skype. Но как бы-то не было, всё равно, время от времени приходится прибегать к услугам зловредной софтины. Естественно, хочется как то оградить себя от посягательств владельцев скайпа на пароли и прочую мою информацию. И выход конечно же есть. Как раз для таких случаев, умельцами из Novell написана хитрая программа под названием AppArmor. Суть её в том, чтобы ограничить список устройств и файлов к которым имеет доступ тот же Skype, будучи запущенным под ней.
Теперь подробнее.
Устанавливаем skype (с сайта или из репозитория).
AppArmor уже установлен в Ubuntu начиная с верси 7.10.
Открываем терминал и создаём новый профиль для skype:
sudo aa-genprof /usr/bin/skype
Теперь запускаем skype, делаем звонок, закрываем, выходим.
Переходим в терминал и нажимаем S. AppArmor собирает информацию об активности подопытной софтины (в данном случае скайпа), а затем по шагам показывает, где именно данная программа была, что читала, с каким железом взаимодействовала. Нажимаем 123, G, A или D, в зависимости от того, хотим ли мы видеть её там в дальнейшем.
В конце S чтобы сохранить и F чтобы закончить.
В итоге, мы получаем новый профиль для скайпа. Теперь его нужно немного подредактировать.
sudo nano /etc/apparmor.d/usr.bin.skype
Заменяем всё содержимое на следующий текст:
# Last Modified: Wed Nov 28 19:26:07 2007
#include
/usr/bin/skype {
#include
#include
#include
#include
#include
/dev/video0 mrw,
/etc/gai.conf r,
/home/*/.ICEauthority r,
/home/*/.Skype/** krw,
/home/*/.Xauthority r,
/home/*/.config/* kr,
/home/*/.kde/share/config/kioslaverc r,
/proc/*/cmdline r,
/tmp/.ICE-unix/* w,
/tmp/.X11-unix/* w,
/usr/bin/skype mr,
/usr/share/X11/* r,
/usr/share/icons/** r,
/usr/share/skype/** kr,
}

Сохраняем. Закрываем.
Перезагружаем AppArmor:

sudo /etc/init.d/apparmor restart

Активируем профиль для скайпа:

sudo aa-enforce skype

Готово!
Проверить можно так:

sudo apparmor_status

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

пятница, 21 марта 2008 г.

Ubuntu и девушки

Я просто прихожу в восторг, когда читаю вменяемые посты от девушек на линуксовых форумах.
Навеяно этим

Я и Asus Eee PC

Новгородские знакомые попросили приобрести для них пару-тройку агрегатов. Честно говоря, я ничего хорошего от продукта за 9999 рублей не ожидал. Фотографии в интернете также не прибавляли оптимизма...
Купил 3 штуки. Привёз курьер на работу, раскрыл все коробки, наставил эльдорадовских штампов в гарантийные талоны, сказал, что у меня есть неделя на тесты и укатил.
Естественно, я сразу же взялся за первый образец, с целью как следует изучить его.
Внешний вид: Ну что можно сказать. В жизни Eee PC гораздо лучше чем на фотографиях в интернете. Никакого намёка на убогость. Маленький? Да. Создаётся ощущение основательности, прочности какой-то.
Железо: Процессор 900 MHz, 512 MB оперативки, Wi-Fi, камера 0,3 мегапикселя
Клавиатура: Маленькая. Такая, типично асусовская. С нормальным ходом. Кнопки небольшие, но удобные.
Дисплей: Порадовал, пожалуй больше всего. Отличные углы обзора, хорошая яркость и контрастность. От впечатления ужатости, которое производили картинки в интернете, не осталось и следа. Дизайнерам этого чуда, от меня отдельный респект.
Софт: Windows XP и Microsoft Works. Непонятно мне, какой идиот догадался впихнуть туда венду? С первого взгляда становится ясно - ей там не место. С трудом помещаясь на маленьком разрешении, пытаясь впихнуть невпихуемое, редмондовская операционка производит довольно жалкое впечатление. Сходу расположилась на диске, оставив 1,2 гигабайта из 4-х под данные. Была бы моя машинка, сразу бы снёс венду нафиг.

четверг, 20 марта 2008 г.

Почему надо венчаться

Когда выбор кончен, должно произойти сочетанию, таинственному от Бога слиянию духовно-телесному. Естественный союз, по любви, есть союз дикий, мрачный. Здесь он очищается, освящается, отрезвляется по молитве Церкви Божественною благодатию. Трудно самому одному устоять в союзе крепком и спасительном. Нити естества рвуться – благодать непреодолима. Самонадеянность опасна везде, тем более здесь… Потому смиренно, с постом и молитвою, приступи к таинству.


Свт Феофан Затворник

среда, 27 февраля 2008 г.

Кодировка ICQ в Pidgin

Пользуюсь Pidgin'ом давно и с удовольствием (ещё с тех времён, когда он был Gaim'ом).

Недавно столкнулся с тем, что не могу получить от человека сообщение: приходят исключительно знаки вопроса. Вспомнил, что когда-то давно уже встречался с этой проблемкой. Причём, что характерно, со всеми остальными собеседниками в списке контактов ничего подобного не возникало. В параметрах учётной записи у меня выставлена кодировка CP-1251. В принципе, этого всегда хватало. По всей видимости, зловредная компания AOL в очередной раз поменяла протокол.
Припомнив, что на форуме что то мелькало по интересующей теме, поменял строку на WINDOWS-1251.

После таких нехитрых манипуляций, совместимость была восстановлена.

P.S. Отдельное спасибо Hetfield за помощь и терпение при решении проблемы.


Update: Проверил на последних версиях. Теперь ему кодировка вобще нафиг не нужна. То есть теперь поле Кодировка нужно просто оставить пустым.

суббота, 2 февраля 2008 г.

Atheros AR5007EG на Gutsy Gibbon

Недавно приобрёл беcпроводной маршрутизатор D-Link DI-524. Вобще, мне больше нравится техника от Asus, но в данном случае пришлось выбирать из вариантов предложенных провайдером.
Итак: маршрутизатор установлен, подключение настроено, казалось бы, живи да радуйся. Однако, со временем в работе начали обнаруживаться некоторые странности. А именно: при скачивании с меня файлов через примерно 15 секунд связь обрывалась, маршрутизатор переставал пинговаться, через минуту связь восстанавливалась, кроме того, наблюдалась общая неустойчивость соединения и при загрузке.
Первоначально мои подозрения упали на маршрутизатор. Однако никакой информации в подтверждение в интернете мне найти не удалось. Дальше я решил провести эксперимент и протестировать соединение в альтернативной ОС. Тестирование показало исключительно устойчивую связь с интернетом. Таким образом, была установлена причина нестабильности: драйвер Wi-Fi-карточки. Поиски решения привели сначала на форум русскоязычного сообщества Ubuntu, а затем к следующему HowTo
Решение проблемы сводится к замене встроенного драйвера беспроводной карты на драйвер для Windows, установленный с помощью ndiswrapper - обёртки для драйвера позволяющего запускать его в Linux.
Процедура достаточно проста и занимает несколько минут
Для начала нужно скачать исходники ndiswrapper: http://sourceforge.net/project/showfiles.php?group_id=93482
Затем драйвер карты

wget http://blakecmartin.googlepages.com/ar5007eg-32-0.2.tar.gz

Теперь нужно распаковать скачанные архивы


tar xvf ar5007eg-*.tar.gz
tar xvf ndiswrapper-*.tar.gz


Необходимо также установить пакеты, необходимые для сборки из исходников

sudo aptitude update && sudo aptitude install linux-headers-$(uname -r) build-essential

Внесём в черный список модуль ядра ath_pci (он нам больше не понадобится)

echo "blacklist ath_pci" | sudo tee -a /etc/modprobe.d/blacklist

Компилируем ndiswrapper

pushd ndiswrapper-*/
sudo make uninstall
make
sudo make install
popd

Устанавливаем драйвер для Windows

pushd */ar5007eg/
sudo ndiswrapper -i net5211.inf
popd

Добавляем ndiswrapper в список обязательной загрузки

sudo modprobe ndiswrapper
echo "ndiswrapper" | sudo tee -a /etc/modules

Перезагружаем компьютер.
Последующее нагруженное тестирование показало превосходную работу драйвера. Проблема была устранена. :)

пятница, 11 января 2008 г.

Ставлю Ubuntu 8.04 alfa

Крутится в Vmware.
Интересно, что из этого получится?

понедельник, 7 января 2008 г.

Ubuntu 7.10 + Samsung SGH-E390 = интернет

Исходные данные: глубинка, ноутбук с любимой свежеустановленной операционкой, мобильник.

Задача: настроить интернет

Казалось бы, чтобы настроить интернет, нужен интернет, так как в нём содержаться все необходимые инструкции HowTo и прочее. Однако интернета нет. К счастью, в операционной системе Ubuntu уже есть всё необходимое для настройки и подключения к всемирной паутине. Конечно, в ней нет по-умолчанию всяких удобных звонилок типа Gnome-ppp, но настоящим джедаям это не помеха.
Итак, для начала нам необходимо выяснить, что думает linux по поводу нашего телефона. Для этого нужно подключить телефон к нотику при помощи USB шнура, который идёт в комплекте с нашим телефоном и набрать в консоли волшебное слово dmesg

andrey@andrey-laptop:~$ dmesg
....
[ 5196.116000] usb 1-1: new full speed USB device using ohci_hcd and address 4
[ 5196.340000] usb 1-1: configuration #2 chosen from 1 choice
[ 5196.516000] cdc_acm 1-1:2.1: ttyACM0: USB ACM device
[ 5196.524000] usbcore: registered new interface driver cdc_acm
[ 5196.524000] /build/buildd/linux-source-2.6.22-2.6.22/drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters

andrey@andrey-laptop:~$

Ага! Вот собственно то, что нам и нужно. Система определила новое устройство как модем и создала для него файл устройства /dev/ttyACM0. Теперь необходимо настроить подключение. Для этого в консоли пишем sudo wvdialconf

andrey@andrey-laptop:~$ sudo wvdialconf
Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0 S1 S2 S3

WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- SAMSUNG SGH-E390
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0 -- OK

Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0"
andrey@andrey-laptop:~$

Мы получаем почти готовый конфигурационнный файл /etc/wvdial.conf. Почти - потому что мы должны указать в нём имя пользователя, пароль и строку инициализации модема для нашего оператора. Отредактируем его

andrey@andrey-laptop:~$ sudo gedit /etc/wvdial.conf

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

[Dialer Defaults]
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0
Init3 = AT+CGDCONT=1,"IP","internet.beeline.ru"
Stupid Mode = 1
ISDN = 0
Modem Type = USB Modem
New PPPD = yes
Phone = *99***1#
Modem = /dev/ttyACM0
Username = beeline
Password = beeline
Baud = 460800

Обратите внимание, жирным выделены те строки, которые необходимо изменить или добавить. Обратите также внимание на строку Stupid Mode = 1 - она необходима для того, чтобы программа не ждала сигнала в линии (собственно, она его не дождётся), а сразу запускала демон pppd.

Теперь для выхода в интернет, нужно только подключить телефон и набрать в терминале wvdial. Для отключения нажать Ctrl + C.