<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>reals.org.ua &#187; Nokia</title>
	<atom:link href="http://reals.org.ua/category/nokia/feed/" rel="self" type="application/rss+xml" />
	<link>http://reals.org.ua</link>
	<description>реальные технозаметки :)</description>
	<lastBuildDate>Tue, 11 Sep 2018 11:48:33 +0000</lastBuildDate>
	<language>ru</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Cisco VPN клиент для Nokia N9 (MeeGo Harmattan 1.2)</title>
		<link>http://reals.org.ua/linux/cisco-vpn-nokia-n9-meego-harmattan/</link>
		<comments>http://reals.org.ua/linux/cisco-vpn-nokia-n9-meego-harmattan/#comments</comments>
		<pubDate>Wed, 23 Nov 2011 13:57:57 +0000</pubDate>
		<dc:creator>real</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Nokia]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://reals.org.ua/?p=55</guid>
		<description><![CDATA[Совершенно неожиданно понадобилось настроить VPN-подключение (Cisco IPSec) на Nokia N9 &#8211; первом (и, похоже, последнем) смартфоне Nokia на MeeGo. В отличие от бизнес-смартфонов на Symbian, встроенного VPN-клиента на N9 не оказалось, в Ovi Store тоже ничего по слову VPN не &#8230; <a href="http://reals.org.ua/linux/cisco-vpn-nokia-n9-meego-harmattan/">Читать далее <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Совершенно неожиданно понадобилось настроить VPN-подключение (Cisco IPSec) на Nokia N9 &#8211; первом (и, похоже, последнем) смартфоне Nokia на MeeGo. В отличие от бизнес-смартфонов на Symbian, встроенного VPN-клиента на N9 не оказалось, в Ovi Store тоже ничего по слову VPN не нашлось. Пришлось браться за напильник и допиливать искалеченный Debian, каковым является MeeGo Harmattan 1.2, под свои нужды. В результате следующих действий получился более-менее пригодный к использованию VPN-клиент:</p>
<ol>
<li>получаем доступ к устройству по ssh</li>
<li>устанавливаем средства разработки</li>
<li>скачиваем, собираем и устанавливаем vpnc</li>
<li>создаем скрипты для установки/разрыва VPN-соединения и ярлыки для их запуска на рабочем столе</li>
</ol>
<p>Более подробно о каждом шаге:<span id="more-55"></span></p>
<h3>Получение доступа к устройству по SSH</h3>
<p>Для дальнейших действий понадобится доступ к командной строке &#8211; можно использовать встроенный терминал, но гораздо удобнее работать через ssh на нормальной хардварной клавиатуре:</p>
<ol>
<li>включаем в настройках безопасности режим разработчика &#8211; смартфон скачает и установит нужные пакеты и, возможно, захочет перезагрузиться; после этого на рабочем столе появляется иконка терминала, запускается sshd</li>
<li>там же в настройках появляется список метапакетов для разработки &#8211; устанавливаем Utilities, в состав этого пакета входит wget</li>
<li> запускаем терминал &#8211; по умолчанию все запускается под пользователем user, для получения рутового доступа используем команду devel-su и пароль по умолчанию rootme</li>
<li> из-под рута задаем пароль пользователю user, потому что под рутом sshd не пускает</li>
<li>командой ip addr узнаем айпишник устройства</li>
<li>готово &#8211; ssh user@&lt;айпишник&gt; и мы на устройстве с правами пользователя</li>
</ol>
<h3>Установка средств разработки</h3>
<p>Чтобы собрать vpnc, нужны как минимум gcc и make, которые изначально на устройстве отсутствуют, плюс пакеты с заголовочными файлами. В предустановленных репозитариях ничего этого нет, поэтому придется подключать дополнительные. Обширный список репозитариев есть на http://forum.allnokia.ru/viewtopic.php?t=82475 (и еще много полезной информации по MeeGo), для наших целей достаточно 2 основных:</p>
<ol>
<li><code>devel-su</code> (пароль <code>rootme</code>)</li>
<li><code>vi /etc/apt/sources.list.d/nick.list</code></li>
<li>добавляем строчки
<pre>deb http://harmattan-dev.nokia.com/ harmattan/sdk free non-free
deb http://repo.pub.meego.com/home:/rzr:/harmattan/MeeGo_1.2_Harmattan_Maemo.org_MeeGo_1.2_Harmattan_standard/ ./</pre>
</li>
<li>сохраняем, выходим, запускаем <code>apt-get update</code></li>
<li>запускаем <code>apt-get gcc make libc-dev libc6-dev libgcrypt-dev libssl-dev</code> (и далее по вкусу)</li>
</ol>
<p>Если все хорошо, apt-get установит все нужные пакеты. <strong>Ни в коем случае нельзя соглашаться с предложениями удалить какой-нибудь пакет &#8211; система может потерять работоспособность!</strong></p>
<h3>Установка vpnc</h3>
<p>Стандартный open-source IPSec VPN-клиент для Linux &#8211; vpnc. Странно, что в репозитариях не нашлось уже собранного пакета для MeeGo &#8211; есть только для предка этой ОС, Maemo, но эти пакеты не ставятся на MeeGo из-за зависимостей. Поэтому пришлось компилировать vpnc прямо на телефоне:</p>
<ol>
<li><code>devel-su</code> (если еще не под рутом)</li>
<li><code>wget http://www.unix-ag.uni-kl.de/~massar/vpnc/vpnc-0.5.3.tar.gz</code></li>
<li><code>tar xzf  vpnc-0.5.3.tar.gz</code></li>
<li><code>cd vpnc-0.5.3</code></li>
<li>из-за отсутствия нужных модулей perl не получится собрать man-страницы (они нам особо и не нужны), поэтому придется в Makefile закомментировать все, что относится к man</li>
<li><code>make &amp;&amp; make install</code></li>
</ol>
<p>После выполнения make install, если в Makefile пути не менялись, vpnc окажется в /usr/local/sbin, а его конфиг по умолчанию в /etc/vpnc/default.conf.</p>
<p>Для Maemo (как, впрочем, и для Android) есть стандартный GUI для vpnc &#8211; vpnc-gui, но он сделан на GTK, и собрать его под MeeGo весьма проблематично (по крайней мере, я не смог). Поэтому продолжаем пилить дальше.</p>
<h3>Скрипты</h3>
<p>В принципе, уже на данном этапе можно подключаться к VPN из командной строки, но это не очень удобно в повседневном использовании  :) Поэтому для удобства пользователя делаем следующее:</p>
<ol>
<li>прописываем параметры подключения в /etc/vpnc/default.conf (параметры подробно расписаны в выводе vpnc &#8211;long-help)</li>
<li>в /usr/bin ложим скрипты vpn-on и vpn-off следующего содержания:</li>
<p>vpn-on:</p>
<pre>#!/bin/sh
/bin/develsh -c /usr/local/sbin/vpnc
if [ "$?" = "0" ]; then
 echo "Connected!"
else
 echo "ERROR!"
fi
sleep 3</pre>
<p>vpn-off:</p>
<pre>#!/bin/sh
/bin/kill `/bin/cat /var/run/vpnc/pid`
if [ "$?" = "0" ]; then
 echo "Disconnected."
else
 echo "ERROR"
fi
sleep 3</pre>
</ol>
<p>Следует обратить внимание, что если запускать vpnc из-под user или root, то у него не хватит прав или на чтение конфига, или на доступ к tun-устройству. Поэтому в скрипте vpn-on запускать его приходится через develsh, которому все это разрешается. Такая вот в Harmattan система безопасности. После успешного запуска PID vpnc записывается в файлик /var/run/vpnc/pid, что мы и используем в vpn-off.</p>
<h3>Ярлыки</h3>
<p>После выполнения предыдущего шага можно подключаться/отключаться к VPN, набирая в командной строке vpn-on/vpn-off. Но чтобы делать это одним касанием пальца, надо бы создать ярлыки на рабочем столе. Ярлыки в MeeGo лежат в /usr/share/applications, поэтому создадим два файлика:</p>
<p>/usr/share/applications/vpn-on.desktop:</p>
<pre>[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Name=VPN On
Icon=icon-l-email
Exec=/usr/bin/meego-terminal -e /usr/bin/vpn-on
Categories=Office;X-MeeGo;X-Messages;Email;
OnlyShowIn=X-MeeGo;</pre>
<p>/usr/share/applications/vpn-off.desktop:</p>
<pre>[Desktop Entry]
Encoding=UTF-8
Version=0.1
Type=Application
Name=VPN Off
Icon=icon-l-email
Exec=/usr/bin/meego-terminal -e /usr/bin/vpn-off
Categories=Office;X-MeeGo;X-Messages;Email;
OnlyShowIn=X-MeeGo;</pre>
<p>После этого на рабочем столе появятся иконки с соответствующими названиями, при запуске которых будет открываться терминал с вводом/выводом наших скриптов. После завершения работы скрипта терминал закрывается. Все, можно пользоваться (не забыв отключить режим разработчика, ни к чему оставлять открытым доступ к телефону по SSH). Единственное неудобство  - нет индикации состояния подключения к VPN, но тут, боюсь, средствами командной строки не обойдешься.</p>
<p>Конечно, в идеале все это надо бы сложить в установочный пакет и выложить в общедоступный репозитарий, но ни времени, ни навыков создания deb-пакетов не было. <a href="/wp-content/uploads/vpnc_nokia_n9_20111121.tar.gz">Здесь</a> лежит архив со всеми скриптами и уже скомпилированным vpnc (надо только сделать make install в папке с исходниками vpnc и разложить скрипты в /usr/bin и /usr/share/applications). Компилировалось на Nokia N9 со всеми обновлениями по состоянию на 21.11.2011.</p>
]]></content:encoded>
			<wfw:commentRss>http://reals.org.ua/linux/cisco-vpn-nokia-n9-meego-harmattan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
