gladilov.org.ru gladilov.org.ua

74 заметки с тегом

сисадминство

Всякие системные и просто нужные компьютерные фичи. Настройка софта, иногда восстановление железа, и прочее, что входит в сферы интересов от эникейшика до «full stack admin’а». В придачу — симулятор системного администратора.



31 июля   досуг   интересное   праздник   сисадминство

Установка GUI на BSD

Часто для моих «изысканий» нужно установить графическую подсистему и рабочую среду на BSD-подобную ОСь. Обычно выбираю окружение Xfce как лёгкое, доступное и универсальное. Минутка рекламы:

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

Установку произвожу так: Показать

На  FreeBSD 11.4:

# pkg update
# pkg install xorg xfce

На  NetBSD 7.1:

# export PKG_PATH=ftp://ftp.netbsd.org/pub/pkgsrc/packages/NetBSD/`uname -m`/`uname -r`/All
# pkg_add -v pkgin
# pkgin update
# pkgin install xfce


Задача решена

В конце «причёсываю» систему:

# pkgin install sudo bash mc
# useradd -m -G wheel soul
# passwd soul
# chsh -s `which bash` soul

Для старта иксов запускаю

startx

или прописываю в ~/.xinitrc:

startxfce4

P. S. Заметка из кровавых подвалов 2018 года, решил чуть дополнить и опубликовать из черновиков.

Нужные ссылки:
https://www.freebsd.org/doc/handbook/x11-wm.html
https://www.freebsd.org/doc/ru_RU.KOI8-R/books/handbook/x11-wm.html

17 июня   BSD   досуг   маленькие хитрости   ОС   сисадминство   софт

Проверка раздела в образе диска

Часто сталкиваюсь с ситуацией, когда при попытке запуска в  QEMU виртуалки с образа диска (в основном IMG) возникает ошибка Kernel panic — not syncing: Attempted to kill init!: Показать

Пример ошибки:

sd 0:0:0:0: [sda] Attached SCSI disk
smc91x.c: v1.1, sep 22 2004 by Nicolas Pitre <nico@fluxnic.net>
eth0: SMC91C11xFD (rev 1) at d089a000 IRQ 25 [nowait]
eth0: Ethernet addr: 52:54:00:12:34:56
mousedev: PS/2 mouse device common for all mice
TCP cubic registered
NET: Registered protocol family 17
input: AT Raw Set 2 keyboard as /devices/fpga:06/serio0/input/input0
input: ImExPS/2 Generic Explorer Mouse as /devices/fpga:07/serio1/input/input1
EXT2-fs (sda2): error: couldn't mount because of unsupported optional features (244)
EXT4-fs (sda2): couldn't mount as ext3 due to feature incompatibilities
EXT4-fs (sda2): recovery complete
EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null)
VFS: Mounted root (ext4 filesystem) on device 8:2.
devtmpfs: mounted
Freeing init memory: 120K
Kernel panic - not syncing: Attempted to kill init!
[<c0032bec>] (unwind_backtrace+0x0/0xf0) from [<c03064dc>] (panic+0x58/0x170)
[<c03064dc>] (panic+0x58/0x170) from [<c0044054>] (do_exit+0x5d0/0x68c)
[<c0044054>] (do_exit+0x5d0/0x68c) from [<c004435c>] (do_group_exit+0x40/0xb0)
[<c004435c>] (do_group_exit+0x40/0xb0) from [<c004ed48>] (get_signal_to_deliver+0x1a8/0x378)
[<c004ed48>] (get_signal_to_deliver+0x1a8/0x378) from [<c002f124>] (do_signal+0x90/0x518)
[<c002f124>] (do_signal+0x90/0x518) from [<c002fa64>] (do_notify_resume+0x48/0x54)
[<c002fa64>] (do_notify_resume+0x48/0x54) from [<c002cc38>] (work_pending+0x24/0x28)

