Архив рубрики: Настройка Linux

Wine 3.0 и много плюшек

На Хабре незамеченным прошел выход 3-й версии Wine — открытой реализацией Win32 API. Трудно найти другой проект с открытыми исходниками, пожалуй кроме самого ядра, который настолько много значит для пользователей Linux, MacOS, FreeBSD и других POSIX-совместимых ОС. Каждый успех разработчиков Wine знаменует множество новых игр и приложений, которые будут теперь доступны для пользователей Linux.

Wine

В этом плане Wine 3.0 явно не разочаровал: поддержка Direct3D 10 и 11, графический драйвер Android, поток команд Direct3D, реализован криптографический стандарт AES, новый уровень поддержки Direct Write и Direct2D — вот основные результаты. По итогам более 6000 внесенных правок произошло много интересного, включая переход дефолтной версии с Windows XP на Windows 7.

  • 4586 приложений с высшим, платиновым статусом. Работают без нареканий.
  • 3918 приложений с золотым статусом. При минимальных настройках и внешних DLL работают без нареканий.

Читать дальше →

[Из песочницы] OpenVpn OSPF между двумя серверами, множественные тоннели

OpenVpn достаточно хорошо документирован и на хабре есть статьи по установке, к примеру:
вот эта.

Но так, чтобы сразу несколько тоннелей, между двумя серверами и автоматической отказоустойчивостью не нашел. В моем случае, серверы на которых будет располагаться OpenVpn и OSPF оба находятся за NATом. Это несколько усложняет решение, но в основном тем, что потребуется управлять трафиком, уходящим с интерфейсов пограничного маршрутизатора.

Дано:

Два пограничных маршрутизатора Centos 7:
Читать дальше →

От Amazon EC2 до Mail.ru Infra: Тестируем облачные VPS (Linux)

С большой тройкой облачных провайдеров — Amazon, Google и Microsoft с недавних пор конкурируют и отечественные компании, хотя весомых игроков на нашем рынке немного. В основном это относительно небольшие проекты, традиционные хостеры (включая крупных) и/или операторы коммерческих ЦОДов, предлагающие облака в довесок к традиционному пакету услуг.

Ситуация начала меняться с появлением облачной платформы для бизнеса Mail.ru Cloud Solutions (MCS): российский провайдер предлагает заказчикам корпоративную почту, DNS-хостинг, файловые и объектные хранилища, виртуальную инфраструктуру и даже какие-то средства коллективной работы. Все это, разумеется, можно привязать к своему домену — в общем, практически отечественный «амазон», хотя в смысле объемов и оборотов их сравнивать сложно. А вот в плане потребительском мы все-таки попробуем это сделать.

В этом цикле статей кроме основных иностранных (Amazon, Google, Microsoft) мы возьмём заметных российских конкурентов Mail.ru: Selectel, Servers.ru и «Ростелеком», хотя они однозначно проигрывают Mail.ru в смысле набора доступных услуг — такого богатого предложения ни у кого из локальных игроков нет.

Первым делом оценим облачные VPS на Linux, будем сравнивать Infra от Mail.ru с Amazon EC2, Google Compute Engine, Microsoft Azure VM и сервисами уже упомянутых отечественных компаний: Selectel, Ростелеком и Servers.ru, локальное ответвление Servers.com с тем же предложением.
Читать дальше →

[Из песочницы] Установка Linux без .ISO и виртуализации

Установка Linux без .ISO и виртуализации

Создание файловой системы, установка и клонирование Debian и Ubuntu с помощью скриптов radish.

1. Назначение и возможности скриптов radish

Обычно установка системы Linux производится путём запуска какой-либо программы-установщика, поставляемой разработчиками дистрибутива. Это производится либо непосредственно на компьютере, на котором производится установка, либо в какой-либо изолированной среде, например, используя виртуализацию. Описываемые ниже процедуры следуют этим принципам только в самом минимально необходимом виде. При создании образа системы какие-либо установщики сводятся к генератору минимальной системы debootstrap и интерфейсу менеджера пакетов apt (оба поверх менеджера пакетов dpkg), а вместо виртуализации используется chroot.

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

Скрипты находятся на сервере Github и доступны по ссылке.

Читать дальше →

Докеризация nginx и php на сокетах с ротацией логов

В статье на Хабре обсуждался «docker way»(TM), который гласит: один контейнер — один процесс.

one process per container

Each container should have only one concern

Decoupling applications into multiple containers makes it much easier to scale horizontally and reuse containers. For instance, a web application stack might consist of three separate containers, each with its own unique image, to manage the web application, database, and an in-memory cache in a decoupled manner.

You may have heard that there should be “one process per container”. While this mantra has good intentions, it is not necessarily true that there should be only one operating system process per container. In addition to the fact that containers can now be spawned with an init process, some programs might spawn additional processes of their own accord. For instance, Celery can spawn multiple worker processes, or Apache might create a process per request. While “one process per container” is frequently a good rule of thumb, it is not a hard and fast rule. Use your best judgment to keep containers as clean and modular as possible.

