LINUX.ORG.RU
ФорумJob

Перенести WAMP / Wireshark софт на Linux и сделать дистро

 , , , ,


0

2

Привет,

Есть вэб-софт, работает на php (WAMP) + Wireshark / LUA scripts.

Необходимо перенести приложение на Linux (LAMP) и создать дистрибутив (iso)

Дополнительные требования:

ограничить возможности обычного пользователя следующими опциями (шелл - скриптами):

1) настройки одного из двух сетевых интерфейсов (IP, mask, gateway)
2) смена пароля
3) смена режима работы (выбор скрипта LUA для Wireshark)
4) вкл/откл монитора приложения (вывод в консоль Wireshark output)
5) update - скачать пакет обновления с определенного адреса, и распаковать содержимое / выполнить MySQL скрипт.

Процесс сборки ISO должен быть повторяем (мной). При первой загрузке выполнить 1 и 3.

Версия Linux не имеет значения, можете использовать turnkey, SUSE studio, ArchLinux, etc.

Оплата 10000 руб.

С удовольствием отвечу на вопросы.

Спасибо.
Дмитрий
dmbuk @ outlook.com



Последнее исправление: DmB (всего исправлений: 2)

Процесс сборки ISO должен быть повторяем (мной).

А чего? Сам не сможешь? Деньги-то ведь хорошие...

Sanik
()
Ответ на: комментарий от Sanik

смог бы и сам сделать, но потратив кучу времени (я около 0 в Linux)

DmB
() автор топика

Сделаю за 2 миллиона рублей. В качестве примера цены для сравнения могу привести конкурс на разработку дистрибутива для школ, который стоил дороже.

Безусловно, другие участники форума могут привести их собственные оценки, если могут сделать лучше и дешевле, чем я.

StrongDollar
()
Последнее исправление: StrongDollar (всего исправлений: 1)
Ответ на: комментарий от StrongDollar

И что же скажут другие участники форума?

Или

  • Задача сложная? Непонятно что надо сделать? Пугает Wireshark?
  • Мало денег?
  • Это вообще не тот форум, здесь работу не ищут?


DmB
() автор топика
Ответ на: комментарий от DmB

И что же скажут другие участники форума?

ну, пока они молчат. Это говорит о том, что задача требует исследований. Кроме того, возможно некоторые требования заказчика прийдется пересмотреть, а заказчика переубедить. Это всё - время, а время - деньги.

StrongDollar
()
Ответ на: комментарий от DmB

Другие участники...

Сделать ISO не проблема. Живу под Gentoo, заточенным как Slax. То есть в принципе всегда работающим ка LiveCD, даже при загрузке с диска. Ядра от OpenVz. Они позволяют в контейнерах (в chroot на стероидах) запускать любой дистр линукс, делать suspend/resume. С добавками позволяют запускать Android-x86. Планирую выпустить LiveCD (ISO) с Android-x86 v3.2 и 4.0-r1. На данном этапе хочется пересобрать эти версии самому. Ибо 3.2 быстро работает в VirtualBox, но проблемы с сетевыми соединениями. 4.0-r1 хорошо работает на железе, но сильно тормозит под VirtualBox.

В принципе интересно попробовать применить не только для себя. Обыта с WireShark нет, всё больше системные вещи типа ядро-libc-компилятор. Недавно собрал Linux 2.4.26 с помощью текущего tinycc. Соотвественно неплохо бы какую-то заготовку по WireShark. А системные вещи — без проблем.

seyko2
()

Задача интересна сама по себе, по крайней мере здесь, сейчас и мне. Не факт что сделаю (да и оплата тащемта смехотворна, не ради неё же), но помочь смогу попутно, думаю. Давай спишемся

GreyDoom ★★★★
()

основная проблема будет с переносом windows-специфики на linux-специфику. Остальное - просто.

Atlant ★★★★★
()
Ответ на: комментарий от Atlant

Спасибо всем за сообщения. Похоже, я не совсем точно сформулировал задачу.