Вероятно, эта ошибка возникает при отсутствии флага проверки файловой системы (возможно, в корне ФС лежит пустой файл с именем /forcefsck). Борюсь с этим так. Командой fdisk получаю сектор начала ФС (допустим — 217156), умножаю его на размер сектора (обычно 512 байт) и получаю смещение (в данном примере — 111183872 байт). С этим смещением монтирую на спецдевайс /dev/loop0 IMG-файл. Провожу проверку с лечением возможных повреждений ФС, затем убираю монтирование спецдевайса.

sudo fdisk -l <имя образа>.img
sudo losetup -o <смещение * 512> /dev/loop0 <имя образа>.img
sudo fsck -fv /dev/loop0
sudo losetup -d /dev/loop0

Источники:
http://web.archive.org/web/20161224011451/http://blog.3mdeb.com/2015/12/30/emulate-rapberry-pi-2-in-qemu/
https://raspberrypi.stackexchange.com/questions/40854/kernel-panic-not-syncing-vfs-unable-to-mount-root-fs-on-unknown-block179-6

10 июня   Debian   Linux   досуг   маленькие хитрости   мну   ОС   сисадминство   софт

Исправление ошибки dpkg о не найденном ldconfig

У меня есть старая железка с  DebWrt 2.0 на борту, вот такая:
 D-Link DIR-320/A2E

При выполнении команд apt-get получил предупреждения о том, что ldconfig и start-stop-daemon не найдены по пути поиска или не являются исполняемыми файлами (у меня русская локаль, поэтому системные сообщения выводятся на русском): Показать

# apt-get install debian-keyring
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Следующие пакеты устанавливались автоматически и больше не требуются:
  wwwconfig-common libjs-mootools javascript-common
Для их удаления используйте 'apt-get autoremove'.
НОВЫЕ пакеты, которые будут установлены:
  debian-keyring
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 4 п                                                                                                                                                              акетов не обновлено.
Необходимо скачать 31,1 MБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 35,8 M                                                                                                                                                              B.
ВНИМАНИЕ: Следующие пакеты невозможно аутентифицировать!
  debian-keyring
Установить эти пакеты без проверки [y/N]? y
Получено:1 http://archive.debian.org/debian/ squeeze/main debian-keyring all 201                                                                                                                                                              0.12.29 [31,1 MB]
Получено 31,1 MБ за 41с (745 kБ/c)
dpkg: предупреждение: «ldconfig» отсутствует в каталогах, перечисленных в PATH,                                                                                                                                                               или не является исполняемым.
dpkg: предупреждение: «start-stop-daemon» отсутствует в каталогах, перечисленных                                                                                                                                                               в PATH, или не является исполняемым.
dpkg: предупреждение: «update-rc.d» отсутствует в каталогах, перечисленных в PAT                                                                                                                                                              H, или не является исполняемым.
dpkg: В каталогах, перечисленных в PATH, отсутствуют или не являются
исполняемыми 3 необходимых программы.
NB: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin,
/usr/sbin и /sbin.
E: Sub-process /usr/bin/dpkg returned an error code (2)
#

Для исправления этого, по совету отсюда и отсюда, я добавил в файл /root/.bashrc такую строку:

export PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin


Задача решена

UPD: Для самых слабых умом, которые (как и я) гуглят ошибку, а не читают системные месседжи до конца: достаточно было бы добавить к переменной PATH просто путь /sbin, так как оба бинарника лежат там. Ну и сообщение в конце вывода какбэ намекает: 

NB: В PATH суперпользователя обычно должны присутствовать /usr/local/sbin,
/usr/sbin и /sbin.

13 мая   Debian   досуг   интересное   маленькие хитрости   ОС   роутер   сисадминство   софт

Добавление контекстного меню GIMP’а

Поставил GIMP (в  Шindoшs), захотел сделать для файлов изображений контекстное меню «Редактировать в GIMP». Для этого создал  reg-файл с таким содержимым (путь к бинарнику редактора нужно исправить на актуальный):

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\EditWithGIMP]
@="Редактировать в &GIMP"
[HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell\EditWithGIMP\command]
@="\"C:\\Program Files\\GIMP 2\\bin\\gimp-2.10.exe\" \"%1\""

После выполнения reg-файла контекстное меню появляется.

