понедельник, 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 и девушки

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