В двух словах - надо сделать дистро любой версии с уставленным LAMP и моим кодом / БД. Плюс шелл - скрипты выше.

  • Никакой специфики переноса с Windows на Linux нет. Просто скопировать файлы, восстановить MySQL базу из бэкапа.
  • Wireshark / LUA - установить пакет в систему, один из шелл-скриптов (3) должен запускать аналог командной строки Windows
    «C:\Program Files\Wireshark\tshark.exe» -Xlua_script:[LUA скрипт].lua -i [Второй интерфейс] -Y h225 -q
  • Скрипт (4) вкл / выкл вывода сообщений Wireshark на экран.
  • Объяснить мне процесс, чтобы я мог повторить его при изменении софта.

Все.

DmB
() автор топика
Ответ на: комментарий от DmB

Хотите сказать, что до сих пор никто не взялся? Забавно.

Когда я это прочитал, мне показалось, что для понимания того, что́ должно получится, нужно видеть, как это работает сейчас, для чего нужна Винда, которой под рукой нет, а доставать где-то специально нет никакого резона.

Думаете, я ошибся, и можно сделать «вслепую»?

Zmicier ★★★★★
()
Последнее исправление: Zmicier (всего исправлений: 1)
Ответ на: комментарий от Zmicier

Да, можно сделать «вслепую».

«Hello world» LUA скрипт подойдет или простой счетчик пакетов:

   1 do
   2     packets = 0;
   3     local function init_listener()
   4         local tap = Listener.new("frame","ip.addr == 10.0.0.0/8")
   5         function tap.reset()
   6             packets = 0;
   7         end
   8         function tap.packet(pinfo,tvb,ip)
   9             packets = packets + 1
  10         end
  11         function tap.draw()
  12             print("Packets to/from 10.0.0./8",packets)
  13         end
  14     end
  15     init_listener()
  16 end

Как это работает сейчас под Виндой:

Wireshark слушает трафик на втором интерфейсе, LUA выцепляет определенную информацию из пакетов, генерирует http запрос, посылает на WAMP. Софт на php обрабатывает запрос, пишет в MySQL, также обслуживает внешний http трафик снаружи системы. Все.

Для задачи не важно какой именно софт под LAMP или LUA скрипты. Важен процесс переноса, создания ISO и шелл-скрипты.

DmB
() автор топика
Ответ на: комментарий от DmB

подожди, подожди, а вот это мегатребование «ограничить возможности обычного пользователя» (Ограничивать-то всегода сложно, надо городить специальную ограничительную софтину) ты уже отменил? Ага! Я так и думал.

StrongDollar
()
Ответ на: комментарий от DmB

А в чём трудности самому сделать?

Ведь про turnkey LAMP ISO знаем. Долить туда WhireShark, базу, написать с использованием dialog немного скриптов. ISO как использоваться будет? С установкой на диск или в режиме live? Место на диске/flash доступно будет или только ramdisk? Машины будут разными и конфигурация неизвестна? Какая настройка первого сетевого интерфейса кроме IP, MASK, GATEWAY, DNS. Удалённый доступ по ssh, iptables?

seyko2
()
Ответ на: комментарий от StrongDollar

Не думал, что это мегатребование. В таком случае достаточно ограничить доступ к файлам софта/базам MySQL. В идеале, запаковать исходники, чтобы не были явно видны в ISO. Простая защита от неискушенного пользователя.

Жаль, что нельзя (сложно) сделать шелл, ограниченный нужными скриптами. Что-то типа один скрипт без выхода в настоящий шелл.

DmB
() автор топика
Ответ на: А в чём трудности самому сделать? от seyko2

Трудности именно в том, что вы перечислили. ISO с установкой на диск. Конфигурация машин неизвестна, полагаемся на типичный сервер HP, Dell или VM. Никакого удаленно доступа, кроме http. DNS не нужен.

DmB
() автор топика

На сколько я понял, человеку нужен chroot с системой и вирешарком + скрипты склеивающие из этого ISO :) и за это дают 10 000

Ну можно и попробовать :)