2020   досуг   маленькие хитрости   сисадминство   скрипт

Запуск виндовых команд из консоли posix-систем

Недавно возникла необходимость в том, чтобы рулить виндовым сервером в домене удалённо прямо из консоли Linux-сервера. Гугляж выдал варианты типа xfreerdp, ssh-сервера для Windows, rdesktop’а, psexec’а и winexe. Мне захотелось попробовать прикрутить winexe.

Процесс: Показать

Делал в  Debian 10 ’Buster’. Готового пакета нет, поэтому по мануалу скачал с Sourceforge файл winexe-1.00.tar.gz (в дальнейшем он не пригодился). Понаставил кучу пакетов (сразу скажу, что, возможно, половина тут — лишнее):

sudo aptitude install build-essential autoconf checkinstall python python-all python-dev python-all-dev python-setuptools libdcerpc-dev
sudo aptitude install gcc-mingw-w64 comerr-dev libpopt-dev libbsd-dev zlib1g-dev libc6-dev
sudo aptitude install comerr-dev libpopt-dev libbsd-dev zlib1g-dev libc6-dev python-dev
sudo aptitude install git python2.7 libpango1.0-0 libacl1-dev libldap2-dev libpam-dev libtevent-dev python2.7-dev python3.7 samba-dev libgnutls28-dev libgpgme11-dev libjansson-dev libarchive-dev
sudo aptitude install acl attr bind9utils bison debhelper dnsutils flex gdb krb5-user libaio-dev libblkid-dev libcap-dev libcups2-dev libjson-perl libncurses5-dev libreadline-dev nettle-dev perl-modules python-all-dev python-crypto python-dbg python-dnspython python3-dnspython python-markdown python3-markdown python3-dev xsltproc zlib1g-dev liblmdb-dev lmdb-utils

Выполняю

tar xzvf winexe-1.00.tar.gz
cd winexe-1.00/source4
./autogen.sh
/configure
make basics bin/winexe

На последней команде получаю ошибку:

Creating heimdal/lib/asn1/der-protos.h
syntax error at heimdal/cf/make-proto.pl line 15, near "do Getopts("
Execution of heimdal/cf/make-proto.pl aborted due to compilation errors.
make: *** [data.mk:197: heimdal/lib/asn1/der-protos.h] Ошибка 255

Подхожу у кроблеме с другой стороны. Клонирую гитом самбу и всё делаю в ейных исходниках (для этого и установил кучу пакетов):

cd ~
git clone git://git.samba.org/samba.git ~/samba
cd ~/samba
./configure
make bin/winexe

В ~/samba/bin/default/examples/winexe/ скомпилился бинарник winexe, использую его по назначению:

winexe -U <домен>/<логин>%<пароль> //<windows-хост> "команда"

Очздорова! Показать

P. S. Проблему с кодировкой думаю решить с помощью установки кодовой страницы по умолчанию по этому мануалу и использования перекодировщика luit из пакета x11-utils. У себя попробовал — работает: Показать

Источники:
https://wiki.samba.org/index.php/Package_Dependencies_Required_to_Build_Samba
https://www.aldeid.com/wiki/Winexe
https://ru.stackoverflow.com/questions/339012/Как-подружить-luit-и-cp866
https://superuser.com/questions/269818/change-default-code-page-of-windows-console-to-utf-8
https://superuser.com/questions/387569/how-do-i-permantly-set-the-command-prompt-codepage-in-windows-7

2020   Linux   маленькие хитрости   работа   сисадминство   софт

Huawei развивает протокол NEW IP для сетей будущего

Компания Huawei совместно с исследователями из Университетского колледжа Лондона ведёт разработку сетевого протокола NEW IP, который учитывает тенденции развития телекоммуникационных устройств будущего и повсеместное распространение устройств интернета вещей, систем дополненной реальности и голографических коммуникаций. Проект изначально позиционируется как международный, в котором могут принять участие любые исследователи и заинтересованные компании. Сообщается, что новый протокол передан на рассмотрение в Международный союз электросвязи (ITU), но он будет готов для тестирования не раньше 2021 года.

Показать

