Мы — долго запрягаем, быстро ездим, и сильно тормозим.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
![]() |
![]() |
www.lissyara.su
|
|
Дополнительная информация: ссылка 1, ссылка 2.
2. WinAMP-подобные музыкальные плееры: Audacious и QMMP
Устанавливается двумя основными пакетами:
|
Для настройки управления плеером глобальными клавишными комбинациями необходимо включить и настроить модуль "Параметры Ctrl+P / Модули / Общие / Global Hotkey".
С выходом Fedora 14 появились проблемы с audacious: ставится не требуемая версия и плагины не устанавливаются (что-то с зависимостями: требуется libao.so.2, хотя libad установлен). Поэтому по совету участников fedora@conference.jabber.ru. я перешёл на QMMP:
|
Для этого плеера можно настроить (в "Настройки QMMP"):
подключение к сети Интернет через proxy: "Сеть";
"горячие клавиши": "Модули / Общие / Модуль глоб.клавиш - libhotkey.so";
отображение в трее: "Модули / Общие / Модуль Status Icon - libstatusicon.so".
3. Опрос датчиков температур, напряжений, частоты вращения вентиляторов
Утилита опроса информации с датчиков температур, напряжений, частоты вращения вентиляторов:
|
После этого необходимо обнаружить необходимые датчики:
|
Всё: после этого можно настраивать всякие модули (например, Avant Window Navigator) или пользоваться собственной утилитой программы:
|
Последнее не очень наглядно, но если обработать скриптами... :)
4. Launchpad
Панель MacOS X-подобная: Avant Window Navigator. Так же устанавливается двумя основными пакетами.
|
Личные предпочтительные настройки ("Настройки AWN / Preferences"): "Ориентация - Вправо", "Стиль - 3D", "Поведение - Интеллектуальное", "Autohide mode - Затемнение", "Icon effects - 3D поворот с фонариком". И установить галочку "Запускать AWN при загрузке".
5. Управление SELinux
Предположим есть необходимость (как и я захотел) в переводе SELinux в разрешающий режим. Для это есть три способа:
а) временный перевод в разрешающий режим (с правами root-а):
|
8) отключение постоянное (возможно два варинта):
8.1) запуск управляющей утилиты (из-под тепущего пользователя, т.к. иначе утилиты не будет видна; так же необходимо помнить, что утилита запускается с задержкой, поэтому надо подождать, а не переживать, что что-то не работает):
|
8.2) правка конфигурационного файла (без прав root-а получится вряд ли :) ):
|
Вообще, надо при возможности побольше про SELinux почитать: система занятная.
6. Установка и запуск OpenVPN
Клиент openvpn в Fedora с systemd
Настройка OpenVPN, VPN через http (https) прокси
7. Обновление предыдущей версии системы до последнего релиза
Предварительно обязательно обновляем текущую (обновляемую) систему до последних пакетов:
|
Собственно команды непосредственно обновления:
|
В процессе перезагрузки произойдёт обновление системы.
При возникновении проблем во время обновления может помочь команда:
|
FAQ по обновлению системы через DNF.
8. Смена раскладки и её отображение
Привык ещё с OS/2 пользоваться не стандартной расскладкой "Русская" ("Russian"), а "Русская (машинопись)" ("Russian (typewriter)"), а в Fedora 15 столкнулся с проблемой смены раскладки в GUI утилитах. Поэтому пришлось искать, где и как это исправить в конфигурационных файлах.
За это отвечает файл /etc/sysconfig/keyboard (по умолчанию отсутствует), в который надо добавить строки:
|
Фактически, за раскладку отвечает параметр LAYOUT, который по умолчанию выглядит, как
|
Вот только не знаю, как глянуть список возможных вариантов этой переменной.
Можно LAYOUT не менять, а дописать ниже отдельно свой вариант раскладки:
|
Запятая оозначает, для какой (по порядку, указанному в LAYOUT) раскладки указан вариант.
В XFCE для того, чтобы видеть текущую раскладку, необходимо добавить на панель "Keyboard Layouts", который по умолчанию может отсутствовать в системе. Для его появления необходимо установить xfce4-xkb:
|
и затем сразу можно добавить на панель.
Так не лишним будет добавить это в /etc/X11/xorg.conf в блоке "Identifier "Keyboard0"":
|
9. Работа с пакетами
а) Поиск пакета, содержащего некоторые приложения
Случилась проблема: я увидел в системе установленный web-обозреватель Konqueror, которого я не ставил специально , т.к. пользуюсь Gnome. Обычный поиск ни в виде "rpm -qa | grep konqueror", ни в виде "dnf list installed | grep konqueror" ничего не выдал. По совету sergem воспользовался командой:
|
и узнал, что konqueror содержится в kdebase, который я спокойно у далил, т.к. никаких зависимостей, кроме kdebase-libs, не было обнаружено.
б) Поиск и удаление "висящих" пакетов
Хочется иногда "удалить всё лишнее" в плане неиспользуемых пакетов. Для вывода списка таковых:
|
Ещё: удаление ненужных пакетов без зависимостей (перед ненужным пакетом ставим пробел):
|
Надо ещё разобраться, как указать исключения, чтобы вывести только действительно "висящие" пакеты.
в) Просмотр зависимостей пакета
|
Собственно (как вариант) можно использовать для тех же целей информацию, выводимую перед удалением пакета.
г) Поиск всех доступных версий пакета
|
10. Информация об оборудовании
|
Выводится много чего - надо grep-ить нужное (или выбрав необходимый тип оборудования). Например, информация о системе (важно для серверного оборудования):
|
11. Автозапуск сервисов
В зависимости от версии Fedora установка сервисов на автозапуск будет разной, т.к. начиная с 15-й версии в Fedora новая система инициализации - systemd, вместо старой SysVinit:
для Fedora 14 и предыдущих (на основе sysvinit):
|
для Fedora 15 и более поздних (на основе systemd):
|
Так же некоторые операции с сервисами можно произвести командой service, например:
|
Из полезного: "Сравнение систем инициализации systemd, upstart и SysVinit".
12. Проверка контрольных сумм
Можно просто подсчитать контрольные суммы проверяемых файлов и сравнить с оригиналами:
|
Сюда же относится проверка подписи через GPG:
|
Подробности по GPG-ключам проекта Fedora, здесь.
Если необходимо сверить записанный диск в исходным образом диска (а некоторые 'писалки', в частности, Basero, да и Xfburn тоже, грешат неправильной записью), то необходимо выполнить:
- для CD-диска:
|
где /dev/cdrom - устройство чтения записаного CD-диска.
- для DVD-диска несколько сложней:
сначала выйсним, сколько 2k-блоков занимает записанный образ:
|
где my.iso - проверяемый образ.
А вот теперь можем подсчитать и контрольную сумму:
|
Есть ещё несколько вариантов решения данной задачи.
13. Список несистемных пользователей
|
Т.е. отсортировывает пользователей, у которых прописана командная оболочка (для системных пользователей она не требуется).
14. Поиск файла и/или каталога
Можно воспользоваться стандартной командой find:
|
Так же есть специальная команда locate:
|
Результатом, в обоих случаях, будет список найденых совпадений.
15. Отключение/включение запоминания истории в консоли
Для отключения запоминания истории вводимых команд
|
Для включения запоминания истории:
|
Для автоматизма можно прописать в автозапуск.
16. Установка и настройка клиента сети I2P
Первоначально скачиваем инсталляционный пакет с соответствующей страницы проекта. Например:
|
Он написан на Java, поэтому необходима поддержка. Если ещё не установлена, то ставим:
|
Теперь же можно запустить и инсталляцию:
|
По умолчанию клиент поставится в каталог ~/i2p/. После этого станет доступен скрипт управления:
|
Настройка и управления маршрутизатором производится через web-интерфейс, поэтому некоторые нижеприведённые ссылки имеют адрес http://127.0.0.1:7657 (порт в дальнейшем можно поменять). Web-интерфейс становится доступным после запуска клиента/маршрутизатора.
Перед запуском необходимо открыть порт, используемый системой. Обычно это "в районе" 20000-30000. У меня был 22177 (возможно изменение на странице конфигурации сети после запуска). Открываем этот порт для протоколов UDP и TCP. Например, добавив соответствующие записи в разделе "Другие порты" в утилите "Настройка межсетевого экрана".
Так же надо настроить используемый браузер на работу с клиентом. Для этого указываем параметры прокси-сервера (192.168.1.2 - адрес компьютера, где установлен клиент I2P):
|
Теперь всё готово для запуска:
|
Автоматически должна открыться страница управления маршрутизатором, с которой можно управлять клиентом.
Если планируется использовать сеть I2P постоянно, то лучше автоматизировать запуск клиента:
|
Стоит помнить: в I2P нет привычного DNS и нет никаких доменов первого уровня типа .ru, .com, .org и т.д., все сайты имеют домен первого уровня – .i2p. Например, местный гугл имеет адрес – eepsites.i2p, а самый главный форум - forum.i2p.
По умолчанию адресная книга вашего маршрутизатора: SusiDNS. Если же часто при открытии сайтов отображается ошибка "Предупреждение: I2P-сайт не найден в адресной книге", то можно поискать данные этого сайта (для этого есть специальные jamp-сервисы: i2host.i2p, stats.i2p), либо настроив автоматическую подписку на адреса новых сайтов.
Настройка автоматической подписки производится на соответствующей странице SusiDNS, куда можно добавлять ссылки на публичные списки сайтов_ Два открытых сервиса со списками:
|
Клиент поддерживает установку плагинов, которые можно найти как на специальном сайте, так и иных страницах сети. Добавить/настроить плагины можно на соответствующей странице управления.
Дополнительная информация: по используемым портам, о средствах анонимизации, ECDSA Help Page.
ВАЖНОЕ 1: В дистрибутивах Linux, которые создаются в США, запрещено использовать сильную криптографию. Поэтому некоторые возможности в плане криптографии в них либо занижены, либо вообще отсутствуют. К таким дистрибутивам относится и Fedora. Например, поддержка алгоритмов ECDSA "вырезана", что для I2P сказывается негативно: проект переведён на ECDSA с версии 0.9.12.
Исправляется это установкой java-библиотеки bcprov от The Bouncy Castle project:
|
И запускаем/перезапускаем сервис I2P.
ВАЖНОЕ 2: Немного об анонимности: некоторые I2P сайты имеют внешние (т.е. в сети Интернет) элементы, поэтому возможна деанонимизация. Поэтому для обеспечения большей приватности необходимо установить любое из этих расширений:
1) BlockSite и в белом списке указать http://*.i2p/, http://127.0.0.1:7657/, maggot://*;
2) Adblock Plus с подпиской EasyPrivacy успешно режет Google Analytics и подобное;
3) RequestPolicy (и в догонку - RequestPolicy Sync).
17. Создание собственного LiveCD на основе Fedora 2x/Scientific Linux 7
Первоначально устанавливаются пакеты поддержки данной возможности:
|
Теперь для Fedora в каталоге /usr/share/spin-kickstarts/l10n/ доступны "кикстарт"-файлы для сборки базовых образов системы.
В случае с Scientific Linux 7 несколько сложней: готовых ks-файлов для сборки LiveCD в системе нет, как и нет livecd-tools, который мы ставили со стороннего сайта). Но нашлось, что добрые люди сделали такие файлы и опубликовали их в своей системе контроля версий subversion. По умолчанию этот пакет не установлен в системе, поэтому ставим:
|
Для создания собственной сборки лучше всего взять за основу какой-либо из этих .ks файлов, указав его в своём проекте. Например, создаём текстовый файл MyLiveCD.ks, куда первой строчкой указываем на базовый:
|
Следующий шаг: добавление необходимых репозиториев:
1) для Fedora:
|
2) для Scientific Linux 7 (мой набор):
|
При необходимости добавления RPM пакетов, не содержащихся в указанных репозиториях (либо вообще отсуствующих в каких-либо репозиториях) для добавления этих пакетов необходимо создать локальный репозиторий, куда и поместить необходимые пакеты.
Устанавливаем пакет поддержки:
|
Создаём каталог размещения репозитория:
$ mkdir -p /usr/share/repository
Копируем в этот каталог все необходимые нам пакеты и создаём репозиторий:
$ cd /usr/share/repository
$ createrepo .
$ dnf clean all
Для подключения созданного репозитория создаём файл-описание /etc/yum.repos.d/my_repo.repo следующего содержания:
[My_Repo]
name=My_repository
baseurl=file:///usr/share/repository
enabled=1
Всё, теперь необходимые пакеты доступны. Для проверки сделаем поиск пакета из нашего репозитория, например:
$ dnf search monaco
Загружены модули: langpacks, presto, refresh-packagekit, remove-with-leaves, show-leaves
===================================================================== Совпадений: monaco =====================================================================
gringod-monaco-linux-fonts.noarch : Monaco fonts for Linux
Показаны только совпадения по названиям и описаниям, для большего используйте «search all».
Ну и последнее: добавляем наш репозиторий в список в ks-файле:
repo --name=My_repository --baseurl=file:///usr/share/repository
Указание необходимых в сборке пакетов, а так же ненужных, производится внутри конструкции:
|
Например, укажем установку почтового клиента Sylpheed и удаление Claws-Mail вместе со всеми дополнительными пакетами (плагинами и пр.):
|
Можно тоже самое произвести и с группами (просмотр списка групп с оригиналами названий на английском: dnf grouplist -v):
|
Если для сборки образа используются дополнительные репозитории, кроме стандартных, то лучше из сразу добавить, что бы после установки это не делать:
|
После указания пакетов можно описать действия, которые необходимо провести после установки системы, указав их в блоке:
|
Все параметры kickstart-файлов описаны в официальной инструкции на сайте проекта.
После создания ks-файла можно запускать сборку собственного ISO файла (с правами пользователя root):
|
Дополнительная информация: git-репозиторий kickstart файлов, статья на RussianFedora, статья на FedoraProject, пример ks-файла.
18. Планировщики ввода/вывода
Управление вводом/выводом данных производится разными алгоритмами, реализованными в разных планировщиках ввода/вывода.
С ядра 4.12 стали доступны (без патчей) планировщики blk_mq: mq-deadline, cfq, kyber.
Для изменения планировщика можно:
1) для применения ко всем устройствам задать параметр ядра elevator=deadline (требуется перезагрузка);
2) для раздельного применения разных планировщиков к разным типам дисков необходимо создать файл /etc/udev/rules.d/60-scheduler.rules:
|
При использовании этого варианта для его активации требуется либо перезагрузка, либо выполнить команды:
|
Проверяем:
$ cat /sys/block/sd*/queue/scheduler mq-deadline kyber [bfq] none mq-deadline kyber [bfq] none [mq-deadline] kyber bfq none [mq-deadline] kyber bfq none [mq-deadline] kyber bfq none $ cat /sys/block/nvme0n1/queue/scheduler mq-deadline [kyber] bfq none |
19. Установка Fedora на SSD: обычного и M.2 формата (NVMe)
При необходимости установить Fedora Linux на SSD (любого формата) необходимо задействовать специальные технологии, увеличивающие срок жизни SSD и поддерживающие его параметры на необходимом уровне: TRIM и ITGC (Idle-Time Garbadge Collection, Сборка мусора во время бездействия).
Для этого надо:
1) в /etc/fstab в параметры разделов на SSD вписать два параметра: discard и noatime
|
Для запуска процедуры TRIM вручную:
|
Т.е. каждый раздел, размещённый на SSD, обрабатывается отдельно. Утилита проверена на файловых системах EXT4 и BTRFS, а на NTFS и ReaserFS - не работает. Хотя, возможно, что-то изменится в будущем.
2) выбрать планировщик ввода/вывода deadline (рекомендовал elemc).
На случай проблем с работой discard на установленном SSD (обычно это случается с дешёвыми китайскими SSD с АлиЭкспресс) для проведения TRIM надо запустить соответствующий таймер:
|
Дополнительная информация: Solid State Drives (ArchLinux), Файл /etc/fstab, Настройка Ubuntu для работы с SSD, Как не заблудиться в SLC, MLC и TLC при выборе SSD, Сколько проживет ваш SSD?, Оптимизация Linux под SSD
20. Подключение репозиториев
Подключение Russian Fedora (Free, Nonfree, Fixes):
|
Используемые репозиторием Russian Fedora ключи электронной цифровой подписи (ЭЦП):
|
Проверка программой GnuPG ключа ЭЦП на примере ключа проекта Fedora:
|
Подключение RPM Fusion (Free, Nonfree:
|
Для подключения репозитория rawhide-kernel-nodebug (тестовых ядер) надо скачать готовый repo-файл:
|
А можно и так установить репозиторий (на примере UnitedRPMS):
|
Некоторые подробности можно прочитать тут и тут.
21. SSH сервер
а) Первичная настройка
По умолчанию SSH сервер (sshd) в Fedora не активирован. Но он присуствует в системе вместе с SSH клиентов, являясь вместе с ним частью пакета OpenSSH, развиваемого сообществом OpenBSD.
Конфигурационные файлы пакета OpenSSH расположены в каталоге /etc/ssh/. Конфигурационный файл сервера /etc/ssh/sshd_config, клиента - /etc/ssh/ssh_config. Здесь же располагаются файлы с открытыми (PUB) и секретными (KEY) ключами сервера (при необходимости каталог расмещения ключей можно переназначить в /etc/ssh/sshd_config).
Произведём необходимую корректировку конфигурационного файла сервера /etc/ssh/sshd_config), указав (раскомментировав и исправив) следующие параметры:
|
Разрешение и запрещение доступа по SSH для пользователей и групп пользователей может достаточно гибко настраиваться. Более подробно описано в man-ах или тут (может устаревать).
Если порт будет отличаться от стандартного 22, то необходимо SELinux-у сообщить об этом. Например, в случае порта 7575:
|
Возможно, если номер порта будет до 1024, то всё будет работать, но я не проверял.
Протокол SSH является протоколом, использующим асимместричное шифрование, поэтому для сервера SSH необходимо прежде всего создать ключи (секретный(приватный)/private и публичный(открытый)/public). Для этих целей в составе OpenSSH есть утилита:
|
Теперь у нас имеется три необходимые пары ключей:
|
Такой настройки достаточно для большинства случаев.
Перед запуском сервера ещё необходимо в межсетевом экране (firewall) "открыть" указанный в /etc/ssh/sshd_config порт для внешни подключений. Это можно сделать через GUI утилиту /usr/bin/firewall-config, либо через консольную (CLI) утилиту /usr/bin/firewall-cmd.
Теперь всё готово к запуску сервера:
|
Если есть необходимость ограничить доступ к серверу SSH только с определённых IP адресов, то необходимо использовать конфигурационные файлы /etc/hosts.allow (для разрешённых адресов) и /etc/hosts.deny (для запрещённых адресов).
Например, если разрешённый адрес динамический, публикуемый через сервис DynDNS.org, то, например, можно в конфигурационный файл cron-а /etc/crontab дописать такую строку:
|
Теперь каждый 10 минут последняя строчка в файле /etc/hosts.allow будет удаляться, а вместо неё вписываться IP ресурса с именем mydomain.dyndns.org.
Перезапуска сервиса sshd не требуется.
Если всё работает и SSH принимает подключения:
|
значит всё сделано правильно и теперь это можно использовать для работы с серверами и компьютерами в удалённой сети, упаковывая в туннель требуемый порт.
Очень полезная возможность SSH сервера - создание туннелей. Например, если надо подключиться к web-интерфейсу сервера:
|
И теперь для получения доступа достаточно в web-обозревателе ввести в адресной строке:
|
В другом случае необходимо подключиться по RDP к виндо-серверу:
|
И теперь используя программу-клиента удалённого подключени Remmina можно подключаться к целевому серверу, введя в качестве имени сервера localhost.
В принципе нет необходимости всё это вводить, т.к. Remmina сама отлично умеет создавать туннели и подключать через них к целевому серверу. Для этого при регистрации сервера в Remmina надо на закладке "SSH" указать "Включить SSH туннель", указать вручную адрес SSH сервера и порт подключения. На закладках "Основные" и "Дополнительные" указывать всё так, как указывали бы мы, находясь в той сети, куда мы получаем доступ удалённо.
Посмотреть список активных соединений:
|
Так же может быть полезен X11-forwarding: перенаправление вывода изображений приложений X11 с удалённой машины на ваш рабочий стол.
Для включения этой возможности надо в /etc/ssh/ssh_config на машине, с которой будет осуществлять подключение, либо добавить параметр
|
и перезапустить SSH
|
либо использовать опцию -X (далее всё указывается с этой опцией).
Подключаемся (-C нужен для ускорения обмена данными за счёт сжатия):
|
После авторизации введём, например, firefox и... Вуаля!... у нас открылся FireFox, который, на самом деле, запущен на машине 132.81.41.4.
Чтобы запустить и перенаправить только одно нужное приложение надо выполнить команду такого вида:
|
После этого сразу после ввода пароля на удалённой машине запустится FireFox и будет отображаться на вашей подключенной машине.
Если при указанном ForwardX11 yes необходимо отключить X11-forwarding на всемя сессии, то надо использовать ключ -x.
МЕЛКИЕ ЗАДАЧИ
Задача №1
Если по какой-то причине публичный ключ был утерян, то его легко восстановить из секретного:
|
Задача №2
Запуск на исполнение скрипта, загруженного по SSH:
|
б) Авторизация по ключу
На клиентской системе сгенерируем личные ключи (предпочитаю использовать более современные и криптоустойчивые алгоритмы ECDSA или ED25519) и сохранить в файл с именем id_myserver:
|
Получим два файла: открытый ключ ~/.ssh/id_myserver.pub и закрытый (секретный) ~/.ssh/id_myserver.
ВНИМАНИЕ!!! Надо сохранить эту пару ключей, чтобы в будущем не потерять доступ к удалённому серверу. Особое внимание, конечно, на секретную часть, для которой надо исключить компрометацию.
Теперь надо передать открытую часть ключа на удалённый сервер. Для этого надо либо передать СисАдмину удалённого сервера файл ~/.ssh/id_myserver.pub, либо (если у нас самих есть доступ (пока ещё парольный)) поместить содержимое этого файла в файл ~/.ssh/authorized_keys удалённого сервера в профиле пользователя, от имени которого будет осуществляться подключение.
Так же есть специальная утилита, которая сама скопирует файл открытого ключа на удалённый сервер и разместит, где надо (опять же: если у нас есть доступ к удалённому серверу):
|
Для каждого открытого ключа в файлах ~/.ssh/authorized_keys можно выставить опции, ограничивающие возможности клиента, аутентифицировавшегося по данному ключу. Опции находятся перед ключом,
|
Для дополнительной защиты можно запретить пользователям добавлять новые открытые ключи и подключаться с их помощью.
Для этого надо файл ~/.ssh/authorized_keys сделать доступным только для чтения пользователям и запретить всё остальное:
|
Для того, чтобы лишить пользователей возможности вернуть права доступа обратно, установите защитный (immutable) бит для каталога ~/.ssh и его содержимого:
|
ВНИМАНИЕ!!! Если в дальнейшем будет необходимо добавить новый ключ, сперва понадобится убрать защитный бит с файла authorized_keys и предоставить права на запись. После внесения необходимых изменений надо снова установить защитный бит, чтобы вновь обеспечить безопасность этого файла.
По умолчанию сервер SSH принимает первоначально авторизацию по ключу, а если не сработает (ошибка или что-то ещё), то запросится пароль. Если мы такое поведение не планируем (т.е. хотим полностью на ключи перейти), то в файле конфигурации SSH сервера /etc/ssh/sshd_config надо внести изменений - раскомментировать/изменить строки:
|
Я бы ещё предложил разрешить авторизацию только по ключам с алгоритмами ECDSA или ED25519.
в) SSH туннель (socks-прокси)
На удалённом сервере.
Создаём специального пользователя, который будет использоваться ТОЛЬКО для работы туннеля: ему не нужен пароль, однако нужен домашний каталог.
|
Создаём каталог и файл для SSH ключей и устанавливаем права:
|
На клиенте.
Генерируем ключ для этого соединения:
|
Снова на удалённом сервере.
Добавляем в созданный файл /home/tunnel/.ssh/authorized_keys содержимое сгенерированного публичного ключа:
|
и в самое начало ключа прописываем опции, чтобы получилось следующее:
|
Устанавливаем защитный бит:
|
Подключение:
|
Или подготовим шаблон подключение в файле ~/.ssh/config:
|
И теперь для подключения достаточно ввести:
|
Тут, конечно, так же можно дополнительно указывать опции, при необходимости.
г) Доступ по протоколу SFTP
Протокол SFTP предпочтительней (в сравнении с FTP) для передачи файлов, т.к. используется защищённая передача (шифрование). Между тем при настройке доступа по SFTP необходимо учитывать, что доступ предоставляется по SSH и при ошибках пользователь может получить в системе прав больше, чем ему требуется (хорошо, если пользо ватель нормальный, а если захочет что-то "сломать"?).
Поэтому для пользователей, которым предоставляется доступ по SFTP, необходимо настроить chroot окружение и специальным образом настроить SSH-сервер.
Создаём пользователя, который будет осуществляться доступ по SFTP, без домашнего каталога и права авторизации по SSH:
|
Создаём каталоги нашего chroot-окружения и назначаем необходимые права:
|
В конфигурационном файле SSH-сервера /etc/ssh/sshd.conf вносим следующие изменения:
1) заменяем строку:
|
2) добавляем:
|
Проверяем новый файл конфигурации на ошибки и перезапускаем SSH-сервер:
|
Проверяем результат и пользуемся.
д) Различные тонкости и удобства
Настроенный SSH-сервер позволяет пользоваться им как основой для множества полезных мелочей.
№1: Шифрованное подключение удалённой директории
Для использования этой возможности надо установить поддержку SSHFS:
|
После этого становится доступной утилита sshfs:
|
По окончании работы необходимо отмонтировать удалённый каталог:
|
В данной случае используется протокол SFTP (чуть выше описано конфигурирование доступа по SFTP).
№2: Передача файлов
2.1 Используя протокол SCP
Для обеспечения безопасного (защищённого шифрованием) обмена данными (файлами( между двумя компьютерами с ос Linux/FreeBSD был разработан протоко SCP (secure copy), который поддерживается в пакете OpenSSH в виде утилиты scp.
Пользование утилитой очень простое, поэтому опишем самые часто используемые применения:
|
Данные примеры указывают использование нестандартного (не 22) порта для SSH, а порта 228.
По умолчанию scp использует при передаче данных алгоритм шифрования 3DES. Можно несколько увеличить скорость передачи, включив алгоритм Blowfish, для этого в командной строке следует добавить -c blowfish:
|
Кроме Blowfish можно использовать любой алгоритм, используемый SSH.
2.2 Используя сам SSH
Воспользуемся перенаправлением ввода/вывода:
|
Скорость передачи в обоих случаях одинакова.
№3: Выполнение локального скрипта на удалённой машине
Запуск скрипта ~/script/my_script на исполнение, загрузив его посредством SSH:
|
Результат будет отображаться в окне SSH сессии.
Дополнительная информация по SSH: freebsd.org, xgu.ru, habrahabr.ru (особо интересная) или sabini.ch.
е) Дополнительная информация
Общая: freebsd.org, xgu.ru, sabini.ch, habrahabr.ru.
Туннелирование: opennet.ru, vds-admin.ru.
Авторизация по ключу: debianzilla.com, vds-admin.ru, xgu.ru.
Особо интересное: Хранение открытых ключей SSH в DNS, Host-based аутентификация в OpenSSH, Памятка пользователям ssh.
22. SSLH сервер: первичная настройка и возможности
Краткий экскурс в sslh
sslh - Applicative protocol multiplexer
23. FTP: монтирование удалённой директории
Первоначально устанавливаем соответствующий пакет:
|
И, собственно, само монтирование:
|
24. Подключение по Cisco AnyConnect через OpenConnect
В качестве подключения можно использовать Network Manager с плагином:
|
В Network Manager создаём подключение "VPN / Cisco AnyConnect-совместимая VPN (openconnect)", в параметрах которого указываем на закладке "VPN":
- "Шлюз" : адрес шлюза, через кторым будем осуществлять подключение;
- "CA Certificate" : корневой или (если есть) промежуточный сертификат, на основе которого создавался ключ пользователя;
- "Сертификат пользователя" : пользовательский сертификат, от имени которого будет совершаться подключение;
- "Личный ключ" : второй раз указываем сертификат пользователя.
Всё, пробуем соединиться. Если соединение проходит - всё нормально.
Если соединение не проходит, а в описании ошибки будет строка
Failed to set TLS priority string: The request is invalid. |
то необходимо обновить криптографические политики (в пакете crypto-policies):
|
Такая проблема проявилась в Fedora 22, но решается таким простым способом.
25. Архиваторы: упаковка и распаковка
Упаковка:
1) gzip
|
2) bzip2
|
Распаковка:
1) xz:
|
2) tar.gz или tgz:
|
3) gz (распакует с удалением файла архива):
|
4) zip:
|
5) bzip2:
|
26. Включение web-камеры в Skype
Если web-камеры не видится в Skype, то необходимо инициализировать переменную LD_PRELOAD, вписав в ~/.bashrc:
|
После этого либо перегрузиться, либо ввести в терминале
|
Теперь после запуска Skype надо зайти в настройки, выбрать камеру и проверить её работоспособность.
По умолчанию микрофон в системе отключен, поэтому надо его включить через утилиту pavucontrol.
27. lshell - "Шелл" с ограничениями (limited shell)
Установка:
|
Для целевого пользователя указываем lshell в качестве командной оболочки и добавляем его в группу lshell:
|
Конфигурация - в файле /etc/lshell.conf.
Тонкости:
1) нельзя в доступных каталогах (параметр path) указать 'all' (все) - только перечисление, например,
|
2) Midnight Commander (mc) может гулять по каталогам, как хочет, поэтому его по возможности надо запретить, как другие опасные и потенциально опасные команды и комбинации символов, например,
|
Дополнительная информация:
GitHub: ghantoos/lshell
lshell (1) - Linux Man Pages
|
2014-07-27, lissyara
gmirror
Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9
Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
вверх
|
Этот информационный блок появился по той простой причине,
что многие считают нормальным, брать чужую информацию не уведомляя автора
(что не так страшно), и не оставляя линк на оригинал и автора — что более существенно.
Я не против распространения информации — только за. Только условие простое — извольте
подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой,
незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.
© lissyara 2006-10-24 08:47 MSK
Время генерации страницы 0.0681 секунд
Из них PHP: 65%; SQL: 35%; Число SQL-запросов: 37 шт.
Исходный размер: 194044;
Сжатая: 36377
Комментарии пользователей [0 шт.]