robot12 ★★★★★
()
Ответ на: комментарий от robot12

ну не особо. Важен размер и open-source

DmB
() автор топика
Ответ на: комментарий от DmB

С установкой...

Установка на диск — самая критичная часть. Даже MS рушит(ла) загрузку других OS при установке своей ОС. Linux-дистры — не исключение. Тут или написать инструкцию, как прописать загрузку нашего дистра в существующий загрузчик (grub1, grub2, syslinux, freebsd, windows, ...), или позволить выполняться дистру с ISO (или лучше даже с флешки). Чуть подольше, зато значительно универсальнее. Можно написать и установшик вместо инструкции, но требует отладки (определение типа существующего загрузчика, какие типы разделов понимаем-поддерживаем) и всё равно можем порушить существующую загрузку.

Другая проблема — сетевые интерфейсы. Их имена зависят от железа/драйверов, да и порядок следования может меняться (какая первая, какая вторая).

Третья — какие разделы. Проще всего с ext2/ext3. Другие — уже экзотика. Установка на NTFS-DOS: не пробовал, но скорее всего только внутрь файла (как loop)

Вывод: проще всего поставлять на флэшке. Или на iso к машинам, у которых есть ext2/ext3 или NTFS-разделы (NTFS значительно медленнее) Если все диски не размечены, то ситуация упрощается.

seyko2
()
Ответ на: С установкой... от seyko2

1) установка на комп без разделов

2) не должно быть проблем. Перечислить интерфейсы в системе, если один - выдать предупреждение, два - запросить IP settings на первый, wireshark слушает на втором

3) не имеет значения, установка на чистую систему

DmB
() автор топика
Ответ на: комментарий от DmB

Тогда всё нормально

Для меня будет трудностью только одно: машины, которые не имеют в BIOS старого режима загрузки. То есть только EFI. Так как на второй grub ещё не переходил (не было надобности) + опыта общения с efi-машинами пока нет. Но вроде grub1 в Fedora 17 допилили до поддержки EFI. Надо будет посмотреть.

Тогда этапы работ выглядят так:

1) Основная часть: загрузочный ISO с LAMP, Wireshark, и тд. Предположительно на основе turnkey LAMP. Отработка скриптов определения и конфигурирования сетевых интерфейсов, работы системы в RAM-диске. Практически все рабочие проблемы можно отладить с этим вариантом. В том числе поддержку ядром железа целевой системы.

Для отработки можно использовать и VirtualBox. Но насчёт шустрости работы в этом режиме не уверен. Часто сильно тормозит.

PS: такой ISO может использовать для базы и для других данных место на ext2/ext3 (конкретно где можно указать в загрузчике)

2) Часть установки на диск: отработка разметки дисков и установки системы на диск. Количество, размеры и типы разделов, на какой раздел устанавливаем базы.

seyko2
()
Ответ на: Тогда всё нормально от seyko2

Да, сценарий верный. Для turnkey можно использовать триальный Amazon EC2 cloud, или даже MS Azure (Ubuntu, CenOS и SUSE).

Все интереснее, чем на своем компе виртуалка.

2) Свой раздел для баз не принципиален, это не супер-дупер реалтайм софт.

DmB
() автор топика
Ответ на: комментарий от DmB

На своём компе виртуалка

Она нужна только для отладки efi-загрузки (H2O bios не поддерживает EFI-загрузку) и проверки работы livecd (не надо прошивать iso). Всё остальное отлаживается на реальном железе.

