Opkg install cmd cannot install package

Opkg install cmd cannot install package

Устанавливаем OpenVPN на OpenWRT

Найдем пакеты содержащие слово openvpn

Так же мы можем руссифицировать luci-app-openvpn, найдем название пакета руссификации

Установим пакет удостоверяющего центра CA

По хорошему удостоверяющий центр должнен находиться на отдельной машине.

Зададим переменные, которые будут постоянно использоваться при генерации ключей, с помощю редактора по умолчанию vi, хорошей идеей будет установить nano, но он занимает место.

Укажем период действия сертификатов в днях (по умолчанию 10 лет)

Так же укажем основные переменные

Очистим удостоверяющий центр командой clean-all от уже существующих сертификатов (внимание все существующие сертификаты и ключи в папке /etc/easy-rsa/keys удаляться).

Создадим файлы удостоверяющего центра CA

Приватного (он секретный) ключа ca.key и сертификата ca.crt (он открытый, и копируется на узлы сервера и клиентов OpenVPN)

Проверим создались ли файлы

увидим список файлов

Создадим Файл Диффи-Хелмана

dh.pem для защиты трафика от расшифровки, это займет продолжительное время, пьем кофе.

Проверим создались ли файлы

увидим список файлов

Создадим файлы для сервера OpenVPN

Cертификат и приватный (он секретный) ключ. В конце будет задан вопрос по вводу пароля, если он будет введен, то он будет запрашиваться в консоли каждый раз при загрузке сервера и запуске OpenVPN . У Вас сервер всегда с собой?

Проверим создались ли файлы

увидим список файлов

Перенесем файлы из удостоверяющего центра в папку OpenVPN Сервера

Создадим папку в которую будут перенесены сертификаты, можно положить прямо в корень папки openvpn все файлы, но.
Мы назовем папку NameServer так как позже наш роутер станет еще и openvpn клиентом (мы еще сможем сделать проброс из одной впн сети в другую), и структурируя папки мы делаем себе добро. Файл конфига должен лежать в папке /etc/openvpn/ остальные же файлы где угодно нужно просто укзать в файле конфига полный путь до файла.

Перенесем файлы, обратите внимание на файл dh2048.pem возможно у Вас он будет dh1024.pem

Создадим конфигурационный файл для OpenVPN сервера

Файл можно скачать, и после переименовать его

Или создать его самостоятельно

Создадим файлы параметров OpenVPN клиента на сервере

Команды из файла /etc/openvpn/ccd/NameClient1 будут отрабатываться при подключении клиента NameClient1

Создадим папку ccd в который будут храниться конфигурационные файлы OpenVPN клиентов

Создадим сам конфигурационный файл для клиента NameClient1

Содержание самого файла

Создадим файл ipp.txt в котором в каждой строчке будем указывать ip адрес vpn тунеля, который будет выдаваться каждому клиенту при каждом его подключении. Это необходимо для настройки доступа в сети за клиентами openvpn.

и внесем туда ip для нашего первого клиента

Выбранные пары IP-адресов, во-первых, должны быть уникальными, во-вторых, должны входить в состав последовательных подсетей, ограниченных маской /30 (255.255.255.252), и, в-третьих, должны находиться в пределах пула IP-адресов, выделенного для виртуальной частной сети (определяется параметром server файла конфигурации сервера OpenVPN). С учетом перечисленных условий для клиентов и сервера подойдут пары IP-адресов со следующими парами последних октетов:

Читайте также:  Dexp myhome 15w xl

[ 1, 2] [ 5, 6] [ 9, 10] [ 13, 14] [ 17, 18] [ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38] [ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58] [ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78] [ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98] [101,102] [105,106] [109,110] [113,114] [117,118] [121,122] [125,126] [129,130] [133,134] [137,138] [141,142] [145,146] [149,150] [153,154] [157,158] [161,162] [165,166] [169,170] [173,174] [177,178] [181,182] [185,186] [189,190] [193,194] [197,198] [201,202] [205,206] [209,210] [213,214] [217,218] [221,222] [225,226] [229,230] [233,234] [237,238] [241,242] [245,246] [249,250] [253,254]