Протокол NEW IP предоставляет более эффективные механизмы адресации и управления трафиком, а также решает проблему организации взаимодействия разнотипных сетей в условиях роста фрагментации глобальной сети. Всё более актуальной становится проблема обмена информацией между разнородными сетями, такими как сети устройств интернета-вещей, промышленные, сотовые и спутниковые сети, в которых могут применяться собственные стеки протоколов.

Например, для IoT сетей желательно использование коротких адресов для экономии памяти и ресурсов, промышленные сети вообще избавляются от IP для повышения эффективности обмена данными, спутниковые сети не могут использовать фиксированную адресацию из-за постоянного перемещения узлов. Частично проблемы попытаются решить при помощи протокола 6LoWPAN (IPv6 over Low power Wireless Personal Area Networks), но без динамической адресации, он не настолько эффективен, как хотелось бы.

Второй решаемой в NEW IP проблемой является то, что IP ориентирован на идентификацию физических объектов в привязке к их местоположению, и не рассчитан на идентификацию виртуальных объектов, таких как контент и сервисы. Для абстрагирования сервисов от IP-адресов предлагаются различные механизмы маппинга, которые лишь усложняют систему и создают дополнительные угрозы приватности. Как решение для улучшения доставки контента развиваются архитектуры ICN (Information-Centric Networking), такие как NDN (Named Data Networking) и MobilityFirst, предлагающие использовать иерархическую адресацию, которые не решают проблему с доступном к мобильному (перемещаемому) контенту, создают дополнительную нагрузку на маршрутизаторы или не позволяют установить end-to-end соединения между мобильными пользователями.

Третьей задачей, которую призван решить NEW IP, является тонкое управление качеством сервиса. В будущих системах интерактивной коммуникации потребуются более гибкие механизмы управления пропускной способностью, требующие применения разных методов обработки в контексте отдельных сетевых пакетов.

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

• Допускается определение разной семантики адресов. Например, помимо классического формата IPv4/IPv6, можно использовать вместо адреса уникальные идентификаторы сервиса. Данные идентификаторы обеспечивают привязку на уровне обработчиков и сервисов, не привязываясь к конкретному местоположению серверов и устройств. Идентификаторы сервисов позволяют обойтись без DNS и маршрутизировать запрос к ближайшему обработчику, соответствующему указанному идентификатору. Например, датчики в умном доме могут отправлять статистику определённому сервису без определения его адреса в классическом понимании. Адресоваться могут как физические (компьютеры, смартфоны, датчики), так и виртуальные объекты (контент, сервисы).

По сравнению с IPv4/IPv6 в плане обращения к сервисам в NEW IP отмечаются следующие преимущества: Более быстрое выполнение запроса за счёт прямого обращения по адресу сервиса без ожидания на определение адреса в DNS. Поддержка динамического развёртывания сервисов и контента — NEW IP адресует данные на основании принципа «что нужно», а не «где получить», что кардинально отличается от принятой в IP маршрутизации, основанной на знании точного местоположения (IP-адреса) ресурса. Построение сетей с оглядкой на информацию о сервисах, которая учитывается при расчёте таблиц маршрутизации.

• Возможность определения произвольных полей в заголовке IP-пакета. Заголовок допускает прикрепление идентификаторов функций (FID, Function ID), применяемых для обработки содержимого пакета, а также привязываемых к функциям метаданных (MDI — Metadata Index и MD — Metadata). Например, в метаданных может быть определены требования к качеству сервиса, в соответствии с которыми при адресации по типу сервиса будет выбран обработчик, обеспечивающий максимальную пропускную способность.

В качестве примеров привязываемых функций приводятся ограничение крайнего срока (deadline) для пересылки пакета и определение максимального размера очереди во время пересылки. Маршрутизатор во время обработки пакета будет использовать для каждой функции свои метаданные — для вышеприведённых примеров в метаданных будет передана дополнительная информация о крайнем сроке доставки пакета или максимально допустимой длине сетевой очереди.

