Горячее
Лучшее
Свежее
Подписки
Сообщества
Блоги
Эксперты
Войти
Забыли пароль?
или продолжите с
Создать аккаунт
Я хочу получать рассылки с лучшими постами за неделю
или
Восстановление пароля
Восстановление пароля
Получить код в Telegram
Войти с Яндекс ID Войти через VK ID
Создавая аккаунт, я соглашаюсь с правилами Пикабу и даю согласие на обработку персональных данных.
ПромокодыРаботаКурсыРекламаИгрыПополнение Steam
Пикабу Игры +1000 бесплатных онлайн игр
Герои Войны - микс стратегии и РПГ. Собери лучшую армию и победи всех врагов. В игре 7 различных режимов - как для любителей PvE, так и PvP.

Герои Войны

Стратегии, Мидкорные, Экшены

Играть

Топ прошлой недели

  • AlexKud AlexKud 38 постов
  • SergeyKorsun SergeyKorsun 12 постов
  • SupportHuaport SupportHuaport 5 постов
Посмотреть весь топ

Лучшие посты недели

Рассылка Пикабу: отправляем самые рейтинговые материалы за 7 дней 🔥

Нажимая кнопку «Подписаться на рассылку», я соглашаюсь с Правилами Пикабу и даю согласие на обработку персональных данных.

Спасибо, что подписались!
Пожалуйста, проверьте почту 😊

Помощь Кодекс Пикабу Команда Пикабу Моб. приложение
Правила соцсети О рекомендациях О компании
Промокоды Биг Гик Промокоды Lamoda Промокоды МВидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня

Linux + Open Source

С этим тегом используют

Windows IT Программирование Ubuntu IT юмор Компьютер Программист Разработка Github Операционная система Android Все
81 пост сначала свежее
Shuriban
Shuriban
2 года назад

Почему бы не продать OpenSource⁠⁠

Или платный Linux.
Увидел новость с заголовком "В продажу вышла Русская ОС". Ну собственно вот....

Почему бы не продать OpenSource Linux, Open Source, Операционная система, Россия
Почему бы не продать OpenSource Linux, Open Source, Операционная система, Россия
Почему бы не продать OpenSource Linux, Open Source, Операционная система, Россия

Правда новость не нова, в википедии пишут что ее релиз состоялся аж в 2017 году.
И обзоров куча. Посыл в том, что поступила в продажу.
А законопроект, обязывающий Гос учреждения ее покупать уже приняли?

Показать полностью 3
[моё] Linux Open Source Операционная система Россия
20
VladimirChursin
VladimirChursin
2 года назад
Лига программистов
Серия ИТ

Скрипт генерации ifcfg-файлов⁠⁠

Скрипт генерации ifcfg-файлов Linux, Программирование, IT, Разработка, Perl, Open Source

Приветствую!

В рамках создания ansible-helper-а "conf_int_ipv4_via_network_scripts" дописал скрипт ("generate_dynamic_ifcfg.pl") генерации сетевых интерфейсов для network-scripts по заранее заданным конфигурациям, который вполне допустимо использовать отдельно от хелпера (файл конфигурации с примерами = config_examples).

Чтобы использовать perl-программу вне контекста репозитория, потребуется:

1. Залогиниться на хост/ВМ с ОС Linux и установленным Perl5.

2. Скопировать скрипт "generate_dynamic_ifcfg.pl", например, в директорию "/opt/generate_dynamic_ifcfg".

3. Скопировать файл конфигурации (config), файл с примерами конфигурации (config_examples) и папку "ifcfg_tmplt" (содержит шаблоны конфигураций интерфейсов) в директорию со скриптом.

4. Откорректировать параметры скрипта из блока "STATIC VARS", т.е. задать директорию с шаблонами ifcfg-файлов и директорию для размещения сконфигурированных сетевых интерфейсов (ifcfg-файлов с конкретными значениями: имя интерфейса, MAC-адрес и проч.).

5. Отредактировать файл config, задав свои настройки сетевых интерфейсов (обычный интерфейс, bond, bridge, etc).

6. Запустить скрипт.

7. PROFIT!


P.S. №1. Увы, сам хелпер пока далёк от завершения. Предстоит ещё многое сделать, в т.ч. и, например, реализовать механизм временного применения сетевых настроек, например, на 3-4 минуты с последующим откатом к предыдущей конфигурации (наверняка для кого-то сия опция окажется весьма полезной).

===

P.S. №2. Ох и объёмная же статья (на основе репозитория ansible_helpers) для Хабра получится.

===
Ссылка на helper: https://github.com/vladimir-chursin000/ansible_helpers/tree/...
Показать полностью
[моё] Linux Программирование IT Разработка Perl Open Source
17
19
NonameVPN
3 года назад
Лига образования