Создадим разрешающе правило на WAN интерфейсе
Добавим правило Network — Firewall — Custom Rules

Запустим службу openvpn сервера

Проверим запуск службы, выведем последние строки лог файла openvpn сервера, путь до которого указан в конфиге сервера

Должны увидеть строки

Так же посмотрим поднят ли интерфейс openvpn командой

Добавляем сервис openvpn в автостарт

Создадим файлы для первого клиента OpenVPN в Удостоверяющем центре CA

Cертификат и приватный (он секретный) ключ. В конце будет задан вопрос по вводу пароля, если он будет введен, то он будет запрашиваться каждый раз при подключении к OpenVPN серверу, устанавливать пароль логично на переносные хосты ноутбуки, так как при краже ключ будет защещен паролем.

Проверим создались ли файлы

увидим список файлов

Так же можно сгенирировать ключи клиента в формате PKCS12

Перенесем файлы из удостоверяющего центра на OpenVPN Клиента

Установим на роутер SFTP сервер

Теперь можно с помощью FileZilla или WinSCP скопировать следующие файлы для клиента OpenVPN (Важно приватный ключ NameClient1.key не должен быть скпомпроментирован):
Паравильным способом
будет сгенирировать файл ключа на самом клиенте и передать специальный файл в центр сертификации для подписания. То есть файл ключа не должен вообще перемещаться между хостами.

На хосте который будет Openvpn Client ом создадим папку с названием впн сервера, деламе себе добро, так как эта машина может иметь еще конфигурационные файлы OpenVPN. (На самом деле так же можно внести текст серфтификатов и ключей напрямую в конфигурационный файл заключвил их в соответвующие скобки . . И тд. Иногда например для андроида это удобнее так как всего один файл, но не забывайте что необходимо обеспечить приватность ключа.)

Или из консоли с линкус машины, которая будет клиентом напрямую с с openwrt копируем файлы

Читайте также:  Boot sequence как настроить

Конфиг файла для OpenVPN клиента

Подготовим на нашем сервере openvpn п ример конфигурационного файла client.conf, который потом будем использовать у клиентов OpenVPN
Так же перед этим создадим папку:

Мы не переместили файл client.conf в директорию /etc/openvpn/ так как Сервер OpenVPN может одновременно являтся и клиентом, и если мы поместим client.conf в директорию /etc/openvpn/, то наш сервер будет пытатся подключится в роли клиента, используя этот конфигурациионный файл.

Указыжум адрес OpenVPN сервера где AAA.BBB.CCC.DDD внешний ip адрес:

remote AAA.BBB.CCC.DDD 1194

Лучше указать в файле vpn.mydomain.ru и привязать ip адрес к этому поддомену, тем самым сменив внешний ip адрес openvpn сервера не придется вносить изменения в конфигурацию всех клиентов.

Явно укажем месторасположения файлов приватного ключа и сертификата OpenVPN клиента nameclient (для каждого клиента свое иникальное имя см. ниже создание сертификатов для клиентов) поскольу мы подготоваливаем общую болванку оставим nameclient
Для Linux:

Необходимо выбрать тот же механизм шифрования, что и на сервере (см выше) AES-256:

Для Linux хоста укажем месторасположения лог файла и статусного файла OpenVPN клиента. Если не укажем log-append, то вывод лога будет производится на stdout.

Переименовываем файл конфига что бы блыло понятно что за сервер

Проверки

Проверяем что на openwrt есть интернет и запускаем openvpn server

На Openvpn клиенте подключаемся к опенвпн серверу конкретно указывая его имя, ведь у нас может быть несколько конфигов впн клиента.
service openvpn start NameServer

проверяем подключение к впн Серверу на клиенте

Проверяем подключени клиента NameClient1 к серверу на сервере