Растиражированные в СМИ сведения о встроенных возможностях, обеспечивающих блокировку ресурсов, способствующих деанонимизации и вводящих обязательную аутентификацию, в доступной технической спецификации не упоминаются и, судя по всему, являются домыслами. Технически NEW IP лишь предоставляет больше гибкости при создании расширений, поддержка которых определяется производителями маршрутизаторов и программного обеспечения. В контексте возможности смены IP для обхода блокировок, блокировка по идентификатору сервиса может сравниться с блокировкой доменного имени в DNS.

Источники:
https://support.huawei.com/enterprise/ru/doc/EDOC1000173015
http://prod-upp-image-read.ft.com/6f569c60-7045-11ea-89df-41bea055720b
https://www.huaweiupdate.com/new-ip-a-new-standard-for-core-network/
https://itc.ua/news/kitaj-i-huawei-predlagayut-internet-protokol-new-ip-s-vozmozhnostyu-otklyucheniya-konkretnyh-adresov/
http://allunix.ru/2020/04/01/huawei-развивает-протокол-new-ip-нацеленный-на-и/
http://www.opennet.ru/opennews/art.shtml?num=52648
https://www.engadget.com/2020-03-30-china-huawei-new-ip-proposal.html

2020   в мире   досуг   интересное   интернет   сисадминство   события

Let’s Encrypt перешёл к проверке хоста из разных подсетей

Некоммерческий удостоверяющий центр Let’s Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, объявил о внедрении новой схемы подтверждение полномочий на получение сертификата для домена. Обращение к серверу, на котором размещён используемый в проверки каталог «/.well-known/acme-challenge/», теперь будет осуществляться с использованием нескольких HTTP-запросов, отправляемых с 4 разных IP-адресов, размещённых в разных датацентрах и принадлежащих к разным автономным системам. Проверка признаётся успешной только, если как минимум 3 из 4 запросов с разных IP оказались успешными.

Показать

Проверка с нескольких подсетей позволит минимизировать риски получения сертификатов на чужие домены путём проведения целевых атак, перенаправляющих трафик через подстановку фиктивных маршрутов при помощи BGP. При использовании многопозиционной системы проверки атакующему потребуется одновременно добиться перенаправления маршрутов для нескольких автономных систем провайдеров с разными аплинками, что значительно сложнее, чем перенаправление единичного маршрута. Отправка запросов с разных IP кроме того повысит надёжность проверки в случае попадания единичных хостов Let’s Encrypt в списки блокировки (например, в РФ некоторые IP letsencrypt.org попадали под блокировку Роскомнадзора).

До 1 июня будет действовать переходных период, допускающий генерацию сертификатов при успешном прохождении проверки из первичного датацентра, при недоступности хоста с остальных подсетей (например, такое может случиться, если администратор хоста на межсетевом экране разрешил запросы только с основного датацентра Let’s Encrypt или из-за нарушения синхронизации зон в DNS). На основе логов будет подготовлен белый список для доменов, у которых наблюдаются проблемы с проверкой с 3 дополнительных датацентров. В белый список попадут только домены с учётной записью в ACME с заполненными контактными данными. В случае если домен не попал в белый список автоматически заявку на помещение также можно отправить через специальную форму.

В настоящее время проектом Let’s Encrypt выдано 113 млн сертификатов, охватывающих около 190 млн доменов (год назад было охвачено 150 млн доменов, а два года назад — 61 млн). По статистике сервиса Firefox Telemetry общемировая доля запросов страниц по HTTPS составляет 81% (год назад 77%, два года назад 69%), а в США — 91%.

Дополнительно можно отметить, намерение компании Apple прекратить в браузере Safari доверие к сертификатам, время жизни которых превышает 398 дней (13 месяцев). Ограничение планируется ввести только для cертификатов, выписанных начиная с 1 сентября 2020 года. Для полученных до 1 сентября сертификатов с длительным сроком действия доверие будет сохранено, но ограничено 825 днями (2.2 года).

Изменение может негативно отразиться на бизнесе удостоверяющих центров, продающих дешёвые сертификаты с длительным сроком действия, доходящим до 5 лет. По мнению Apple генерация подобных сертификатов создаёт дополнительные угрозы безопасности, мешает оперативному внедрению новых криптостандартов и позволяет злоумышленникам длительное время контролировать трафик жертвы или использовать для фишинга в случае незаметной утечки сертификата в результате взлома.