Как подружиться с пингвином? IT для гуманитариев⁠⁠

Сейчас все чаще говорят об импортозамещении программного обеспечения, в том числе операционных систем.

Чем грозит для обычного пользователя отказ от Windows?

Как подружиться с пингвином? IT для гуманитариев IT, Linux, Импортозамещение, Open Source, GNU, Рисунок карандашом, Пингвины, Длиннопост

Подавляющее большинство компьютеров и смартфонов работает либо под Windows, либо под семейством операционных систем, основанных на UNIX. К ним относятся все сборки Linux, Android, MacOS, iOS, семейство BSD, ОС для Sony PlayStation и другие. Они могут сильно отличаться друг от друга, но у них одни и те же принципы работы.


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

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

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


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

1) Под разные задачи есть разные сборки. От минималистичных, которые установятся даже на компьютер конца 90-ых годов, до узкоспециализирированных, например ориентированных на научные исследования, работу с мультимедиа, безопасность и так далее.

2) При переходе предприятия на Linux обычно используется один дистрибутив. Это сделано для унификации ПО и уменьшения возможных проблем. Вероятно, в России в бюджетных учреждениях будут использоваться сборки отечественного производства. К сожалению, их качество пока оставляет желать лучшего.

3) При выборе дистрибутива для личного пользования ориентируйтесь не только на ваши задачи, но и на количество пользователей/активность сообщества. Чем более оно активно, тем скорее вы найдете ответы на вопросы, которые могут у вас возникнуть во время использования.


Раньше считалось, что для использования Linux необходимо владеть терминалом и программированием. Теперь это не обязательно. Да, использование терминала сильно улучшит качество вашего взаимодействия с системой, но большинство привычных обычному пользователю задач легко выполняется через графический интерфейс.

Установка многих современных дистрибутивов происходит практически в автоматическом режиме - нажатием кнопок "Далее".


В Linux вы легко найдете привычные вам браузеры и офисные программы, похожие по своему функционалу на Microsoft Office (бесплатные пакеты Open/Libre office). Для фотомонтажа можно использовать GIMP, а любители игр могут установить Steam.

Вместе с этим будьте готовы к тому, что у некоторых программ, выполняющих не самые стандартные задачи, нет аналогов под Linuх, либо функционал аналогов может отличаться. Впрочем, Wine позволяет запускать многие приложения, написанные под Windows.


Вероятно, установив офисный пакет вы обнаружите, что вам не хватает привычных шрифтов. Не впадайте в панику! Ответ на этот и большинство других вопросов есть в интернете. Решение этого вопроса займет у вас примерно 10 минут.

Использование Linux очень здорово развивает навык самостоятельного поиска и решения проблем.


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



Другие посты из серии IT для гуманитариев:

Как работают блокировки интернета?

Могут ли меня взломать, когда я использую VPN?

Как работает антивирус?

Что такое DNS?
Показать полностью 1
[моё] IT Linux Импортозамещение Open Source GNU Рисунок карандашом Пингвины Длиннопост
2
159
VladimirChursin
VladimirChursin
3 года назад
Лига программистов
Серия ИТ

OpenVPN. Инструкция по применению (копия с Хабра)⁠⁠

OpenVPN. Инструкция по применению (копия с Хабра) IT, Программирование, Разработка, VPN, Openvpn, Open Source, Linux, Системное администрирование, Длиннопост

1. Введение

Виртуальные частные сети (VPN) давно вошли в повседневную жизнь. Множество технологий и реализаций сервиса приватных сетей (как для частного применения, так и для использования внутри периметра организаций), обеспечивающих определённый уровень безопасности, доступны для использования широкому кругу ИТ-специалистов.

Не смотря на обилие технологий, предлагаю остановиться на старом добром OpenVPN (в связке с EASY-RSA). Решение от Джеймса Йонана отличается гибкостью, функциональностью, надёжностью и непрерывностью разработки на протяжении приличного временного периода. Так сказать, мастодонт от мира VPN-решений.

Спойлер — ссылка на довольно функциональное решение (ничего особенного, чистый бэкэнд), написанное на bash некоторое время назад, ждёт вас в конце публикации (в виде github-репозитория под именем «openvpn_helper»), а здесь же уделю внимание общей структуре и некоторым аспектам использования набора скриптов и OpenVPN.

***

Список необходимых компонентов (используемая ОС — AlmaLinux 8):

1) OpenVPN 2.4.12;

2) EASY-RSA 3.0.8.
=================


2. Описание общей структуры репозитория

2.1. Директория «ovpn-server»

