...

суббота, 28 сентября 2013 г.

[Из песочницы] Запуск и использование OpenWrt в VirtualBox

Скриншот списка виртуальных машинВ этой статье я расскажу о том, как запустить OpenWRT в эмуляторе и настроить его для работы в сети, а так же коснусь использования vi, клиентов ssh и scp. Главной причиной для этого такого запуска OpenWrt я считаю возможность потрогать прошивку руками не боясь остаться без интернета, в случае возникновения проблем с роутером. Данная статья рассчитана на мало знакомых с Linux людей.

Википедия подсказывает, что OpenWrt — основанная на Linux прошивка для домашних маршрутизаторов (роутеров). На деле, это целое семейство прошивок. OpenWrt наряду с DD-Wrt и Gargoyle доступны для огромного количества роутеров на разных аппаратных платформах. Доступен репозиторий по адресу downloads.openwrt.org/. Помимо основной ветки (имеющей несколько реализаций в пределах платформы), названной attitude_adjustment распространены версии backfire и kamikaze.

В первую очередь, установите эмулятор VirtualBox, если его у вас нет. Чтобы иметь возможность выполнять команды вне консоли окна эмулятора, понадобится SSH клиент. Например, Putty. При этом вам станет доступен буфер обмена домашней системы. Для удобного доступа к файловой системе «роутера» нужен графический SCP клиент. Например, WinSCP для Windows. Для Linux скорее всего будет достаточно встроенного файлового менеджера. Например, Krusader, Dolphin, Nautilus.

Для эмуляции нужна прошивка для платформы x86 с файловой системой Ext2 или Ext4.

Хотя официальная вики советует ставить версию attitude_adjustment, с ней у меня возникли проблемы: она отказалась запускаться, сообщая о kernel panic. Так что проще остановиться на одной из двух оставшихся. Выбрав прошивку, посмотрите в вариантах для загрузки готовый .vdi файл.

.vdi образ прошивки

Ссылка для версии backfire 10.03.1: http://downloads.openwrt.org/backfire/10.03.1/x86_generic/openwrt-x86-generic-combined-ext2.vdi.

Если интересующая вас прошивка доступна только как raw образ (img.gz, image.gz, bin) будет необходимо воспользоваться входящим в комплект VirtualBox конвертером. Под Windows для этого сохраните в папке VirtualBox (могут понадобиться права администратора) следующий текстовой файл и задайте ему расширение .bat или .cmd:




"%~dp0VBoxManage.exe" convertfromraw --format VDI %1 "%~dpn1.vdi"
pause



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

Создайте новую виртуальную машину. Тип – Linux, версия – Linux 2.6. Откажитесь на данном этапе от подключения диска — это будет сделано позже.

Откройте свойства новой виртуальной машины (кнопка «Настроить») и перейдите в раздел Сеть. Вместо режима NAT выберите Сетевой мост (Bridged) – это позволит получить доступ к виртуальной машине с других устройств в сети. Если же у вас нет домашней сети (хотя бы роутера) оставьте NAT и добавьте второй адаптер «Виртуальный адаптер хоста».

Затем в разделе COM-порты обязательно поставьте галочку, чтобы активировать эмуляцию порта. В противном случае OpenWrt не сможет загрузиться.

Наконец, в разделе Носители добавьте к контролёру IDE образ прошивки OpenWrt, как жёсткий диск. Если к контроллёру SATA подключены устройства – удалите их.

Нажмите OK, сохранив настройки.
При затруднении, посмотрите скриншоты



Запустите виртуальную машину. По окончании загрузки нажмите Enter. Станет доступна консоль.

Скриншот по окончинии загрузки
Первый запуск




В первую очередь задайте пароль администратора, введя passwd и новый пароль в ответ на приглашение.

По умолчанию OpenWRT создаёт собственную подсеть, игнорируя существующие. При помощи встроенного текстового редактора vi можно редактировать конфигурационные файлы. Наберите vi /etc/config/network для изменения настроек сети. Управление курсором в vi осуществляется стрелками, для удаления строки можно нажать dd, переход в режим редактирования происходит нажатием кнопки i, возврат в режим команд по Esc. Приведите данный файл к следующему виду (поменять option proto со static на dhcp):



# Copyright (C) 2006 OpenWrt.org

config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0

config interface lan
option ifname eth0
option proto dhcp



После чего перейдя по Esc в коммандный режим наберите :wq и Enter для сохранения и выхода из редактора. Чтобы выйти без сохранения, наберите команду :q!. Эти настройки означают, что эмулируемый «роутер» попробует получить доступный ip адрес. Если у вас нет настоящего роутера и возможности получить более одного адреса — выберите в настройках сети VirtualBox режим «Виртуальный адаптер хоста».

Для применения новых настроек перезагрузите виртуальную машину или введите /etc/init.d/network restart.


После загрузки посмотрите адрес виртуальной машины, набрав ifconfig, в поле inet addr у eth0:




root@OpenWrt:~# ifconfig
eth0 Link encap:Ethernet HWaddr 08:00:27:13:00:42
inet addr:192.168.1.23 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:91 errors:0 dropped:0 overruns:0 frame:0
TX packets:65 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:10016 (9.7 KiB) TX bytes:7749 (7.5 KiB)

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:48 errors:0 dropped:0 overruns:0 frame:0
TX packets:48 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:3888 (3.7 KiB) TX bytes:3888 (3.7 KiB)

root@OpenWrt:~#

Поздравляю, OpenWrt запущена и доступна по сети. Имейте ввиду: данный адрес (192.168.1.23 в моём случае) — временный и может меняться после перезапуска эмулятора или спустя какое-то время (несколько часов). Запустите Putty и попробуйте подключиться к виртуальной машине по данному адресу. Логин для подключения – root, пароль вы задали при первой загрузке.


Для начала советую попробовать обновить список доступных компонентов, введя opkg update, после чего попробуйте поставить, к примеру, openvpn, введя opkg install openvpn. Проверить наличие компонента и уточнить его название можно командой opkg list ЧастьНазвания.




Запустите WinSCP (или аналог) и подключитесь к виртуальной машине.

Скриншот окна подключения

Вы увидите стандартный двухпанельный файловый менеджер. Теперь вы можете редактировать конфигурационные файлы в удобном графическом режиме. Попробуйте перейти в правой части в корень (/), а затем в /etc/config/ и запустить network.

Редактирование конфигов

При желании внесите изменения и сохраните результат. Так же возможно копировать файлы в «роутер» и обратно.

В большинство версий OpenWrt изначально входит веб оболочка LuCI. LuCI ‒ это веб-ориентированный интерфейс конфигурирования, написанный на языке программирования Lua. LuCI расшифровывается как Lua Configuration Interface. Перейдите в браузере по сетевому адресу вашего «роутера», ведите заданный вначале пароль и сможете поэксперементировать с LuCI.

Окно авторизации LuCI

Репозиторий OpenWrt

Вики проекта OpenWRT

Википедия про OpenWrt

Настройка сети в OpenWRT

OpenWRT, или Что еще можно сделать со своим роутером

This entry passed through the Full-Text RSS service — if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers. Five Filters recommends:



Комментариев нет:

Отправить комментарий