Wednesday 22 October 2008

Настройка vpn подключения в linux

Многие провайдеры используют vpn, в сети есть много различных инструкций по настройке подключения к vpn серверу, но в каждой из них что-нибудь не хватало для моего случая, поэтому я решил написать свою.

Для настройки vpn подключения необходимо иметь в ядре поддержку PPTP, также необходимо установить пакеты pptpclient, ppp.

Сначала необходимо сконфигурировать сетевой интерфейс, в Debian это делается очень просто в файле /etc/network/interfaces.

# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

iface eth0 inet dhcp #означает что ip адресс, адресса dns серверов и маршруты получаем от dhcp сервера
post-up /etc/routes #скрипт, который выполняется после поднятия интерфейса, очень полено если dhcp выдаёт кривые маршруты
auto eth0



файл /etc/ppp/peers/prov содержит параметры конкретного подключения


persist
pty "pptp 10.129.10.2 --nolaunchpppd" # адрес vpn сервера
#pty "/usr/sbin/pppoe -I eth0 -T 80 -C prov_name" # В случае использоваия PPPoE все настройки отличаются только этой строчкой
name # здесь писать свой логин
ipparam prov
file /etc/ppp/options.pptp



файл /etc/ppp/options.pptp содержит опции работы ppptp демона


# Использовать pppX в качестве шлюза по умолчанию
defaultroute

# Использовать вместо шлюза по умолчанию
replacedefaultroute

# Не использовать сжатие
nodeflate

# Не использовать BSD сжатие
nobsdcomp


# Запрашивать аутентификацию перед отправкой или приёмом пакетов
#auth

# Использовать аппаратный контроль потока данных ( RTS/CTS) через последовательный порт.
crtscts

# Использовать аппаратный контроль потока данных ( RTS/CTS) через последовательный порт.
#xonxoff

# Определяет последовательность прерывания подключения
#escape 11,13,ff


# Блокировать устройство после запуска pppd
lock

# Не показывать пароль при использовании PAP аутентификации(включено по умолчанию)
hide-password

# Показывать пароль при использовании PAP аутентификации
#show-password

# Установить значение MRU [Maximum Receive Unit] определяет размер (в байтах) максимального блока, который может быть принят на канальном уровне коммуникационного протокола. pppd
# Минимальное значение MRU равно 128. Значение по умолчанию 1500.
# Значение 296 рекомендуется для медленных подключений (40 байт для TCP/IP заголовка + 256 байт данных).
mru 1500Option nopredictor added. It defines if predictor corrector algorithm is used or not. Option noconviter added. It skips convergence double checking in ...

# Установить значение маски подсети
netmask 255.255.255.0

# При наличии интерфеса с заданным ip адрессом pppd будет пытаться использовать этот адрес, параметр noipdefault пресекает эти попытки
noipdefault

# При включенном параметре pppd после неудачной попытки подключения будет ожидать подключения с другой стороны
#passive

# С этой опцией pppd начнёт передавать свои пакеты только после получения пакета от удалённой системы
# используется при подключении к медленным системам
#silent


# Оставаться в терминале, иначе pppd станет фоновым процессом
#-detach


# Выводить отладочную информацию
#debug

# Добавлять имя домена к имени кмпьютера
#domain

# Включить вывод отладочной информации драйвера PPP уровня ядра
#kdebug n

# Установить значение MTU [Maximum Transmit Unit] используется для определения максимального размера блока (в байтах), который может быть передан на канальном уровне коммуникационного протокола.. Unless the peer
mtu 1492

# Установить имя машины
#name

# Использовать в качестве name hostname, перезаписывает опцию name
#usehostname

# Задать имя удалённой системы для аутентификации
#remotename

# Добавить в ншу таблицу соответствия физических и ip адрессов ip адресс удалённой машины, ассоциированный
# с физическим адрессом нашей сетевой карты (не использовать если сервер находится в другом сегменте сети)
#proxyarp

noproxyarp

# Отключить протоколы IPXCP и IPX.
#noipx

# Не переподключаться в случае разрыва, задано по умолчанию
#nopersist

# Переподключаться в случае разрыва
persist

# Выключить pppd после неудачных попыток подключения
maxfail 2

# Инициализировать соединение только по требованию, например когда приходят пакеты.
# С этой опцией, удалённый IP должен быть задан
#demand

# Если этот парамтр задан то связь будет разорвана через секунд простоя, каждый считаюсчийся траффиком пакет сбрасывает этот таймер
#idle

# Время которое нужно ждать перед повторным подключением после разрыва связи
holdoff 10

# Задержка в миллисекундах после выполнения подключения до начала передачи пакетов
#connect-delay

# Позволяет задать фильтр, показывающий какие пакеты считать траффиком, а какие нет
# фильтр по дефолту tcpdump считает траффиком все пакеты
#active-filter



Осталось записать в /etc/ppp/chap-secrets логин и пароль и можно подключаться командой pppd call prov

Saturday 18 October 2008

Синхронизация с телефоном в Linux с помощью Gammu

Как известно ничего не даётся так легко и не ценится так высоко, как вовремя сделанная резервная копия. Резервным копированием данных с телефона я и решил заняться. Имеем телефон Nokia 6021, Debian Lenny, подключение через Bluetooth. Для решения задачи я выбрал утилиту gammu в Debian её можно легко поставить
#aptitude install gammu
далее необхоимо исправить файл ~/.gammurc (пример иожно найти в /usr/share/doc/gammu/examples/config/gammurc.gz ), я в него записал

[gammu]
port = 00:16:BC:D6:92:1D
model = 6021
connection = bluephonet
synchronizetime = yes
logfile = gammulog
logformat = textall
use_locking = yes
gammuloc = locfile
startinfo = yes
gammucoding = utf8
rsslevel = teststable
usephonedb = yes

обязательными опциями являются только port и connection.
connection это тип подключения, в нашем случае подключение происходит через bluetooth, вообще тип также зависит от телефона, соответствие можно установить, воспользовавшись этим документом. port это адрес устройства, в случае с bluetooth его можно получить коммандой hcitool scan, в случае кабеля это будет /dev/phone.
Нужно настроить привязку телефона и компьютера, описано тут
Далее начинаем использовать Gammu

SMS


$ gammu getsmsfolders
даёт папки с SMS.
SMS можно забэкапить командой
$ gammu backupsms имя_файла
при этом также можно удалить ВСЕ sms с телефона( очень полезная функция, в моём телефоне нет функции удаления всех sms и их приходится удалять по одной), также sms можно удалять по одной командой
$gammu deleteallsms номер_папки
восстановить sms можно командой
$gammu restoresms имя_файла

Phonebook


Вот ради чего всё и затевалось: бэкап телефонной книги
$ gammu backup имя_файла.vcf

Можно забэкапить все данные с телефона, в этом случае нужно выбрать произвольное расширение файла, но он будет бинарным,

.vcs - Только календарь(VCalendar)
.vcf - Только контакты(VCard file)
Другое расширение (Gammu text file): бэкапить всё

подробнее здесь
Восстановление данных командой
$ gammu restore имя_файла.vcf

Очистить память можно с помошью команды
$ gammu clearall


Filesystem


Для просмотра содержимого файловой системы команда
$ gammu getfilesystem

Для установки приложения
$ gammu nokiaaddfile Application имя_файла_без_расширения

Аналогичным образом можно закачивать картинки, мелодии и т.д. в этом случае команда будет выглядеть так
$ gammu nokiaaddfile Gallery|Gallery2|Camera|Tones|Tones2|Records|Video|Playlist|MemoryCard имя_файла_без_расширения

Подробности здесь