Директория содержит файлы и поддиректории двух типов: статичные (входящие в репозитория непосредственно) и генерируемые автоматически.

Статичные:

* «main.sh» - файл, содержащий основную кодовую базу репозитория.

* «vpn.env» - основной файл конфигурации.

* «full_setup_vpn_server.sh» - скрипт полной установки VPN-сервера. После запуска исполняет следующие действия:

1) инициация структуры файлов/директорий для управления ключами easyrsa («./easyrsa init-pki»);

2) создание корневого сертификата («./easyrsa build-ca»);

3) генерация ключа Диффи-Хелмана («./easyrsa gen-dh»);

4) создание запроса на выпуск сертификата VPN-сервера («./easyrsa gen-req vpn-server»);

5) импорт и подписание сертификата VPN-сервера («./easyrsa sign-req server vpn-server»);

6) генерация списка отозванных сертификатов («./easyrsa gen-crl»);

7) генерация секретного ключа ta.key («/usr/sbin/openvpn --genkey --secret "$PKI_DIR/ta.key"»), используемого как на стороне сервера, так и на стороне клиента. Необходим для обеспечения дополнительного уровня безопасности (защищает от сканирования прослушиваемых VPN-сервером портов, переполнения буфера SSL/TLS, DoS-атак и flood-атак, а также вводит дополнительный механизм аутентификации между сервером и клиентом);

8) генерация файла конфигурации для VPN-сервера, вспомогательных скриптов и файлов со справочной информацией;

9) копирование всех необходимых сертификатов и файлов конфигурации, необходимы для работы VPN-сервера, в директорию «/etc/openvpn/server».

* «create_cli_cert_and_conf.sh» - скрипт генерации клиентского набора сертификатов и файла конфигурации.

* «revoke_client_cert.sh» - скрипт отзыва клиентских сертификатов.

* «gen_crl_and_restart_ovpn.sh» - скрипт генерации CRL-сертификата (Certificate Revocation List или список отозванных сертификатов), содержащего сведения о всех отозванных клиентских сертификатах (отозванных посредством «revoke_client_cert.sh»). Скрипт необходимо запускать каждый раз после отзыва клиентского сертификата.

* «get_client_cert_expire_info.sh» - скрипт проверки клиентских сертификатов на предмет устаревания.

* «get_server_cert_expire_info.sh» - скрипт проверки серверных сертификатов на предмет устаревания.

Файлы и директории, формируемые на этапе полной установки VPN-сервера (full_setup_vpn_server.sh):

* директория «pki_root/pki» - содержит развёрнутую структуру файлов/директорий для управления ключами easyrsa. Краткое описание файлов/директорий структуры:

1) certs_by_serial — директория хранения выпущенных сертификатов (в рамках данной структуры pki), ранжированных по серийным номерам;

2) issued — директория хранения выпущенных сертификатов, ранжированных по имени (CN);

3) private — директория хранения закрытых ключей (в т.ч. и закрытого ключа корневого сертификата) к соответствующим сертификатам;

4) renewed — директория хранения обновлённых сертификатов. В рамках «openvpn_helper» не используется.

5) reqs — директория хранения запросов на выпуск сертификатов.

6) revoked — директория хранения отозванных запросов/сертификатов/закрытых ключей;

7) ca.crt — корневой сертификат;

8) crl.pem — список отозванных сертификатов;

9) dh.pem — ключ Диффи-Хеллмана;

10) index.txt — актуальная база данных всех сертификатов в рамках данной структуры управления ключами/сертификатами;

11) index.txt.attr — содержит параметр «unique_subject = yes», запрещающий создание сертификатов с одинаковыми именами до процедуры отзыва;

12) index.txt.attr.old — предыдущее значение параметра index.txt.attr;

13) index.txt.old — предыдущее содержание базы данных сертификатов index.txt. Изменяется, например, после отзыва клиентского сертификата);

14) openssl-easyrsa.cnf — стандартные для данной структуры параметры с указанием имён переменных, которые возможно переопределить через переменные окружения;

15) safessl-easyrsa.cnf — содержание аналогично файлу openssl-easyrsa.cnf, но с указанием конкретных значений;

16) serial — используется для промежуточного хранения серийного номера генерируемого сертификата до момента его подписания. После подписания серийный номер перемещается в файл “serial.old”;

17) serial.old — содержит серийный номер последнего сгенерированного (и подписанного) сертификата;

18) ta.key — секретный ключ для реализации tls-аутентификации.

* «RESTART_OVPN-$VPN_SERVER_NAME_S.sh» (где VPN_SERVER_NAME_S - параметр из vpn.env) - скрипт перезапуска экземпляра OpenVPN, основанного на конфигах и сертификатах, сгенерированных посредством «full_setup_vpn_server.sh» (на основе файла конфигурации «vpn.env», расположенного в текущей директории).