PS: MS Azure выглядит привлекательнее в плане регистрации (кредитка не нужна), однако поддержка ISO только в планах (http://feedback.azure.com/forums/216843-virtual-machines/suggestions/6345607-...).

У Amazon EC2 ситуация с ISO аналогичная (http://stackoverflow.com/questions/11018747/create-new-ec2-instance-with-cust...)

Думаю, обменяться ISO-образом можно и так.

PPS: будем считать, что выполняемся под 64bit ядром

seyko2
()
Ответ на: комментарий от DmB

Уточнения

Процесс сборки ISO должен быть повторяем (мной)

На каком дистрибутиве Linux он должен быть повторяем? Чтоб повторить (инструкция) должны присустствовать соответствующие средства разработки. Технология вкратце: разворачиваем существующий ISO, добавляем пакеты-изменения и собираем заново.

смена пароля при первой загрузке

В turnkey LAMP установка паролей для пользователя root и админа MySQL в стандартной поставке (при загрузке).

настройка одного из двух сетевых интерфейсов

Тоже из коробки. Кроме того, как пользователь будет определять, какой из интерфейсов смотрит в мир (нужно настраивать)?

установка на диск

на чистый диск и машину без SecureBoot и EFI установка работает без проблем (из коробки)

PS: там встроен и запрос обновления security. То есть запрашивает разрешение и норовит обновить пакеты.

seyko2
()
Ответ на: Уточнения от seyko2

про вариант turnkey-openvz кстати

Огорчён сыростью этого варианта. Ничего не сделано для чистой работы в контейнере. Системные скрипты при загрузке пытаются загрузить disk-mapper, iptables и тд. Нет консоли (agetty). Не спашивая начинает обновление системы, после чего что-то там вообще не запускается. Плохая работа системных скриптов — это вина debian-7. В gentoo скрипты уже давно определяют, что работают в контейнере и лишенего делать не пытаются

seyko2
()
Ответ на: Уточнения от seyko2

1) Linux на ваше усмотрение

2) смена пароля пользователя, не root. Пароль для MySQL зашит в php приложении, пользователь ничего не знает про MySQL, php и т.д. Все что у него есть - 5 скриптов в системе и веб-доступ к приложению. Пароль для root должен быть предустановлен и известен мне.

3) По умолчания интерфейс 1 для доступа, интерфейс 2 - для Wireshark. Это будет указано в документации.

4) Это скорее плохо, чем хорошо. Чем меньше вопросов и действий юзера, тем лучше.

DmB
() автор топика
Ответ на: про вариант turnkey-openvz кстати от DmB

turnkey

turnkey — ничего лучше я тоже не нашёл. В SuSe studio варианты LAMP от низвестно кого на версии 11.3 устарели и недостурпны для скачки-анализа. Про другие говорят, что они не работают, да и размером больше гига против 200K.

OpenVz вариант turnkey предназначен для выполнения в контейнере (chroot на стрероидах) и развязан с процессом загрузки ОС на железе, но в данном случае он не нужен.

Существенно, однако, что в Linux нет понятия сетевая карта1 и сетевая карта2: они не упорядочены. Определить какая карта смотрит в мир (какой кабель поключен к карте), скорее всего, можно только ping-ом

PS: После разборки-сборки LiveCD от turnkey попробую (имея на руках список нужных пакетов) собрать LiveCD стандартным для debian методом (debbotstrap). И таким образом выяснить, что в LiveCD от turnkey добавили своего.

PPS: в turnkey очень много включено по умолчанию: ssh, webmin, phpadmin, postfix. Всё можно выключить через webmin.

seyko2
()
Ответ на: комментарий от StrongDollar

Ограничивать-то всегода сложно, надо городить специальную ограничительную софтину

шёл-бы ты, дядя, на винфак.

emulek
()


Нашелся исполнитель с подобным опытом, будем делать на debian, рассчитываем на пару дней работы.

Всем большое спасибо за комментарии и вопросы.

Дмитрий.

DmB
() автор топика
Ответ на: комментарий от DmB

Нашёлся исполнитель

Информируйте об успехах. Правда большие сомнения на счёт 2 дней.

В качестве задела вот turnkey lamp, в который добавлены tshark, mc и произведено обновление security. Для скачивания ссылки на google drive. ISO разбит на части командой split, ибо google drive имеет ограничение на размер одного файла. Объединять командой cat.

-rwxrwxrwx 1 root root 256845824 Янв 27 12:54 turnkey-lamp-13.0-wheezy-amd64-my.iso

