Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версияСледующая версияСледующая версия справа и слева | ||
itechnology:linux [2018/02/21 11:18] – [Квадраты в терминале] jurik_phys | itechnology:linux [2024/03/01 23:59] – [Генерация сертификата и приватного ключа сервера] jurik_phys | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
====== Linux ====== | ====== Linux ====== | ||
+ | |||
+ | ===== Создание нового пользователя | ||
+ | * Новый unix-пользователь< | ||
+ | * Домашний каталог для нового пользователя < | ||
+ | * Установка владельца для домашнего каталога< | ||
+ | * Задание пароля пользователя< | ||
+ | * Логин под новым пользователем< | ||
===== Переименование пользователя ===== | ===== Переименование пользователя ===== | ||
Строка 13: | Строка 20: | ||
mv / | mv / | ||
* При необходимости заменить имя пользователя в конфигурационнфх файлах программ пользователя, | * При необходимости заменить имя пользователя в конфигурационнфх файлах программ пользователя, | ||
+ | |||
+ | ===== Общее локальное хранилище ===== | ||
+ | - Группа (data) пользователей общего локального ресурса< | ||
+ | - Каталог локального ресурса< | ||
+ | - Подключение каталога /mnt/data/ | ||
+ | - Установка gid и группы data на каталог< | ||
+ | chown root:data / | ||
+ | - Добавление пользователей в группу " | ||
+ | - Настройка прав доступа для вновь создаваемых каталогов< | ||
+ | # show result | ||
+ | getfacl / | ||
===== SSL-сертификат для сайта ===== | ===== SSL-сертификат для сайта ===== | ||
Строка 23: | Строка 41: | ||
- Другой вариант - получить (за соответствующую плату) сертификат от центра сертификации, | - Другой вариант - получить (за соответствующую плату) сертификат от центра сертификации, | ||
- Необходимо скопировать сертификаты в каталог, | - Необходимо скопировать сертификаты в каталог, | ||
+ | |||
+ | Также инструкция от DigitalOcean [[ https:// | ||
===== VNC ===== | ===== VNC ===== | ||
==== Запуск при старте ситемы ==== | ==== Запуск при старте ситемы ==== | ||
Строка 48: | Строка 68: | ||
- | ===== Квадраты в терминале | + | ===== Руссификация |
+ | ==== Квадраты в терминале ==== | ||
Русские буквы в консоли Debian/ | Русские буквы в консоли Debian/ | ||
<code bash> | <code bash> | ||
Строка 65: | Строка 86: | ||
Дополнительная информация по [[https:// | Дополнительная информация по [[https:// | ||
+ | ==== Переключение раскладки ==== | ||
+ | |||
+ | [[http:// | ||
+ | |||
===== Отправка e-mail' | ===== Отправка e-mail' | ||
Строка 86: | Строка 111: | ||
</ | </ | ||
* Отправка скрытой копии на адрес отправителя позволяет сохранять отправленные сообщения на удалённом почтовом сервере. | * Отправка скрытой копии на адрес отправителя позволяет сохранять отправленные сообщения на удалённом почтовом сервере. | ||
+ | |||
+ | ===== Отправка online сообщения через Телеграм ===== | ||
+ | - Создание собственного бота: | ||
+ | * добавить в список пользователей @BotFather' | ||
+ | * начать с ним разговор и выполнить команду /newbot; | ||
+ | * установить человеко читаемое имя бота (name); | ||
+ | * установить уникальное имя бота (username) вида @super_messages_bot; | ||
+ | * сохранить в надёжном месте полученный TokenID созданного бота. | ||
+ | - Создание группы и добавление в неё бота | ||
+ | * Рекомендация. В диалоге с @BotFather' | ||
+ | - Активирование | ||
+ | - Определение ID группы или "chat id"; | ||
+ | * В браузере необходимо перейти по ссылке вида https:// | ||
+ | * В полученном сообщении находим раздел " | ||
+ | - Отправка сообщения с помощью curl:< | ||
+ | |||
+ | Сообщение с компьютера пришло на телефон в " | ||
===== SSH ===== | ===== SSH ===== | ||
==== Запрет логина от root' | ==== Запрет логина от root' | ||
- | В файле / | + | В файле / |
==== Копирование файлов ==== | ==== Копирование файлов ==== | ||
На удалённую машину: | На удалённую машину: | ||
Строка 118: | Строка 160: | ||
* Запрет логина по паролю:< | * Запрет логина по паролю:< | ||
+ | ==== Socks5 proxy через SSH ==== | ||
+ | |||
+ | < | ||
+ | |||
+ | === Постоянный туннель через autossh | ||
+ | |||
+ | * Установка autossh: <code bash># apt install autossh</ | ||
+ | |||
+ | * Настройка доступа по ключу к < | ||
+ | |||
+ | * systemd unit< | ||
+ | Description=Auto up socks5 proxy | ||
+ | After=network.target | ||
+ | |||
+ | [Service] | ||
+ | User=< | ||
+ | Restart=on-failure | ||
+ | RestartSec=15 | ||
+ | ExecStart=/ | ||
+ | -o " | ||
+ | -o " | ||
+ | -D 127.0.0.1: | ||
+ | < | ||
+ | [Install] | ||
+ | WantedBy=multi-user.target | ||
+ | |||
+ | </ | ||
+ | * включение systemd unit' | ||
==== Ошибки подключения ==== | ==== Ошибки подключения ==== | ||
=== Connection closed by === | === Connection closed by === | ||
Строка 130: | Строка 200: | ||
< | < | ||
- | ===== DNSCrypt | + | ===== Shellinabox |
+ | Shellinabox - это программа, | ||
+ | ==== Установка ==== | ||
+ | <code bash>apt install shellinabox</ | ||
- | https://www.perfect-privacy.com/dns-leaktest/ - проверка использования DNS Crypt. | + | Проверка <code bash>https://192.168.XX.XX: |
+ | |||
+ | ==== Запрет root логина через shellinabox ==== | ||
+ | |||
+ | 1. Использовать ssh для логина **/ | ||
+ | <code bash> SHELLINABOX_ARGS=" | ||
+ | 2. Запрет root логина в ssh **/ | ||
+ | <code bash> | ||
+ | 3. Появившиеся [[ https:// | ||
+ | |||
+ | |||
+ | === WebSSH === | ||
+ | |||
+ | Shellinabox всем хорош, но ломает отображение Midnight Commander' | ||
+ | ==== Применение сертификата Let's Encrypt ==== | ||
+ | Для // | ||
+ | <code bash>cat / | ||
+ | |||
+ | Проверка работоспособности <code bash> | ||
+ | shellinaboxd -v</ | ||
+ | |||
+ | **Особенность.** Для работы shellinabox необходимо существование сертификата с названием файла // | ||
+ | ===== DNSCrypt ===== | ||
+ | Работу DNSCrypt можно оценить через один из сервисов проверки | ||
+ | * www.perfect-privacy.com/ | ||
+ | * www.dnsleaktest.com. | ||
====== Desktop ====== | ====== Desktop ====== | ||
Строка 143: | Строка 241: | ||
**Реализация Net.Storage ** [[itechnology: | **Реализация Net.Storage ** [[itechnology: | ||
+ | ===== Nextcloud ===== | ||
+ | |||
+ | Ошибка удаления/ | ||
+ | |||
+ | Решение. | ||
+ | < | ||
+ | Отключить < | ||
+ | |||
+ | |||
===== Облако Mail.ru ===== | ===== Облако Mail.ru ===== | ||
==== UPDATE: WEBDAV отключён ==== | ==== UPDATE: WEBDAV отключён ==== | ||
Строка 211: | Строка 318: | ||
Предлагаемое решение состоит в том, чтобы cделать виртуальные sink' | Предлагаемое решение состоит в том, чтобы cделать виртуальные sink' | ||
- | Первоначальный вариант при котором монофонические файлы не звучат выглядит так < | + | Первоначальный вариант при котором монофонические файлы не звучат выглядит так < |
- | load-module module-remap-sink sink_name=headphones | + | load-module module-remap-sink sink_name=headphones_stereo |
- | Изменённый вариант выглядит так: < | + | Задать человеческие названия каналам можно следующим образом:< |
- | load-module module-remap-sink sink_name=headphones | + | update-sink-proplist headphones_stereo device.description=" |
+ | </ | ||
+ | |||
+ | Изменённый вариант | ||
+ | 151 load-module module-remap-sink sink_name=headphones_mono | ||
Замечание первое. sound_card_name для // | Замечание первое. sound_card_name для // | ||
Строка 293: | Строка 404: | ||
Минусы. При логине второго пользователя до первого, | Минусы. При логине второго пользователя до первого, | ||
N: [pulseaudio] main.c: Обнаружен настроенный вручную сервер на %s, отказ от запуска.</ | N: [pulseaudio] main.c: Обнаружен настроенный вручную сервер на %s, отказ от запуска.</ | ||
+ | |||
+ | ==== Pulseaudio не видит USB устройство в списке карт ==== | ||
+ | В файл / | ||
+ | < | ||
+ | < | ||
+ | [[https:// | ||
+ | ==== Остановка pulseaudio ==== | ||
+ | < | ||
+ | |||
===== Kernel ===== | ===== Kernel ===== | ||
==== Добавить модуль в initrd ==== | ==== Добавить модуль в initrd ==== | ||
Строка 330: | Строка 450: | ||
https:// | https:// | ||
+ | |||
+ | ==== Образ диска и сжатие ==== | ||
+ | Пример использования: | ||
+ | < | ||
+ | |||
===== Xfce ===== | ===== Xfce ===== | ||
Строка 424: | Строка 549: | ||
Предотвращение отключения usb и переход в настоящий suspend. Мануал [[http:// | Предотвращение отключения usb и переход в настоящий suspend. Мануал [[http:// | ||
- | ===== OpenVPN | + | ===== Частная сеть предприятия |
==== Cоздание удостоверяющего центра ==== | ==== Cоздание удостоверяющего центра ==== | ||
Строка 433: | Строка 558: | ||
* Корневой закрытый ключ [ca.key] используется для подписи сертификата сервера и всех клиентских сертификатов. | * Корневой закрытый ключ [ca.key] используется для подписи сертификата сервера и всех клиентских сертификатов. | ||
- | Для создания корневого сертификата и закрытого используется утилита easy-rsa | + | Для создания корневого сертификата и закрытого используется утилита easy-rsa. |
./clean-all | ./clean-all | ||
./build-ca </ | ./build-ca </ | ||
Строка 440: | Строка 565: | ||
Дополнение. Для избежания ошибки вида: //The < | Дополнение. Для избежания ошибки вида: //The < | ||
- | ==== Генерация сертификата и приватного ключа | + | Из соображений безопасности и работоспособности коннекта сертификаты должны быть на алгоритме sha256. Проверка сертификата удостоверяющего цента< |
+ | ==== Генерация сертификата и приватного ключа сервера ==== | ||
Аналогично, | Аналогично, | ||
Большинство параметров могут быть оставлены в значениях по умолчанию, | Большинство параметров могут быть оставлены в значениях по умолчанию, | ||
+ | |||
+ | Исправление ошибки | ||
+ | * '' | ||
+ | Ignoring -days without -x509; not generating a certificate | ||
+ | Error checking x509 extension section server</ | ||
+ | * В раздел '' | ||
+ | * В разделе '' | ||
==== Генерация параметров Diffie Hellman' | ==== Генерация параметров Diffie Hellman' | ||
- | Для | + | На стороне |
+ | ==== Дополнительная проверка пакетов " | ||
+ | < | ||
+ | Файл ta.key должен быть доступен как на сервере, | ||
+ | < | ||
==== Создание ключей для клиентов ==== | ==== Создание ключей для клиентов ==== | ||
- | <code bash> | + | <code bash>source |
./build-key client_somename </ | ./build-key client_somename </ | ||
Строка 599: | Строка 736: | ||
fi | fi | ||
</ | </ | ||
+ | ==== Смена шифра на AES-256-CBC ==== | ||
+ | https:// | ||
===== Steam ===== | ===== Steam ===== | ||
Строка 615: | Строка 754: | ||
Руководство администратора по [[https:// | Руководство администратора по [[https:// | ||
- | Также хороший обзорный материал, | + | Также хороший обзорный материал, |
==== OpenVPN and NetworkManager ==== | ==== OpenVPN and NetworkManager ==== | ||
Строка 632: | Строка 771: | ||
http:// | http:// | ||
==== Монтирование NFS при старте системы ==== | ==== Монтирование NFS при старте системы ==== | ||
+ | === Случай управления сетью через systemd-networkd === | ||
+ | - Проверка статуса сервиса контроля доступности сети:< | ||
+ | - Включение сервиса в случае его неактивности:< | ||
+ | |||
+ | === Случай доступа к файловому серверу через OpenVPN === | ||
- Создание mount-юнита. Имя юнита соответсвует пути к точке монтирования, | - Создание mount-юнита. Имя юнита соответсвует пути к точке монтирования, | ||
- Содержание mount-юнита< | - Содержание mount-юнита< | ||
Строка 684: | Строка 828: | ||
===== Основы mdadm ===== | ===== Основы mdadm ===== | ||
+ | |||
+ | ==== Создание RAID-1 + LVM ==== | ||
+ | |||
+ | === Основная терминология LVM === | ||
+ | * **PV** (Physical Volume/ | ||
+ | * **VG** (Volume Group/ | ||
+ | * **LV** (Logical Volume/ | ||
+ | {{ : | ||
+ | * **PE** (Physical extent) - блок данных в пространстве PV фиксированного размера, | ||
+ | * **LE** (Logical extent) - блоки данных, | ||
+ | {{ : | ||
+ | Источники: | ||
+ | |||
+ | === Создание RAID-1 === | ||
+ | |||
+ | Рекомендуется создавать массив на разделах с типом FD (Linux RAID), что позволит ядру автоматически собирать разделы при загрузке системы (см. [[ https:// | ||
+ | |||
+ | Для этого, например, | ||
+ | * **g** | ||
+ | * **n** | ||
+ | * **t** | ||
+ | * **w** | ||
+ | |||
+ | Можно создавать raid-массив: | ||
+ | |||
+ | После создания стартует процесс начальной синхронизации (initial resync), который работает в фоне и не препятствует нормальному использованию raid-массива, | ||
+ | |||
+ | **Сохранение информации о созданном массиве**< | ||
+ | ... | ||
+ | ARRAY / | ||
+ | Отсутствующую строку с / | ||
+ | |||
+ | **Инициализация физических разделов под LVM**. В данном случае - это созданный ранее raid-1. <code bash> | ||
+ | # Просмотреть результат | ||
+ | pvscan</ | ||
+ | |||
+ | **Создание группы разделов (VG) LVM.**< | ||
+ | # Просмотреть результат | ||
+ | vgdisplay</ | ||
+ | Создана группа томов с именем " | ||
+ | |||
+ | **Создание логического тома под файловую систему.** При этом, если планируется использование LVM снапшотов, | ||
+ | # Просмотреть результат | ||
+ | lvdisplay | ||
+ | vgdisplay</ | ||
+ | |||
+ | Источник: | ||
+ | |||
+ | **Создание файловой системы на логическом томе.** Если файловая система не будет использоваться под системные нужды, то резервирование места для файлов пользователя " | ||
+ | |||
+ | **Изменение размера LV**. Ниже производится увеличение (+) размера логического тома на 5ГБ <code bash> | ||
+ | |||
+ | === Создание снимка логического тома (LV) === | ||
+ | |||
+ | Как работают снапшоты LVM и какие данные записываютcя на диск при работе со снапшотами можно прочитать по [[ https:// | ||
+ | |||
+ | Создание снапшота с выделением под него всего свободного места на VG | ||
+ | <code bash> | ||
+ | # Просмотреть результат | ||
+ | lvs | ||
+ | lvdisplay</ | ||
+ | |||
+ | Полученный снимок может быть примонтирован, | ||
+ | |||
+ | **Удаление снимка**. После резервного копирования или иных процедур, | ||
+ | |||
==== Установка ОС на LVM поверх Raid-1 | ==== Установка ОС на LVM поверх Raid-1 | ||
Строка 743: | Строка 953: | ||
</ | </ | ||
- | ===== Bash перенаправление потоков | + | ==== Замена диска в RAID-1 |
+ | |||
+ | Подробности в статье | ||
+ | |||
+ | ==== /dev/mdX -> /dev/mdY ==== | ||
+ | |||
+ | Переименовать raid-массив | ||
+ | https:// | ||
+ | |||
+ | ===== Проверка диска | ||
+ | |||
+ | При размере диска более 2ТB можно столкнуться с ошибкой | ||
+ | "Value too large for defined data type invalid end block" | ||
+ | |||
+ | <code bash> | ||
+ | badblocks: Значение слишком | ||
+ | |||
+ | Быстрое решение | ||
+ | <code bash> | ||
+ | |||
+ | |||
+ | ===== Bash ===== | ||
+ | ==== Перенаправление потоков ==== | ||
0 - stdin \\ | 0 - stdin \\ | ||
1 - stdout \\ | 1 - stdout \\ | ||
Строка 752: | Строка 985: | ||
2>& | 2>& | ||
+ | ==== Алиасы ==== | ||
+ | |||
+ | С точки зрения администрирования удобно все используемые алиасы располагать в отдельном файле, обычно это файл ~/ | ||
+ | |||
+ | Необходимо помнить, | ||
+ | <code bash>if [ -f ~/ | ||
+ | . ~/ | ||
+ | fi</ | ||
+ | |||
+ | Для ручной загрузки алиасов можно использовать команду source ~/ | ||
===== Дисковые квоты ===== | ===== Дисковые квоты ===== | ||
https:// | https:// | ||
Строка 788: | Строка 1031: | ||
</ | </ | ||
Основой приведённого описания файлов FictionBook является описание zip архива. | Основой приведённого описания файлов FictionBook является описание zip архива. | ||
+ | |||
+ | ==== Benchmark ==== | ||
+ | === Память === | ||
+ | Скорость записи | ||
+ | < | ||
+ | Скорость чтения | ||
+ | < | ||
+ |