* «SET-STATIC-IP-FOR-CLIENTS.txt» - заполняется в формате «username,ip-address», если требуется, чтобы клиентам VPN-сервера выдавались статичных ip-адреса. После внесения изменений необходимо запустить скрипт «RESTART»

* «STOP_OVPN-$VPN_SERVER_NAME_S.sh» (где VPN_SERVER_NAME_S — параметр из vpn.env) — полный останов VPN-сервера.

* «README_MAIN.txt» - краткая инструкция об использовании VPN-сервера.

* «README-user-management.txt» - памятка об управлении пользователями. Возможность коннекта к VPN (помимо сертификатов) ограничивается локальными УЗ, созданными на хосте и состоящими в определённой группе пользователей.

* «readme-firewalld-rules.txt» - памятка о настройке файервола (firewalld).

* «readme-selinux-rules.txt» - памятка о конфигурации selinux.

* «SAVED_CERT_PASSWORDS.txt» - сохранённые пароли (от корневого сертификата и сертификата VPN-сервера).

Файлы и директории, формируемые на этапе генерации клиентских сертификатов (create_cli_cert_and_conf.sh):

* директория «cli_certs» - содержит поддиректории вида «CLIENT_CERT_NAME-files», где расположен набор клиентских конфигов и сертификатов, а также архив для передачи пользователю.
=================


2.2. Директория «run_if_dnsmasq_is_not_installed»

Скрипт «run.sh». Простой скрипт, осуществляющий установку сервиса dnsmasq.

Файл конфигурации «dnsmasq.conf». Содержит пример конфигурации сервиса без вышестоящих dns-серверов.


Для использования DNS-сервера, установленного на хосте с OpenVPN, необходимо подкорректировать правила firewalld. Рекомендации по настройке смотреть в файле «readme-firewalld-rules.txt» (после развёртывания VPN-сервера).

=================


2.3. Директория «run_if_openvpn_is_not_installed»

Скрипт «run.sh» устанавливает необходимый для работы VPN набор софта: dnf-репозиторий «epel-release», openvpn, easy-rsa.

=================


2.4. Директория «run_if_selinux_enabled»

Директория содержит 2 файла:

* selinux-модуль «ovpn_mod0.te»;

* скрипт «run.sh», устанавливающий пакет «selinux-policy» и применяющий selinux-модуль «ovpn_mod0».

=================


2.5. Директория «run_if_zip_is_not_installed»

Скрипт «run.sh» устанавливает zip-архиватор, используемый при создании архивов для передачи конечному пользователю.

=================


2.6. Файл-инструкция «if_need_another_vpnserver_on_this_host.txt»

Документ, кратко описывающий алгоритм развёртывания второго (и последующих) VPN-сервисов на одном и том же хосте.

Алгоритм таков (для примера):

1) создаём директорию, например, «ovpn-server0»;

2) переносим в неё содержание директории «ovpn-server» (исключения: cli_certs, pki_root);

3) редактируем в директории «ovpn-server0» файл «vpn.env», уделяя особое внимание параметрам: VPN_SERVER_NAME_S,

VPN_PORT_S,

VPN_NETWORK_S,

VPN_DHCP_IP_S,

VPN_INTERNAL_NETWORK_ROUTE_S,

VPN_NETWORK_MASQUERADE_SRC_S,

VPN_INTERNAL_NETWORK_MASQUERADE_DST_S,

VPN_INTERNAL_IP_DEV_NAME_S,

VPN_SERVER_INT_FIREWALLD_ZONE_S,

VPN_PORT_CL;

4) из директории «ovpn-server0» запускаем скрипт «full_setup_vpn_server.sh».
=================

2.7. Скрипт «run_first.sh»

Разрешает форвардинг (перенаправление) трафика ipv4, что важно для осуществления доступа из VPN-сети в интранет.

=================


3. Описание основного файла конфигурации vpn.env


Параметры, относящиеся только к генерации сертификатов и конфига (например, «/etc/openvpn/server/server.conf») VPN-сервера (full_setup_vpn_server.sh):

* VPN_CONF_DIR_S — директория хранения файлов конфигурации OpenVPN. Дефолтное значение - «/etc/openvpn/server».

* VPN_SERVER_NAME_S — имя VPN-сервера в контексте возможности запуска нескольких экземпляров VPN в зависимости от имени файла конфигурации. Желательно, чтобы этот параметр совпадал с частью (ovpn-XXX) имени директории, где расположен файл «vpn.env»).

