Linux alpine что это

Small. Simple. Secure.

Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.

About

Alpine Linux is an independent, non-commercial, general purpose Linux distribution designed for power users who appreciate security, simplicity and resource efficiency.

Small

Alpine Linux is built around musl libc and busybox. This makes it smaller and more resource efficient than traditional GNU/Linux distributions. A container requires no more than 8 MB and a minimal installation to disk requires around 130 MB of storage. Not only do you get a fully-fledged Linux environment but a large selection of packages from the repository.

Binary packages are thinned out and split, giving you even more control over what you install, which in turn keeps your environment as small and efficient as possible.

Simple

Alpine Linux is a very simple distribution that will try to stay out of your way. It uses its own package manager called apk, the OpenRC init system, script driven set-ups and that’s it! This provides you with a simple, crystal-clear Linux environment without all the noise. You can then add on top of that just the packages you need for your project, so whether it’s building a home PVR, or an iSCSI storage controller, a wafer-thin mail server container, or a rock-solid embedded switch, nothing else will get in the way.

Secure

Alpine Linux was designed with security in mind. All userland binaries are compiled as Position Independent Executables (PIE) with stack smashing protection. These proactive security features prevent exploitation of entire classes of zero-day and other vulnerabilities.

Источник

Alpine Linux

Дистрибутив Alpine Linux

Alpine Linux — независимый, маленький, быстрый дистрибутив Linux. Используется в Docker контейнерах.

Видео-обзор

Видео-обзор дистрибутива Alpine Linux.

Система инициализации OpenRC

В качестве системы инициализации используется OpenRC.

OpenRC отличается модульной структурой, загрузкой на основе зависимостей, поддержкой ограничения ресурсов, параллельной загрузкой сервисов и т.д.

Изначально OpenRC использовалась в Gentoo (c 2011 года) и была основана на SysVInit.

Использует BusyBox

Alpine Linux использует набор UNIX-утилит BusyBox. BusyBox это реализация классических утилит UNIX, выполненная в виде одного небольшого исполняемого файла.

BusyBox реализует все основные утилиты (GNU fileutils, shellutils и т.д.), которые обычно реализованы как отдельные файлы. Утилиты BusyBox, как правило, более компактные и могут иметь меньше опций, чем GNU аналоги. Не смотря на это, BusyBox предоставляет достаточно полную среду для любой небольшой или встраиваемой системы.

Вызов утилит в BusyBox выполняется путем исполнения файла busybox и указания требуемой команды и аргументов. Например, для вызова команды ls аргументом -l, необходимо выполнить:

Библиотека musl

В качестве реализации стандартной библиотеки языка C (libc) в Alpine Linux используется библиотека musl.

Самой популярной библиотекой языка C является GNU Libc (glibc). glibc обеспечивает реализацию системных вызовов и основные функции, например open, malloc и так далее. Библиотека musl представляет собой более легковесную альтернативу glibc.

Читайте также:  Команды для root терминала linux

musl была разработана с нуля Ричем Фелкером. Ставились цели разработать более чистую и эффективную реализацию, которая будет соответствовать стандартам.

Скомпилированная версия библиотеки представляет собой один динамический объектный файл. При использовании версии musl для статического связывания, можно создавать портативные программы в виде одного исполняемого бинарного файла.

Первый релиз musl появился 11 февраля 2011.

Помимо Alpine Linux библиотека musl также используется в дистрибутивах Gentoo, OpenWrt, Sabotage, Void Linux и других.

История

Изначально Alpine Linux являлся форком LEAF Project (Linux Embedded Appliance Framework Project).

Назначение, использование

  • Из-за своего маленького размера Alpine Linux часто применяется в контейнерах.
  • Может использоваться во встраиваемых системах. Например, в основе операционной системы для смартфонов postmarketOS лежит Alpine Linux.
  • Может быть установлен в качестве «десктоп-системы».

Система управления пакетами apk-tools

Используется собственная система управления пакетами apk-tools.

Изначально apk-tools представляла собой набор shell-скриптов, но потом была полностью переписана на C.

Alpine Linux может быть установлен на диск, либо работать из оперативной памяти. Управление пакетами включает две фазы:

  • Установка / Обновление / Удаление пакетов на работающей системе.
  • Восстановление системы в ранее сконфигурированное состояние (например, после перезагрузки), включая все ранее установленные пакеты и локально измененные конфигурационные файлы. Данная фаза актуальна только для системы, работающей из RAM (diskless mode).

apk-tools включает две утилиты:

  • apk — утилита для установки, обновления и удаления пакетов в работающей системе. (Не путать с apk форматом для Android)
  • lbu — утилита для сохранения данных, необходимых для последующего восстановления системы в ранее сконфигурированное состояние. lbu происходит от названия «Alpine local backup»

Операции утилиты apk

Утилита apk поддерживает следующие операции:

Операция Описание
add добавление и обновление пакетов.
del удаление пакетов.
fix выполнить восстановление или обновление, установленных пакетов.
update обновить индекс — получить актуальную информацию о пакетах, находящихся в репозиториях.
info вывести информацию об установленных или доступных пакетах.
search поиск по названию или описанию пакетов.
upgrade обновление пакетов.
cache управление кешем.
version сравнение версий установленных и доступных в репозитории пакетов.
index создать индекс на основе списка пакетов.
fetch скачать, но не устанавливать пакеты.
audit показать изменения в файловой системе после установки пакета.
verify проверить подпись.
dot создать граф (graphviz) для описания структуры пакета.
policy показать репозиторий, из которого пакет был установлен, а также репозитории, в которых также содержится этот пакет.
stats отобразить статистику, включая количество установленных и доступных пакетов, количество директорий, файлов и т.д.
manifest отобразить контрольные суммы для файлов, содержащихся в пакете.

Репозитории и пакеты

Пакеты для Alipne Linux представляют собой tar.gz архивы и имеют расширение .apk. В архиве пакета содержатся программы, конфигурационные файлы и метаданные о зависимостях.

Репозиторий представляет собой обычную директорию, в которой находятся .apk файлы. Также в директории размещается специальный индексный файл APKINDEX.tar.gz

Утилита apk может устанавливать пакеты из различных репозиториев. Список репозиториев представлен в файле /etc/apk/repositories

Если система была загружена с USB-носителя или CD-ROM, то файл /etc/apk/repositories может иметь следующее содержимое:

В дополнение к локальным репозиториям, утилита apk может загружать пакеты с внешних репозиториев по HTTP, HTTPS или FTP протоколу. Для загрузки пакетов используется busybox wget. Пример файла /etc/apk/repositories с адресами удаленных (внешних) репозиториев.

Установка Alpine Linux

Система устанавливается в консольном режиме. Для установки используется скрипт setup-alpine

Существует три режима установки, которые влияют на то, как будет работать система:

  • Diskless Mode — вся система и все приложения загружаются в RAM.
  • Data Disk Mode — система запускается из RAM, но swap и /var монтируются с диска.
  • Sys Disk Mode — традиционная установка системы на диск. По умолчанию создается три раздела: /boot, swap и /.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Alpine Linux

Alpine Linux
Разработчик Alpine Linux development team
Линейка ОС UNIX-подобная
Состояние разработки Активное
Исходный код Open source
Последний релиз 3.5.1 / 26 January 2017 года ; 4 years ago ( 2017-01-26 ) [1]
Целевой маркетинг Developers, power users
Доступно в Многоязычие
Cистема управления пакетами APK
Платформы x86, x86-64, ARMhf, ARM (Advanced RISC Machine)#AArch64AArch64
Ядро (тип) Монолитное ядро (Linux)
Пользовательское
пространство
BusyBox (GNU Core Utilities опциональны)
По умолчанию
пользовательский
интерфейс
CLI (Command Line Interface)
Официальный веб-сайт alpinelinux .org

Alpine Linux — некоммерческий Linux дистрибутив общего назначения, предназначенный для использования опытными пользователями, ценящими безопасность, простоту и эффективность. Девиз проекта — «Small. Simple» Secure.» Основан на musl и BusyBox, по умолчанию использует патчи ядра PaX и grsec, все пакеты компилируются с защитой от переполнения стека.

Содержание

История

Проект первоначально развивался как ответвление от LEAF Project [2] , чьей изначальной концепцией была разработка дистрибутива, который смог бы помещаться на одной 1.44MB дискете, тогда как разработчики пожелали включить более тяжеловесные пакеты (такие как Samba или Squid).

Особенности

  • Маленький размер дистрибутива и скромные требования к железу. Alpine Linux ориентирован на использование во встраиваемых или серверных системах, поэтому включает в себя только самые необходимые компоненты.
  • Два вида релизов – edge и stable. Edge-релиз постоянно существует в виде rolling release, получая самые свежие обновления по мере выпука пакетов, однако его стабильная работа не гарантируется разработчиками. Stable-релиз представляет из себя сборку последних стабильных версий всех пакетов (обычно раз в полгода) с поддержкой важных обновлений в течение 2 лет.
  • Собственная система управление пакетами apk-tools, которая изначально была в коллекции скриптов shell scipts но позже была переписана разработчиками на C. Alpine на данный момент включает в себя такие пакеты как GNOME, Xfce, Firefox, и другие. Однако, некоторые пакеты, такие как KDE, пока ещё не портированы.
  • По умолчанию, Alpine Linux во время запуска полностью [загружается в оперативную память].
  • Патчи безопасности PaX и grsecurity включены по умолчанию в ядро Alpine Linux, что помогает защите от эксплойтов, похожих на vmsplice local root exploit. [3] Также все пакеты скомпилированы с защитой от переполнения стека.
  • musl в качестве стандартной библиотеки языка Си. Первоначально Alpine Linux использовала uClibc вместо традиционной glibc. Однако, несмотря на легкий вес, у нее есть существенный очевидный недостаток — она бинарно несовместима с glibc. Таким образом, все программное обеспечение должно быть перекомпилировано с использованием uClibc для корректной работы. Однако, с 9 апреля 2014 года Alpine Linux использует библиотеку musl libc, которая является частично бинарно совместимой с glibc [4] .
  • В качестве системы инициализации Alpine Linux использует OpenRC, в отличие от Debian, Ubuntu, RHEL или CentOS, которые используют systemd. [5]
  • У Alpine Linux небольшое, но весьма дружелюбное сообщество, готовое прийти на помощь. Большинство основных разработчиков можно найти на IRC-каналах #alpine-linux или #alpine-devel для обсуждения ошибок или возникших проблем.