-rw-r--r-- 1 root root 20000000 Янв 27 13:28 turnkey-lamp-my.iso-00
-rw-r--r-- 1 root root 20000000 Янв 27 13:36 turnkey-lamp-my.iso-01
-rw-r--r-- 1 root root 20000000 Янв 27 14:02 turnkey-lamp-my.iso-02
-rw-r--r-- 1 root root 20000000 Янв 27 14:47 turnkey-lamp-my.iso-03
-rw-r--r-- 1 root root 20000000 Янв 27 14:56 turnkey-lamp-my.iso-04
-rw-r--r-- 1 root root 20000000 Янв 27 15:04 turnkey-lamp-my.iso-05
-rw-r--r-- 1 root root 20000000 Янв 27 15:15 turnkey-lamp-my.iso-06
-rw-r--r-- 1 root root 20000000 Янв 27 15:22 turnkey-lamp-my.iso-07
-rw-r--r-- 1 root root 20000000 Янв 27 15:30 turnkey-lamp-my.iso-08
-rw-r--r-- 1 root root 20000000 Янв 27 15:45 turnkey-lamp-my.iso-09
-rw-r--r-- 1 root root 20000000 Янв 27 15:53 turnkey-lamp-my.iso-10
-rw-r--r-- 1 root root 20000000 Янв 27 16:01 turnkey-lamp-my.iso-11
-rw-r--r-- 1 root root 16845824 Янв 27 16:07 turnkey-lamp-my.iso-12


turnkey-lamp-my.iso-00 https://googledrive.com/host/0B35PjbLHNzyqV2lqREp2Q3YxTkE
turnkey-lamp-my.iso-01 https://googledrive.com/host/0B35PjbLHNzyqUFl4ZlNIanBqUVE
turnkey-lamp-my.iso-02 https://googledrive.com/host/0B35PjbLHNzyqRVNBNWJfZVZ0cUk
turnkey-lamp-my.iso-03 https://googledrive.com/host/0B35PjbLHNzyqUHVZOHdkU29JbUU
turnkey-lamp-my.iso-04 https://googledrive.com/host/0B35PjbLHNzyqWVd5ZmxIMGdDUVU
turnkey-lamp-my.iso-05 https://googledrive.com/host/0B35PjbLHNzyqNnNfbU5jWXJPV0E
turnkey-lamp-my.iso-06 https://googledrive.com/host/0B35PjbLHNzyqYVJkOHBFQlhBSjA
turnkey-lamp-my.iso-07 https://googledrive.com/host/0B35PjbLHNzyqSzJ6VTVvLUVpd0k
turnkey-lamp-my.iso-08 https://googledrive.com/host/0B35PjbLHNzyqbTg3WEhQQ0pYM0E
turnkey-lamp-my.iso-09 https://googledrive.com/host/0B35PjbLHNzyqZXppbEtfd09TdEU
turnkey-lamp-my.iso-10 https://googledrive.com/host/0B35PjbLHNzyqaWNPbmQ2bngxc2M
turnkey-lamp-my.iso-11 https://googledrive.com/host/0B35PjbLHNzyqTE5oN0FxTWNoTUU
turnkey-lamp-my.iso-12 https://googledrive.com/host/0B35PjbLHNzyqUWdnMno3NDAwZlE
seyko2
()
Ответ на: Нашёлся исполнитель от seyko2
Ответ на: комментарий от gh0stwizard

А где репозиторий с измененными файлами

Так ISO просто модифицировался... Загрузился в режиме LiveCD, «apt-get install tshark mc gpm», в меню после загрузки выбрал обновленить пакеты (security), пароль для всех «toor» и потом собрал из получившегося новый 10root.squashfs и сам iso.

seyko2
()
Ответ на: Нашёлся исполнитель от seyko2

Нашёлся исполнитель

Согласен, два дня оптимистично.

Файлы качаю, попробую склеить в винде. Спасибо.

Может, зальете сюда? https://www.wetransfer.com/

до 2х гиг без всякой регистрации, емейл dmbuk @@@ outlook.com

DmB
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.