* IP_VPN_SERVER_S — ip-адрес интерфейса, смотрящего в Интернет.

* VPN_PORT_S — порт интерфейса, смотрящего в Интернет. Должен быть уникален, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_SERV_LOG_DIR_S — директория размещения логов VPN-сервера. Значение по умолчанию - /var/log/openvpn.

* VPN_MAX_CLIENTS_S — максимальное количество клиентов VPN-сервера. В топологии «subnet» при использовании подсети для VPN с маской 24 (или 255.255.255.0) максимально возможное кол-во клиентов равно 83. Значение по умолчанию — 32.

* VPN_NETWORK_S — описание VPN-сети в формате «SUBNET SUBNET-mask». Значение по умолчанию - «172.16.10.0 255.255.255.0». Должно быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_DHCP_IP_S — адрес встроенного DHCP. Значение по умолчанию — 172.16.10.1. Должен быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_INTERNAL_NETWORK_ROUTE_S — маршрут до интранета (параметр передаётся клиентам VPN-сервера при подключении), к которой необходим доступ из VPN-сети. Заполнять в соответствии с конкретными параметрами вашей сети.

* VPN_SERVER_LOG_LEVEL_S — уровень логирования VPN-сервера. Значение по умолчанию — 0.

* VPN_NETWORK_MASQUERADE_SRC_S — описание подсети VPN-сервера, необходимое при отправке директив фаерволу (firewalld). Должно быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_INTERNAL_NETWORK_MASQUERADE_DST_S — описание внутренней подсети, необходимое при отправке директив фаерволу (firewalld).

* VPN_INTERNAL_IP_DEV_NAME_S — имя интерфейса, смотрящего во внутреннюю сеть.

* VPN_TUN_DEV_NAME_S — имя интерфейса, используемого при старте VPN-сервера. Должен быть уникальным в случае, если в рамках одного хоста настроено более одного VPN-сервера.

* VPN_SERVER_INT_FIREWALLD_ZONE_S — зона фаервола, к которой должны принадлежать интерфейсы:

а) VPN_TUN_DEV_NAME_S;

б) VPN_INTERNAL_IP_DEV_NAME_S;

в) интерфейс, являющийся дефолтовым гейтвэем для VPN-сервера.

Пункт (в) необходим только в том случае, если VPN-сервер предполагается использовать как шлюз по умолчанию для VPN-клиентов.

Параметры, относящиеся только к генерации клиентских сертификатов и конфига (create_cli_cert_and_conf.sh):

* IP_VPN_SERVER_CL — белый (и статичный) ip-адрес (или доменное имя), к которому необходимо обратиться VPN-клиенту для доступа к интрасети.

* VPN_PORT_CL — соответствующий порт для параметра IP_VPN_SERVER_CL.

* VPN_CLI_LOG_DIR_LINUX_CL — директория хранения лог-файлов, если клиент VPN-сервера — это хост с ОС Linux.

* VPN_CLI_LOG_LEVEL_CL — уровень логирования VPN-клиента.

Параметры EASY-RSA (используются как при генерации сертификатов как для VPN-сервера, так и для клиента):

* EASY_RSA_DIR_C — место расположения исполняемого файла easyrsa. Дефолтовое значение - /usr/share/easy-rsa/3.

* EASYRSA_CERT_EXPIRE_EV — время устаревания (в днях) выпущенных сертификатов (в т.ч. и корневого). Дефолтовое значение — 3654 дней (10 лет).

* EASYRSA_CRL_DAYS_EV – время устаревания (в днях) списка отзыва сертификатов (CRL). Дефолтовое значение — 3654 дней (10 лет).

* EASYRSA_KEY_SIZE_EV – размер ключа шифрования.

* EASYRSA_REQ_COUNTRY_EV – страна.

* EASYRSA_REQ_PROVINCE_EV – область.

* EASYRSA_REQ_CITY_EV – город.

* EASYRSA_REQ_ORG_EV – организация.

* EASYRSA_REQ_OU_EV – подразделение организации.

* EASYRSA_REQ_CN_EV – имя сервера.

* EASYRSA_REQ_EMAIL_EV – email-адрес администратора.

=================


4. Заключение

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

Если удалить клиентский сертификат из директории «issued» (структура управления ключами easyrsa), то его отзыв (посредством команды revoke) при компрометации окажется недоступным, что создаёт вероятность использования такого сертификата злоумышленниками. И в этом случае единственным вариантом обезопасить интранет от посторонних глаз — перевыпуск корневого сертификата, что влечёт за собой необходимость перевыпуска остальных сертификатов.