If containers depend on each other, you can use Docker container networks to ensure that these containers can communicate.

Следование этому принципу при докеризации nginx чревато двумя последствиями. Настроить взаимодействие nginx и php-fpm в разных процессах через unix сокет немного сложнее, чем может показаться. И ротация логов, которая при обычной установке идет «из коробки», не может осуществляться в принципе, т.к. требует отправки сигнала USR1 nginx, для чего нужен ещё один процесс.
Читать дальше →

[Перевод] Linux-2018: самые перспективные дистрибутивы

Представляем вашему вниманию перевод статьи Джека Уоллена с linux.com, которая посвящена самым перспективным Linux-дистрибутивам 2018-го года. Примерно двенадцать месяцев тому назад мы делились с вами похожим обзором. Что изменилось за год?

image
Читать дальше →

[Перевод] Intel предупреждает пользователей о «неисправности» патчей Spectre-Meltdown

Не устанавливайте патчи от Intel для исправления уязвимостей Spectre в Linux-системах.

Intel в понедельник предупредила о том, что следует прекратить установку текущих версий патчей для Spectre (CVE-2017-5715), которые Линус Торвальдс отметил комментарием «абсолютнейший мусор».

Spectre (проверка обхода границ массива CVE-2017-5753, инъекция целевой ветви CVE-2017-5715) и Meltdown (CVE-2017-5754 — «расплавляет» разграничение доступа к страницам памяти, лечится KPTI-патчем) представляют собой уязвимости, обнаруженные исследователями в начале этого месяца во многих процессорах Intel, ARM и AMD, используемых в современных ПК, серверах и смартфонах. Они могут позволить злоумышленникам украсть ваши пароли, ключи шифрования и другую личную информацию.

С прошлой недели пользователи начали сообщать, что после установки пакета обновлений безопасности, выпущенного Intel, они столкнулись с проблемами, которых не было ранее. Например, спонтанные перезагрузки и другое «непредсказуемое» поведение системы. Читать дальше →

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже далеко и не одна? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас расприет от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье работе?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →

Защита от DDoS на уровне веб-сервера

Статистика DDoS-атак показывает неизменный рост и смещение вектора с сетевого уровня на уровень приложений.

image

Если у Вас есть небольшой сайт на сервере с минимальными характеристиками, то положить его можно любым вполне легальным средством стресс-тестирования. (Не рекомендую этого никому делать т.к. IP-адрес легко вычисляется и экспериментатор может влететь на возмещение ущерба.) Поэтому сайт без защиты от DDoS очень скоро будет выглядеть так же дико, как компьютер с Windows-98 без анивирусника.
Читать дальше →

Маршрутизация в socks. Еще один способ

Рассмотрим еще один способ маршрутизации локальной сети через «socks-прокси». В отличии от предыдущего способа с «redsocks», в этом, будет рассмотрена возможность маршрутизации на сетевом уровне (сетевой модели OSI), по средствам пакета «badvpn-tun2socks». Данная статья ориентирована на создание и постоянное использование такого маршрутизатора на базе ОС «Debian stretch».

Прежде чем перейти к описанию настройки системы, предоставлю ссылку на бинарники badvpn (может кому-то понадобится).

Итак, после скачивания и распаковки пакета, предлагаю сразу создать сервис systemd со следующим содержанием:

cat /etc/systemd/system/tun2socks.service 
[Unit]
Description=Start tun2socks
After=network.target

[Service]
ExecStart=/путь/к/badvpn-tun2socks --tundev tun0 --netif-ipaddr 10.0.0.2 --netif-netmask 255.255.255.0 --socks-server-addr 127.0.0.1:1080

[Install]
WantedBy=multi-user.target

Здесь, в параметре запуска «—socks-server-addr 127.0.0.1:1080» видно, что «tun2socks» будет направлять запросы по адресу socks-прокси сервера. (К примеру, ssh-tunnel из предыдущего способа).

Параметры «—netif-ipaddr 10.0.0.2» и «—netif-netmask 255.255.255.0«, отвечают за создание «маршрутизатора tun2socks» с адресом 10.0.0.2, на который будут приходить запросы с виртуального интерфейса, указанного в параметре «—tundev tun0«.
Для понимания, приведу скромную схему:

+----------+	+-----------+	+----------------+	+------------+
|   tun0   |____| tun2socks |___|     socks	 |______| ssh-server |
| 10.0.0.1 |	| 10.0.0.2  |	| 127.0.0.1:1080 |	| *pubic ip* |
+----------+	+-----------+	+----------------+	+------------+

«tun0» это виртуальный интерфейс, который необходимо настроить в системе, на него будут приходить запросы из локальной сети\хоста. Сделаем это стандартным для Debian способом:
Читать дальше →