Установка

Процесс установки подробно описан на официальной вики проекта.
Также есть видео-инструкция по установке дистрибутива в VirtualBox:

Настройка основного функционала

DHCP-сервер для локальной сети

Данный процесс настройки сетевого протокола для локальной сети представлен в виде нескольких шагов. DHCP предназначен для автоматического присвоения IP-адресов сетевым устройствам. Его настройка на Alpine Linux происходит следующим образом:

1) Определите радиус IP-адресов для использования. Вы должны использовать “Частный радиус IP-адресов”, иначе могут возникнуть проблемы с передачей данных через вашу сеть. Для простой LAN, используйте 192.168.0.100, с маской подсети 255.255.255.0 и количеством хостов 50. Таким образом вы сможете подключить к вашей сети до 50 устройств без каких-либо изменений.

2) Сделайте IP-адрес вашего компьютера 192.168.0.2, с маской подсети 255.255.255.0 (адрес диапазона вашей сети, не входящий в адреса раздачи DHCP сервера).

3) Скачайте tftpd32 с сайта

4) Разархивируйте файл на ваш компьютер и запустите tftpd32.exe.

5) Нажмите на Settings.

6) Выберите вкладку DHCP в окошке Settings.

7) Установите IP pool starting address. Это будет являться первым IP-адресом вашей сети, который раздаст DHCP сервер. (192.168.0.100, если не уверены!)

8) Установите Size of pool на значение, чуть большее чем нужное для планируемых сетевых устройств в вашей сети. (Если сомневаетесь, поставьте 50)

9) Оставьте поле Boot File пустым.

10) Если в вашей сети присутствует DNS сервер или сервер, доступный одной из машин в вашей сети, то укажите его IP-адрес в поле WINS/DNS Server. Если нет или вы не знаете, что это означает, то оставьте поле пустым.

11) Установите маску подсети в Mask. Если вы знаете что это такое, то следуйте схеме адресов данной статьи и поставьте 255.255.255.0.

12) Не изменяйте поля Domain Name и Additional Option.

13) Нажмите на Save.

14) Ваш DHCP сервер готов к работе!

DNS-сервер для локальной сети

Самая стабильная и ресурсо-сберегающая связка, это linux+bind. Установим DNS-сервер Bind9:

Главные настройки находятся в файле (named.conf.options), отредактируем его:

Закомментированная секция forwarders, отвечает за то, куда будет передаваться DNS-запрос на разрешение имени. Вместо 0.0.0.0, нужно указать альтернативный DNS-сервер. Например 213.180.204.3 — yandex, 8.8.8.8 — google. После редактирования должно быть примерно так:

Сохраняем изменения и выходим (:wq). Перезапускаем сервер (sudo reboot) и проверяем:

В данном случае, сервер не является главным в обслуживании этой зоны (ya.ru). Cоздадим зону для сети, чтобы сопоставить ip-адреса компьютерам и сетевым устройствам. Зоны описываются в конфигурационном файле: named.conf.local

Добавим в него секцию:

Сохраняем изменения и выходим (:wq).
Зону мы обозначили, теперь настроим ее:

Редактируем до следующего вида:

Указать в нем адрес:

Сохраняем изменения и выходим (:wq).

Теперь разрешением имен в интернете будут заниматься DNS-сервера, указанные в секции forwarders.

1. Преобразование внутри сети:

2. Разрешение имен в интернете:

Установка Snort

Snort – облегченная система обнаружения вторжения . Snort обычно называют “обгегченным” NIDS, — потому что это он разработан прежде всего для маленьких сетей. Основной сайт для Snort — http://www.snort.org. Snort распространяется согласно лицензии GNU GPL. После загрузки архива, разархивируем его в каталог snort-1.7:

После загрузки libpcap, разархивируйте его подобным образом. Войдите в каталог libpacp, и выполните следующие шаги:

Теперь, мы компилируем Snort. Войдите в каталог, в котором находится Snort, и выполните следующие команду:

Snort теперь установлен на вашей машине. Создайте директорию, в которой Snort будет хранить файлы регистрации:

Источник

Читайте также:  Как сделать windows круче
Оцените статью