Логично было бы генерировать не список отозванных сертификатов (CRL), а список актуальных сертификатов (например, Cert Actual List), но, видимо, разработчики OpenVPN (а также Easy-RSA), когда-то решили иначе, что создаёт необходимость очень тщательно следить за всеми выпущенными/отозванными сертификатами.


Ссылка на репозиторий "openvpn_helper"

Показать полностью
[моё] IT Программирование Разработка VPN Openvpn Open Source Linux Системное администрирование Длиннопост
22
29
cusdeb
cusdeb
3 года назад
GNU/Linux

Заметка о том, как принадлежность кода лагерю "правильных" лицензий важнее функциональности⁠⁠

Я хочу поделиться с вами одним наблюдением, которое я сделал при изучении отчета о развитии FreeBSD за 4-й квартал 2021-го и за 4-й квартал 2020-го, но сперва небольшая вводная часть.

При разработке свободных и открытых операционных систем нередко функциональность приносится в жертву лицензионной чистоте. К примеру, Проект Debian разрабатывает по-настоящему свободный дистрибутив GNU/Linux (что бы Фонд СПО не говорил). Нередко случается так, что программное обеспечение, исходный код которого распространяется под той или иной свободной лицензией, содержит несвободные компоненты. В таких случаях перед попаданием в Debian все несвободные компоненты выкидываются из этого ПО. Ядро Linux, которое аж с 1996-го «привязано» к бинарным блобам, здесь не исключение, но ценой его освобождения является сокращение количества поддерживаемого оборудования.

Во FreeBSD есть похожая тенденция, когда компоненты операционной системы проходят отбор на соответствие определенным условиям распространения, и функциональность в этом отборе, также как и в Debian, имеет не самый высокий приоритет. Для того чтобы стать частью FreeBSD, компоненты должны распространяться на условиях любой свободной лицензии, за исключением GPL. Предпочтение отдается BSD и другим пермиссивным (разрешительным) лицензиям. Но так было не всегда. Было время, когда компоненты, распространяющиеся на условиях GPL, мирно сосуществовали со всеми остальными в базовой системе FreeBSD, но с приходом GPLv3 в 2007-м все изменилось – разработчики FreeBSD стали одержимы поиском и созданием замен для различных частей операционной системы, распространявшихся на условиях GPL. Так, на протяжении следующих десяти лет они работали в этом направлении. (О том, откуда нелюбовь к GPL берет свое начало, я рассказал в отдельной статье, а также в ролике, который вы найдете в конце этой заметки.) В отчете за 4-й квартал 2020-го разработчики похвастались, что у них это, наконец, получилось. Но позднее, из отчета за 4-й квартал 2021-го, стало ясно, что, выкинув из базовой системы отладчик GNU GDB, разработчики теперь по нему скучают, т.к. заменивший его LLDB не достаточно функционален для полноценной отладки ядра операционной системы. Действительно, одно дело заменить GNU Grep на альтернативу, распространяющуюся на условиях BSD, а другое дело найти полнофункциональные аналоги для фундамента разработки самой операционной системы – GCC и GDB. Но разработчики не сдаются – теперь их значительные усилия направлены на доведения LLDB до паритета в функциональности с GDB.

Многолетняя борьба разработчиков FreeBSD подходит к успешному завершению (об этом я надеюсь узнать уже из отчета за 1-й квартал 2022-го). Я, в свою очередь, продолжаю изучать квартальные отчеты некоммерческих организаций, занимающихся разработкой свободного и открытого ПО, вдохновляться упорством, с которым люди идут к поставленным целям, и делиться своими наблюдениями.

Показать полностью 1
[моё] Разработка Freebsd Debian Linux Gpl Open Source Free Software Видео YouTube
2
gimilot256
3 года назад
GNU/Linux

Свой дистрибутив linux⁠⁠

Я хочу создать свой дистрибутив linux с zsh dwm pipewire и ещё кое с чем(но вышеперечисленного достаточно), может кто-нибудь скинуть не redhat дистрибутив с этим всем, или скинуть статью как создать свой. Я знаю C, C++, Python если это нужно

Linux Open Source Текст Юмор
50
167
Timeweb.Cloud
Timeweb.Cloud
3 года назад
GNU/Linux
Серия IT

Можно ли быть немножко беременным, или Российское проклятье Open Source⁠⁠

Ровно два года назад, в апреле 2019 года, произошло знаменательное событие для всех сторонников свободного и открытого ПО, которые следят за Российскими новостями. АО «МЦСТ» "опубликовало" ОС Эльбрус для свободного скачивания. И несмотря на некоторые сложности в самом начале из-за возникшего ажиотажа, этот дистрибутив остается в свободном доступе по сей день и даже продолжает периодически обновляться.


