Кишеньковий чортеня на ім'я Frenzy
Ще недавно завантажувальна дискета була неодмінним атрибутом адміна. Тепер на замінили дискети LiveCD. Носити з собою компакт-диск, на якому знаходиться готова до роботи система, та ще й з набором корисних утиліт, стало традицією багатьох сисадмінів. "Хакер" вже писав про LiveCD на базі Linux і Windows. А що ж робити, якщо твоя улюблена вісь - FreeBSD?
На жаль, похвалитися розмаїттям FreeBSD-шних LiveCD не вийде - такі проекти можна перерахувати по пальцях. Однак серед них є один, який заслуговує на твою увагу. Незважаючи на свій невеликий розмір, він містить безліч корисних утиліт, до того ж повністю русифікований і активно розвивається. Уявляю твоїй увазі проект, над яким я працюю вже більше року - Frenzy, портативний інструмент системного адміністратора. За цей час з простенького LiveCD з невеликим набором утиліт проект перетворився в популярний і якісний дистрибутив, яким користуються багато початківці і просунуті юніксоід. Як, ти ще не чув? Тоді читай швидше, не отставай від прогресу!
Історія проекту
Однак у перших версій був дуже серйозний недолік - швидкість завантаження прог була куди гальмівних порівняно з лінуксових LiveCD. Причина - Відсутність в FreeBSD модуля стислій файлової системи. Практично всі лінуксові LiveCD використовують стислі файлові системи (cloop, squashfs, cramfs і т.п.), завдяки чому на диску розміщується набагато більше додатків, а швидкість їх запуску в кілька разів вище, ніж була в Frenzy. Розробка нової версії затягнулася. Знайшовши кілька проектів зі створення стислих файлових систем для FreeBSD, я спробував застосувати їх напрацювання в Frenzy, але безрезультатно - єдиним результатом роботи всіх цих модулів було безліч повідомлень про помилки :)
На щастя, Максим Хон, один з учасників проекту FreeBSD, зацікавився цією проблемою і портував модуль cloop (стисла файлова система, яка використовується в Knoppix) в FreeBSD 5. Результат перевершив всі очікування - проги стали завантажуватися так само швидко, як і в лінуксових LiveCD, а в порівнянні з попередніми релізами Frenzy швидкість зросла в три рази. До речі, модуль geom_ugz тепер входить в дерево сорци FreeBSD.
Ти завжди можеш поспілкуватися з розробником і користувачами Frenzy на форумі сайту і в дискусійному списку розсилки. Адже проект не стоїть на місці, йде робота над новими версіями, і варто бути в курсі всіх подій, щоб першим встигнути побачити скріншоти і дістати новий реліз :)
Що може Frenzy
Отже, ти дістав диск з Frenzy або пропалив ісошнік самостійно. Вставляємо диск в CD-ROM, перезавантажується. Вже через півтори хвилини система завантажена, і ми потрапляємо в саму звичайну текстову консоль FreeBSD. Залогінитися в систему можна під користувачем root баз пароля. Набравши команду help (про що нам нагадують після входу в систему), можна прочитати документацію по системі - які проги входять до складу дистрибутива, як налаштувати мережу, як зберегти і відновити настройки і так далі. Загалом, розбиратися в системі "методом наукового тику" тобі не доведеться - все man-сторінки і документація до програм на місці, а також є FreeBSD Handbook і FreeBSD FAQ російською мовою.
Для роботи з файлами і дисками в системі є файлові менеджери Deco, MC і XNC, комплект утиліт для роботи з DOS-дискети mtools (а це значить, що можна і не монтувати дискети), всілякі архіватори. Розробників софта порадує той факт, що на диску є gcc, nasm, perl і python, так що можна без проблем скомпілювати свою прогу або запустити скрипт. Сисадміни знайдуть на диску утиліти відновлення файлів, програми для роботи з жорстким диском, бенчмарки і тести, антивіруси clamav і Dr.Web з можливістю оновлення антивірусних баз.
Софт для роботи з мережами становить значну частину дистрибутива. Налаштувати локалку можна не напружуючись за допомогою скрипта lan-config, для модемного з'єднання є ppp-config і звонилки XISP і Chestnut-dialer. Крім стандартних мережевих компонентів, є VPN і Wireless-утиліти. Для серфінгу в інеті знайдуться браузери lynx, links-hacked, Opera, гойдалка wget, поштовики mutt і sylpheed-claws, різний софт для спілкування в ICQ, IRC і Jabber. Адміну знадобляться тулзи для розрахунку мереж, моніторингу трафіку, утиліти для роботи з протоколами DNS, LDAP, SNMP, DHCP, ICMP, ARP, а також софт для віддаленого управління (PuTTY, rdesktop, VNC) і клієнти mysql і postgresql. А для хакера найцікавішими будуть проксі і редіректи, сканери портів, сервісів і мереж (nmap, звичайно ж, присутня), сканери безпеки (включаючи Nessus), сніфери (dsniff, ettercap, ethereal і інші) і безліч інших security-утиліт.
Використання LiveCD дає тобі приголомшливу мобільність - практично на будь-якому комп'ютері, завантажившись з компакта, ти можеш працювати з повним набором додатків, не встановлюючи нічого на жорсткий диск. Всі налаштування, зроблені тобою під час роботи, можна зберегти на дискету, USB-флешку або розділ жорсткого диска за допомогою скрипта backup - при наступному завантаженні вони будуть відновлені автоматично.
Як бачиш, "кишеньковий чортеня" здатний на багато що. Фактично це повноцінна FreeBSD, яку можна носити з собою в кишені сорочки і яка завжди готова до роботи. А вже для чого ти будеш її використовувати - справа твоє. Хочеш - тестуй залізо і відновлювати файли з гвинта, хочеш - скануй сітку і тестуй серваки на наявність дір в безпеці, хочеш - серфай по інету, спілкуйся по асьці, слухай музику або дивись фільми.
Як працює Frenzy
В основі системи лежить звичайнісінька FreeBSD 5.2.1-RELEASE. Правда, для LiveCD її довелося полегшити, написавши власний make.conf.
Як кореневої файлової системи використовується полуторамегабайтний образ, на якому знаходиться init і кілька необхідних утиліт. При завантаженні ядро підвантажує цей образ і монтує кореневу файлову систему з нього, після чого стартує init. Він запускає власний rc-скрипт, в якому проводиться пошук компакт-диска з Frenzy. Як тільки він буде знайдений, виконується скрипт frenzyrc з кореня компакта. Цей скрипт монтує образи стислих файлових систем, створює файлові системи в оперативній пам'яті і заповнює їх файлами, після чого накладає на ці файли (за потребою) заздалегідь підготовлені патчі. Після всіх цих приготувань запускається системний rc.
Для коректної роботи LiveCD знадобилося додати нові rc-скрипти (монтування диска, відновлення бекапа, інформація про "залозі", пошук миші) і модифікувати деякі зі стандартних.
Frenzy remastering HOWTO
Природно, Frenzy можна переробити під свої потреби, а при наявності деякого досвіду цілком можливо зібрати власний дистрибутив на базі Frenzy.
Якщо тобі досить тільки замінити деякі конфіги, все дуже просто.
Для початку потрібно розібрати ісошнік. Завантажувати в FreeBSD і копіюй весь вміст ісошніка на гвинт в папку FRENZY. Готуєш потрібні патчі (як приклад розміщення файлів візьми lang_en.tbz з папки conf / files), упаковують їх в архів командою
tar cyvf frenzy03conf.tbz.
і кладеш отриманий архів в папку FRENZY / conf / files. Потім робиш ісошнік командою
mkisofs -b boot / cdboot -no-emul-boot -c boot / boot.catalog -r -J -D -V Frenzy_remastered -o frenzy_remastered.iso FRENZY
Якщо ж ти хочеш самостійно зібрати свою версію Frenzy, то до твоїх послуг складальні скрипти. Їх можна завантажити на сайті або взяти в папці devel компакт-диска.
Для складання тобі будуть потрібні встановлені вихідні тексти системи і порти sysutils / mkisofs і sysutils / cloop-utils, а для роботи скрипта монтування дисків, визначення "заліза" та інших утиліт зі складу Frenzy до складу майбутнього диска потрібно включити пакаджі lang / perl5, sysutils / linuxfdisk, devel / cdialog, x11 / xdialog, sysutils / x86info, sysutils / dmidecode, sysutils / pciutils. Якщо все готово, приступаємо.
Розпаковуєш складальні скрипти на диск, потім копіюєш все потрібні пакаджі в каталог Packages / FreeBSD (при установці залежності не будуть перевірятися, так що прослідкуй за цим самостійно). Якщо потрібно, поміняй дефолтні конфіги в папці frenzypkg.
Якщо ти зробив все необхідне, залишилося запустити по черзі складальні скрипти, починаючи з 01.base.sh і закінчуючи 12.mkiso.sh. В результаті всіх цих дій в каталозі ISO лежатиме ісошнік зібраного тобою дистрибутива.
Підведемо підсумки
В одній з пісень Limp Bizkit звучать слова: "Якщо хочеш, щоб щось було зроблено правильно - просто зроби це сам". Я теж не став чекати, поки хтось зробить потрібний мені дистрибутив, і зробив зручний і надійний LiveCD на основі FreeBSD. Незважаючи на те, що я вважав цю затію божевільною ідеєю (звідси і назва Frenzy), результат перевершив всі очікування. На даний момент Frenzy є єдиним російськомовним LiveCD на основі ОС FreeBSD, і кожен може знайти в ньому щось корисне і цікаве для себе. Новачки можуть почати знайомство з FreeBSD саме з цього дистрибутива, просунуті користувачі знайдуть в ньому безліч корисних програм, а сисадміни і хакери будуть в захваті від хардварних, мережевих і security-утиліт. Справа не в інструменті, а в тому, хто і для чого його використовує.
Я впевнений, що Frenzy займе гідне місце в твоєму софтовом інструментарії.
Expect anything. Have fun. )
аналогічні проекти
Звичайно, Frenzy не єдиний в світі проект зі створення LiveCD на основі ОС FreeBSD.