Проверяем доступность сети за ВПН сервером для клиента тут необходимо помнить что на роуетере с впн клиентом должен быть настроен iptables цепочка forward это тема для отедльной статьи (см /etc/openvpn/ccd/NameClient1 или общий конфиг сервера push "route. )

Проверяем доступность сети за ВПН клиентом для Сервера, тут необходимо помнить что на роуетере с впн клиентом должен быть настроен iptables цепочка forward это тема для отедльной статьи (см /etc/openvpn/ccd/NameClient1 — iroute)

Так же если сделали второго клиента и использовали client-to-client проверяем пинг из сетей тут необходимо помнить что на роуетерах с впн клиентами должены быть настроены iptables цепочка forward, это тема для отедльной статьи

Если что то идет не так то смотрим лог впн сервера

Примечание:

Статья годится только для ядер 2.6.Х. Для ядер 3.Х нужно поставить пакеты через —force-depends и просто скопировать нужные модули из папки /lib/modules/XXX в /lib/modules/YYY. Более того, в ядрах 3.Х присутствует команда modprobe.

И так. Для того, что бы добавить поддержку USB-storage (собственно флешка) нужны такие модули ядра: kmod-usb-storage, kmod-scsi-mod, kmod-sd-mod. При попытке установить получаем сообщение

Читайте также:  Canon eos 350d digital

# opkg install kmod-usb-storage
Installing kmod-usb-storage (2.6.32.27-1) to root.
Downloading http://downloads.openwrt.org/backfire/10.03.1/ar71xx/packages/kmod-usb-storage_2.6.32.27-1_ar71xx.ipk.
Collected errors:
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-usb-storage:
* kernel (= 2.6.32.27-1) * kernel (= 2.6.32.27-1) *
* opkg_install_cmd: Cannot install package kmod-usb-storage.

В итоге пакет не поставился вообще.

Напомню: версия ядра на роутере — 2.6.32.25, а версия в репозитории (10.03.1) — 2.6.32.27. А если посмотреть в соседнюю ветку 10.03 то там версия 2.6.32.10. В любом случае получаем несоответствие версий.

Любые попытки сделать upgrade пакетов не увенчались успехом (получал вот такие сообщения):

Not upgrading package which is marked hold (flags=0x102)

Multiple packages providing same name marked HOLD or PREFER

Можно принудительно поставить пакет так:

# opkg —force-depends install kmod-usb_storage

Пакет ставится, но нужные модули лежат в соответствующей папке с версией ядра: /lib/modules/2.6.32.27. Тут можно пойти на хитрость: взять да и скопировать нужный модуль в папку /lib/modules/2.6.32.25, но и тут ждёт сюрприз при подгрузке модуля:

usb_storage: version magic ‘2.6.32.27 mod_unload MIPS32_R2 32BIT ‘ should be ‘2.6.32.25 mod_unload MIPS32_R2 32BIT ‘

и модуль не подгружается. Выход один — править бинарный модуль ядра usb_storage.ko. Открываем его в редакторе vi и ищем часть строки

меняем только нужный номер версии на 2.6.32.25, сохраняем и подгружаем. Такое нужно проделать также для модулей scsi_mod sd_mod. Подгружать модули нужно в таком порядке:

# insmod sd_mod
# insmod scsi_mod
# insmod usb_storage

Если в другом, то будет ругань, что не найдены объекты.

Усложняется всё тем, что в openwrt нет команды modprobe, которая пытает подгрузить модуль, поэтому получаем риски при установке модуля. Вместо этого используется insmod, которая сразу же прописывает его в загружаемых при старте ОС модулях. И если что-то пойдёт не так — выгрузить сбойный модуль может быть не так легко.

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

sd 0:0:0:0: [sda] 7835648 512-byte logical blocks: (4.01 GB/3.73 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Mode Sense: 03 41 00 00
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
sda: sda1

что говорит, что наша флешка увиделась.

Примечание : не забудьте поставить поддержку нужной ФС (ext3, например), ибо по дефолту тут присутствует только jffs2.

I am working with YOCTO project and running into the problem that made the build progress fail. The failure was at a last task do_rootfs

Below is the error log:

If you guys already run into this problem also, kindly support me how to fix this. Thanks.

Ссылка на основную публикацию
Adblock detector