На текущий момент доступны для скачивания версии «Эльбрус Линукс» 6.0.0 на базе ядра Linux 5.4 и версии 5.0-rc3 и 4.0.4 на базе ядра Linux 4.9.

Можно ли быть немножко беременным, или Российское проклятье Open Source Компьютерное железо, Эльбрус, Linux, Open Source, Законодательство в IT, Длиннопост, IT

Я специально написал слово «опубликован» в кавычках, т.к. на тот момент исходные тексты дистрибутива Эльбрус Линукс в свободном доступе отсутствовали. Два года назад в разговоре с CNews директор по маркетингу МЦСТ Константин Трушкин сообщил, что

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

Разные пакеты ПО выпускались МЦСТ под различными открытыми лицензиями, и под ними же будет происходить распространение исходных кодов.

Раскрывая исходные коды, компания преследует маркетинговые цели, связанные с продвижением продуктов МЦСТ, а также стремится расширить комьюнити разработчиков ПО под ОС «Эльбрус».

Так где можно получить исходники «Эльбрус Линукс»?

Если кратко — нигде. «Обещать не значит жениться» и по прошествии двух лет, исходные коды «Эльбрус Линукс» так и не были опубликованы и не предоставляются по первому запросу, как того требует условия использования кода под GPL лицензией.

Как написали в комментариях к одной из новостей про новую версию «Эльбрус Линукс»,

Ну, и с чисто прагматической точки зрения, несоблюдение GPL российскими компаниями на данный момент скорее всего не имеет никаких юридических последствий, тогда как несоблюдение требований товарища майора грозит неиллюзорными уголовными сроками. Причём договориться о публикации исходников можно, например, с майором ВС, а придёт за тобой майор ФСБ, который не является правообладателем, но чутко бдит.

Конечно хорошо, что хоть некоторые разработчики осознают, что данные действия нарушают условия GPL лицензии, но и сделать с этим они ничего не могут, т.к. одно дело — чьи-то права там, а ведь ты сам и твоя семья тут.

Поэтому вот так и выходит, нарушение GPL лицензии вроде бы как немножко есть, но и стыдить за это АО «МЦСТ» при таких обстоятельствах бессмысленно, т.к. нарушение происходит не по своей воле и объясняется строгостью защиты государственной тайны.

Правда, говорят, что под грифом секретности находятся не сами исходные тексты «Эльбрус Линукс», а только набор инструкций микропроцессора «Эльбрус», но это отнюдь не упрощает публикацию исходников ОС, которые все так же передаются только юридическим лицам с лицензиями от регуляторов и под подписку о не разглашении.

Набор разработчика «Эльбрус Линукс» (PDK)

Комплект исходных текстов, патчей и инструментов сборки прикладных пакетов дистрибутива «Эльбрус Линукс».

- ТВГИ.00333-02 «Система программирования и окружение сборки» — Кросс-компилятор, необходимые библиотеки и заголовочные файлы для сборки программных пакетов на x86-компьютерах для архитектур Эльбрус, SPARC, x86.

- ТВГИ.00333-03 «Патчи» — Инструкции для автоматизированной корректировки исходного кода программных пакетов (ТВГИ.00333-05) для совместимости с системой программирования платформы Эльбрус.

- ТВГИ.00333-04 «Инструменты сборки» — Кросс-платформенная система сборки Any.

- ТВГИ.00333-05 «Оригинальные исходные тексты» — Авторские варианты исходных текстов прикладных программных пакетов, которые корректируются патчами (ТВГИ.00333-03) в ходе автоматизированной сборки.

Набор исходных текстов прикладных пакетов (ТВГИ.00333-05) и набор патчей (ТВГИ.00333-03) по составу и номерам версий соответствуют той версии дистрибутива «Эльбрус Линукс» (ТВГИ.00333-01), вместе с которой выпущен набор разработчика.

Ядро Linux, система программирования и математическая библиотека EML не входят в набор прикладных пакетов (ТВГИ.00333-05) и набор патчей (ТВГИ.00333-03). Их исходные тексты можно получить только по отдельному официальному запросу (кроме компилятора — его исходные тексты не выдаются).

А самое интересное, что можно сколько угодно выпускать железо для оборонки, но если производитель все же хочет выходить на гражданский рынок (В России выпустили «гражданский» отечественный планшет на процессоре «Эльбрус»), то невыполнение условий GPL лицензии не только минусует ему карму в глазах СПО сообщества, но и является нарушением законодательства.


Тем не менее, недавно нашлись самоотверженные люди, которые путем реверс-инжиниринга системы команд процессора и с помощью доступной документации смогли подготовить набор патчей к QEMU и опубликовали раннюю версию неофициального эмулятора архитектуры Эльбрус 2000.