Источник

2020   WEB-серверы   в мире   интернет   сеть   сисадминство   события   софт

Компания Paragon открыла код реализации ФС exFAT

Компания Paragon Software, поставляющая лицензированные в Microsoft проприетарные драйверы NTFS и exFAT для Linux, опубликовала в списке рассылки разработчиков ядра Linux начальную реализацию нового открытого драйвера exFAT. Код драйвера открыт под лицензией GPLv2 и временно ограничен работой в режиме только для чтения. В разработке находится вариант драйвера, поддерживающий режим записи, но он ещё не готов для публикации.

Компания Paragon Software приветствовала действия Microsoft по публикации общедоступных спецификаций и предоставления возможности безвозмездного использования патентов на exFAT в Linux, и в качестве своего вклада подготовила открытый драйвер exFAT для ядра Linux. Отмечается, что драйвер оформлен в соответствии с требованиями по подготовке кода для Linux и не содержит привязок к дополнительным API, что позволяет включить его в основной состав ядра.

Показать

В августе в экспериментальный раздел «staging» ядра Linux 5.4 («drivers/staging/»), куда помещаются компоненты требующие доработки, уже добавлен разработанный компанией Samsung открытый драйвера exFAT. При этом добавленный драйвер основан на устаревшем коде (1.2.9), требующем доработки и адаптации к требованиям по оформлению кода для ядра. Позднее для ядра был предложен обновлённый вариант драйвера Samsung, переведённый на ветку «sdFAT» (2.2.0) и демонстрирующий существенный прирост производительности, но данный драйвер пока не принят в состав ядра Linux.

Файловая система exFAT была создана Microsoft для устранения ограничений FAT32 при использовании на Flash-накопителях большого объема. Поддержка файловой системы exFAT появилась в Windows Vista Service Pack 1 и Windows XP с Service Pack 2. Максимальный размер файла по сравнению с FAT32 был расширен с 4 Гб до 16 эксабайт, устранено ограничение на максимальный размер раздела в 32 Гб, для уменьшения фрагментации и увеличения скорости введена битовая карта свободных блоков, ограничение на число файлов в одной директории поднято до 65 тыс., предусмотрена возможность хранения ACL.

Источники:
https://www.opennet.ru/opennews/art.shtml?num=51724
https://lkml.org/lkml/2019/10/18/808

2019   в мире   досуг   интересное   сисадминство   события   софт

Подбор хэшей паролей основателей Unix

В опубликованных в открытом доступе дампах исторических срезов с кодом BSD 3 в том числе присутствует и файл /etc/passwd с хэшами паролей основателей Unix. Так как пароли хэшированы методом DES, который для современной вычислительной техники не представляет проблем с подбором, энтузиасты попытались восстановить пароли, используемые основателями Unix.

Пароли почти всех основателей Unix были подобраны почти сразу. Например, пароль Брайна Кернигана представлял собой легко набираемую комбинацию «/.,/.,,», пароль Денниса Ритчи был «dmac», Кирка МакКузика — «foobar», а Стивена Борна — «bourne».

Исключение составил пароль Кена Томпсона. В 2014 году после нескольких дней вычислений пароль остался не подобранным. Несколько дней назад была предпринята ещё одна попытка и после более 4 дней подбора с использованием hashcat на системе с видеокартой AMD Radeon Vega64 пароль удалось определить (производительность подбора составила 930 миллионов хэшей в секунду). Пароль оказался «p/q2-q4!». Любители шахмат определили, что это начало ряда шахматных дебютов в описательной нотации. Кен Томпсон подтвердил данное предположение.

Источники:
https://leahneukirchen.org/blog/archive/2019/10/ken-thompson-s-unix-password.html
https://www.opennet.ru/opennews/art.shtml?num=51643
https://habr.com/ru/post/470966/

2019   в мире   досуг   интересное   ОС   сисадминство
Ранее Ctrl + ↓
Наверх