На данный момент эмулятор поддерживает только 64-битные программы, скомпилированные под Linux. Реализованы почти 80% набора инструкций Эльбрус-8С.

Может показаться, что это небольшой шаг вперед к раскрытию секретного набора команд процессора Эльбрус. Но мне кажется, что в данной ситуации очень большая удача уже в том, что ребятам не предъявлены обвинения в разглашении государственной тайны или в каком-нибудь неправомерном доступе к охраняемой информации. И причем информации не абы какой, а от которой зависит обороноспособность страны!

Но в этой ситуации странно немного другое. Совсем недавно на Хабре была статья, что китайская компания Loongson Technology разработала с нуля новую процессорную архитектуру.


По сути, китайский процессор Loongson, это аналог российского «Эльбруса». Конечно архитектура и система команд этих процессоров различаются, но они являются аналогами по своему прямому назначению — обеспечение технологической независимости страны от технологий потенциального противника.

Вот только в Китае не делают из этого государственной тайны! Как в комментариях к той статье написали:

В Китае уже формируют альянс «Автономных командных систем». Члены альянса смогут использовать набор инструкций LoongArch бесплатно. Члены альянса могут получить проекты ядра процессора Loongson бесплатно. А руководство по процессору Loongson 3A4000 на китайском лежит в открытом доступе.

Проверил, действительно лежат: www.loongson.cn/product/cpu/3/3A3000.html. Техническая спецификация на микропроцессор и руководство пользователя в двух частях (правда на китайском).


Неужели в Китае не понимают, что они открывают систему команд и для потенциального противника? Или может быть административные ограничения для получения технических спецификаций микропроцессора и передача исходников под NDA требуется не для защиты обороноспособности страны, а для каких-то других целей?


Ведь у любой медали есть две стороны. Последствия закрытости «Эльбруса» для разработчиков очень хорошо описаны на Хабре про российское импортозамещение на практике. Это своего рода плач Ярославны, смысл которого передается всего двумя абзацами:


Не буду повторяться в тысячный раз, что такое отечественное производство микропроцессоров, почему «Эльбрус», а не «Байкал» и т.д. Об этом были написаны уже километры текста. Речь пойдет о другом – почему так трудно перейти на «Эльбрус» и в чем заключаются эти сложности. Ну, помимо стоимости…

Подводя итог, могу сказать следующее: до тех пор, пока не будет разорван цикл «будут продажи – будет софт, будет софт – будут заказы», с мертвой точки ничего не сдвинется. Будут компании с долей госкапитала закупать «Эльбрусы», но приведет это лишь к тому, что ПАКи будут выполнять роль подпорок для столов и тумбочек, как это происходит сейчас. Они просто пылятся на складах, потому что закупившие их компании просто не понимают, что с ними делать.

Можно долго ссылаться на различные причины, которые мешают выполнить условия GPL лицензии. А можно хотя бы попытаться разрубить этот гордиев узел. Неужели нельзя с помощью профильных ИТ ассоциаций поднять вопрос на самый верх? Вдруг случится чудо и цифровизация экономики принесет реальную пользу в данном случае?

Автор: Александр Рябиков

Оригинал: https://habr.com/ru/company/timeweb/blog/554858/

Показать полностью 1
[моё] Компьютерное железо Эльбрус Linux Open Source Законодательство в IT Длиннопост IT
60
Партнёрский материал Реклама
specials
specials

А сколько у вас?⁠⁠

Вы когда-нибудь считали, сколько экономите с вашим кешбэком и скидками? Предлагаем провести небольшие вычисления (потому что считать выгоду всегда приятно).

Реклама Реклама. ПАО «Банк ВТБ», ИНН: 7702070139

Калькулятор Выгода
23
mknews
mknews
3 года назад
IT-юмор

Рассказываю другу как установить Arch⁠⁠

Сообщество Linux Club

Linux Open source Видео
15
Посты не найдены
О нас
О Пикабу Контакты Реклама Сообщить об ошибке Сообщить о нарушении законодательства Отзывы и предложения Новости Пикабу Мобильное приложение RSS
Информация
Помощь Кодекс Пикабу Команда Пикабу Конфиденциальность Правила соцсети О рекомендациях О компании
Наши проекты
Блоги Работа Промокоды Игры Курсы
Партнёры
Промокоды Биг Гик Промокоды Lamoda Промокоды Мвидео Промокоды Яндекс Директ Промокоды Отелло Промокоды Aroma Butik Промокоды Яндекс Путешествия Постила Футбол сегодня
На информационном ресурсе Pikabu.ru применяются рекомендательные технологии