По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
С чего начинается Linux? LPI (Linux Professional Institute) считает, что изучение необходимо начинать с темы “Обнаружение и настройка комплектующих”. Это работа с “железом”, работа с комплектующими, вся аппаратная часть, то что мы видим и настраиваем. На сайте LPI (www.lpi.org) мы можем найти, что должен знать обучающийся Linux. Включение и отключение встроенного “железа” Настройка системы с помощью или без помощи внешних устройств. Разница между устройствами хранения информации Разница между устройствами, поддерживающими “Горячую замену” Выделение аппаратных ресурсов для устройств Инструменты и утилиты для просмотра списка оборудования Инструменты и утилиты для работы с USB Разбор понятий sysfs, udev, dbus. Далее возьмем для простоты Ubuntu 20.04. Директория /sys – тут содержится вся информация о подключенных устройствах. В данную директорию монтируется файловая система sysfs. Sysfs — виртуальная файловая система в операционной системе Linux. Экспортирует в пространство пользователя информацию ядра Linux о присутствующих в системе устройствах и драйверах. В данной директории есть определенных набор основных папок: devices/ - все устройства ядра bus/ - перечень шин зарегистрированных в ядре. Шина - это общий путь, по которому информация передается от одного компонента к другому drivers/ - каталог драйверов block/ - каталог блочных устройств. В данном случае под устройством понимается совокупность физического устройства и драйвера. То есть, если при подключении USB-драйва некоторое новое устройство в /sys/devices/ появится всегда (можно говорить о наличии физического устройства), то появление каталога /sys/block/sda зависит ещё и от наличия в памяти необходимых драйверов (usb-storage, sd_mod и т.д. - включая все драйвера, необходимые для поддержки usb) class/ - группировка устройств по классам Навигацию по папкам осуществляем с помощью команды cd. Учитывая вложенность папок переход на уровень вверх, т.е в родительскую папку используем cd .., где двоеточие обозначает родительский каталог. А также переход в любую папку, например, cd /sys/bus. Чтобы посмотреть все что находится в каталоге используем команду ls Следующий момент, если мы зайдем в папку с устройствами, то мы можем увидеть, как ОС наша видит устройства. Не очень удобно. Чтобы удобнее было работать с устройствами, используется udev. Это менеджер устройств, который позволяет ОС предоставлять устройства в удобно используемом виде, чтобы было понятно нам. Далее папка /proc - она находится в корне нашей ОС и содержит информацию о всех запущенных процессах. Она создается в оперативной памяти при загрузке ПК. Количество файлов зависит от конфигурации данной системы. Для работы с файлами необходимы права суперпользователя. Внесенные изменения сохраняются только до конца сеанса. Cеанс - это каждая терминальная оболочка, запущенная процессами пользователя В данную папку монтируется виртуальная система procfs. В ней находится информация о состоянии ядра и вообще операционной системе в целом. Термин виртуальная система - это некая абстракция, которая позволяет философии Linux говорить, что “все является файлом”, а вообще если рассматривать понятие файловая система - это иерархическое хранилище данных, которые собраны в соответствии с определенной структурой. Вот так выглядит данная папка. Мы можем посмотреть всю информацию, которая нам известна о процессоре. Данная информация содержится в файле cpuinfo. Для вывода информации содержащейся в файле используем команду cat [имя_файла]. Результат работы команды cat cpuinfo ниже. Есть еще интересный файл mounts. Он показывает все смонтированные файловые системы. Результат вывода будет примерно такой. Можно увидеть, когда мы просматриваем содержимое каталога командой ls, то файлы подсвечиваются белым цветом, а каталоги синим. Переходим немного глубже по дереву каталогов файловой системы cd /prox/sys в данной папке все о настройках и процессах, происходящих с нашей текущей файловой системой. В данной директории есть несколько подпапок. И зайдем в подпапку, относящуюся к файловой системе fs. Посмотрим например file-max в данном файле информация о том сколько файлов одновременно может открыть пользователь. В последней версии число таких фалов увеличилось. До версии 20.04, число файлов было по умолчанию 204394. Можно изменить число или данные, например, с помощью команды echo 10000000000 > file-max Все изменения, которые мы делаем в данной директории они сохраняются только до перезагрузки. Это надо учитывать. Еще одна основная папка в корневой директории папка /dev – она в себе содержит интерфейсы работы с драйверами ядра. /dev/sd [буква] - жесткий диск (в системах на ядре Linux) /dev/sd [буква][номер] – раздел диска /dev/sr [номер] (/dev/scd [номер]) – CD-ROM /dev/eth [номер] – cетевой интерфейс Ethernet /dev/wlan [номер] – cетевой интерфейс Wireless /dev/lp [номер] – принтер /dev/video [номер] - устройство изображений, камеры, фотоаппараты /dev/bus/usb/001/[номер] – устройство номер на шине USB /dev/dsp – звуковой вывод Набор оборудования, команды вывода перечня устройств. Lsmod – информация о модуле ядра Lspci - информация об устройствах PCI Lspcmcia - информация об устройствах PCMCIA Lsusb - информация о шине USB Lshw – детальная информация о комплектующих. Команда Lsmod – утилита которая показывает нам модули ядра. Модуль ядра — это объект, который содержит код позволяющий расширить функционал ядра. Вот так выглядит ее вывод. По сути, если проводить аналогию с ОС Windows это драйвера. Вывод команды lshw Данная команда сканирует все устройства и выводит подробную информацию по ним и достаточно детально. Утилиты для работы с модулем ядра или утилиты управления модулями ядра. Lsmod – информация о модулях ядра Modinfo - информация о конкретном модуле Rmmod - удаление модуля ядра Insmod – установка модуля ядра Modprobe – деликатное удаление или добавление модуля ядра Фактически эти команды используются для добавления и удаления “драйверов” устройств в Linux системе. В большинстве случаев ОС самостоятельно подключит устройство, но бывает такое, что устройство не стандартное и требуется добавить модель, для того чтобы ядро ОС, корректно работало с данным устройством. Rmmod и insmod - команды грубые и не умеют работать с зависимостями, поэтому необходимо использовать Modprobe с различными ключами. Взаимодействие с CPU, основные понятия: IRQ - механизм прерываний IO адреса – обмен информацией между устройствами и CPU DMA – обращение к ОЗУ минуя CPU Выделение ресурсов. IRQ - механизм прерываний это система которая сообщает центральному процессору о наступлении какого либо события, на которое процессор должен отреагировать. Есть определенные адреса прерываний, их можно увидеть в биосе ПК. Есть стандартные номера прерываний. Ранее была необходимость при конфликте устройств назначать в ручном режиме данные прерывания, в настоящее время с появлением технологии Plug and Play, данная потребность исчезла. IO адреса – это область памяти в которой процессор считывает информацию об устройствах и туда же ее записывает. Это выделенный диапазон. Вообще она бывает в памяти и адресация по портам. DMA - технология появилась относительно недавно и позволяет устройствам обращаться к памяти минуя процессор. Существенно повышает быстродействие. Все технологии настраиваются автоматически. Устройства хранения: PATA – параллельный интерфейс SATA - последовательный интерфейс SCSI - стандарт передачи данных SAS – замена SCSI Современные SATA, SAS нужно понимать есть устройства поддерживающие горячую замену и устройства не поддерживающие горячую замену. Устройства, которые можно выдернуть из ПК, безболезненно, и это не обрушит систему, причем ОС не подвиснет, не перезагрузится, это устройства поддерживающие горячую замену, например, USB. Устройство, которое не поддерживает горячую замену, например, оперативная память. Если мы ее выдернем из материнской платы, ОС однозначно обрушится. Команда blkid показывает какие устройства у нас смонтированы. Нужно отметить, что у каждого устройства есть уникальный UUID (универсальный уникальный идентификатор), что udev умеет читать UUID, и он монтирует в понятном виде нам.
img
Перед тем как начать, почитайте материал про топологию сетей. Обнаружение соседей позволяет плоскости управления узнать о топологии сети, но как узнать информацию о достижимых пунктах назначения? На рисунке 8 показано, как маршрутизатор D узнает о хостах A, B и C? Существует два широких класса решений этой проблемы - реактивные и упреждающие, которые обсуждаются в следующих статьях. Реактивное изучение На рисунке 8 предположим, что хост A только что был включен, а сеть использует только динамическое обучение на основе передаваемого трафика данных. Как маршрутизатор D может узнать об этом недавно подключенном хосте? Одна из возможностей для A - просто начать отправлять пакеты. Например, если A вручную настроен на отправку всех пакетов по назначению, он не знает, как достичь к D, A должен отправить в хотя бы один пакет, чтобы D обнаружил его существование. Узнав A, D может кэшировать любую релевантную информацию на некоторое время - обычно до тех пор, пока A, кажется, отправляет трафик. Если A не отправляет трафик в течение некоторого времени, D может рассчитать запись для A в своем локальном кэше. Этот процесс обнаружения достижимости, основанный на фактическом потоке трафика, является реактивным открытием. С точки зрения сложности, реактивное обнаружение торгует оптимальным потоком трафика против информации, известной и потенциально переносимой в плоскости управления. Потребуется некоторое время, чтобы сработали механизмы реактивного обнаружения, то есть чтобы D узнал о существовании A, как только хост начнет посылать пакеты. Например, если хост F начинает посылать трафик в сторону а в тот момент, когда A включен, трафик может быть перенаправлен через сеть на D, но D не будет иметь информации, необходимой для пересылки трафика на канал, а следовательно, и на A. В течение времени между включением хоста A и обнаружением его существования пакеты будут отброшены-ситуация, которая будет казаться F в худшем случае сбоем сети и некоторым дополнительным джиттером (или, возможно, непредсказуемой реакцией по всей сети) в лучшем случае. Кэшированные записи со временем должны быть отключены. Обычно для этого требуется сбалансировать ряд факторов, включая размер кэша, объем кэшируемой информации об устройстве и частоту использования записи кэша в течение некоторого прошедшего периода времени. Время ожидания этой кэшированной информации и любой риск безопасности какого-либо другого устройства, использующего устаревшую информацию, являются основой для атаки. Например, если A перемещает свое соединение с D на E, информация, которую D узнал об A, останется в кэше D в течение некоторого времени. В течение этого времени, если другое устройство подключается к сети к D, оно может выдавать себя за A. Чем дольше действительна кэшированная информация, тем больше вероятность для выполнения этого типа атаки. Упреждающее изучение Некоторая информация о доступности может быть изучена заранее, что означает, что маршрутизатору не нужно ждать, пока подключенный хост начнет отправлять трафик, чтобы узнать об этом. Эта возможность имеет тенденцию быть важной в средах, где хосты могут быть очень мобильными; например, в структуре центра обработки данных, где виртуальные машины могут перемещаться между физическими устройствами, сохраняя свой адрес или другую идентифицирующую информацию, или в сетях, которые поддерживают беспроводные устройства, такие как мобильные телефоны. Здесь описаны четыре широко используемых способа упреждающего изучения информации о доступности: Протокол обнаружения соседей может выполняться между граничными сетевыми узлами (или устройствами) и подключенными хостами. Информация, полученная из такого протокола обнаружения соседей, может затем использоваться для введения информации о доступности в плоскость управления. Хотя протоколы обнаружения соседей широко используются, информация, полученная через эти протоколы, не используется широко для внедрения информации о доступности в плоскость управления. Информацию о доступности можно получить через конфигурацию устройства. Почти все сетевые устройства (например, маршрутизаторы) будут иметь доступные адреса, настроенные или обнаруженные на всех интерфейсах, обращенных к хосту. Затем сетевые устройства могут объявлять эти подключенные интерфейсы как достижимые места назначения. В этой ситуации доступным местом назначения является канал (или провод), сеть или подсеть, а не отдельные узлы. Это наиболее распространенный способ получения маршрутизаторами информации о доступности сетевого уровня. Хосты могут зарегистрироваться в службе идентификации. В некоторых системах служба (централизованная или распределенная) отслеживает, где подключены хосты, включая такую информацию, как маршрутизатор первого прыжка, через который должен быть отправлен трафик, чтобы достичь их, сопоставление имени с адресом, услуги, которые каждый хост способен предоставить, услуги, которые каждый хост ищет и/или использует, и другую информацию. Службы идентификации распространены, хотя они не всегда хорошо видны сетевым инженерам. Такие системы очень распространены в высокомобильных средах, таких как беспроводные сети, ориентированные на потребителя. Плоскость управления может извлекать информацию из системы управления адресами, если она развернута по всей сети. Однако это очень необычное решение. Большая часть взаимодействия между плоскостью управления и системами управления адресами будет осуществляться через локальную конфигурацию устройства; система управления адресами назначает адрес интерфейсу, а плоскость управления выбирает эту конфигурацию интерфейса для объявления в качестве достижимого назначения. Объявление достижимости и топология После изучения информации о топологии и доступности плоскость управления должна распространить эту информацию по сети. Хотя метод, используемый для объявления этой информации, в некоторой степени зависит от механизма, используемого для расчета путей без петель (поскольку какая информация требуется, где рассчитывать пути без петель, будет варьироваться в зависимости от того, как эти пути вычисляются), существуют некоторые общие проблемы и решения, которые будут применяться ко всем возможным системам. Основные проблемы заключаются в том, чтобы решить, когда объявлять о доступности и надежной передаче информации по сети. Решение, когда объявлять достижимость и топологию Когда плоскость управления должна объявлять информацию о топологии и доступности? Очевидным ответом может быть "когда это будет изучено", но очевидный ответ часто оказывается неправильным. Определение того, когда объявлять информацию, на самом деле включает в себя тщательный баланс между оптимальной производительностью сети и управлением объемом состояния плоскости управления. Рисунок 9 будет использован для иллюстрации. Предположим, хосты A и F отправляют данные друг другу почти постоянно, но B, G и H вообще не отправляют трафик в течение некоторого длительного периода. В этой ситуации возникают два очевидных вопроса: Хотя для маршрутизатора C может иметь смысл поддерживать информацию о доступности для B, почему D и E должны поддерживать эту информацию? Почему маршрутизатор E должен поддерживать информацию о доступности хоста A? С точки зрения сложности существует прямой компромисс между объемом информации, передаваемой и удерживаемой в плоскости управления, и способностью сети быстро принимать и пересылать трафик. Рассматривая первый вопрос, например, компромисс выглядит как способность C отправлять трафик из B в G при его получении по сравнению с C, поддерживающим меньше информации в своих таблицах пересылки, но требующимся для получения информации, необходимой для пересылки трафика через некоторый механизм при получении пакетов, которые должны быть переадресованы. Существует три общих решения этой проблемы. Проактивная плоскость управления: плоскость управления может проактивно обнаруживать топологию, вычислять набор путей без петель через сеть и объявлять информацию о достижимости. Упреждающее обнаружение топологии с реактивной достижимостью: плоскость управления может проактивно обнаруживать топологию и рассчитывать набор путей без петель. Однако плоскость управления может ждать, пока информация о доступности не потребуется для пересылки пакетов, прежде чем обнаруживать и / или объявлять о доступности. Реактивная плоскость управления: плоскость управления может реактивно обнаруживать топологию, вычислять набор путей без петель через сеть (обычно для каждого пункта назначения) и объявлять информацию о доступности. Если C изучает, сохраняет и распределяет информацию о доступности проактивно или в этой сети работает проактивная плоскость управления, то новые потоки трафика могут перенаправляться через сеть без каких-либо задержек. Если показанные устройства работают с реактивной плоскостью управления, C будет: Подождите, пока первый пакет в потоке не направится к G (к примеру) Откройте путь к G с помощью некоторого механизма Установите путь локально Начать пересылку трафика в сторону G Тот же процесс должен быть выполнен в D для трафика, перенаправляемого к A от G и F (помните, что потоки почти всегда двунаправленные). Пока плоскость управления изучает путь к месту назначения, трафик (почти всегда) отбрасывается, потому что сетевые устройства не имеют никакой информации о пересылке для этого достижимого места назначения (с точки зрения сетевого устройства достижимый пункт назначения не существует). Время, необходимое для обнаружения и создания правильной информации о пересылке, может составлять от нескольких сотен миллисекунд до нескольких секунд. В это время хост и приложения не будут знать, будет ли соединение в конечном итоге установлено, или если место назначения просто недоступно. Плоскости управления можно в целом разделить на: Проактивные системы объявляют информацию о доступности по всей сети до того, как она понадобится. Другими словами, проактивные плоскости управления хранят информацию о доступности для каждого пункта назначения, установленного на каждом сетевом устройстве, независимо от того, используется эта информация или нет. Проактивные системы увеличивают количество состояний, которые передаются и хранятся на уровне управления, чтобы сделать сеть более прозрачной для хостов или, скорее, более оптимальной для краткосрочных и чувствительных ко времени потоков. Реактивные системы ждут, пока информация о пересылке не потребуется для ее получения, или, скорее, они реагируют на события в плоскости данных для создания информации плоскости управления. Реактивные системы уменьшают количество состояний, передаваемых на уровне управления, делая сеть менее отзывчивой к приложениям и менее оптимальной для кратковременных или чувствительных ко времени потоков. Как и все компромиссы в сетевой инженерии, описанные здесь два варианта, не являются исключительными. Можно реализовать плоскость управления, содержащую некоторые проактивные и некоторые реактивные элементы. Например, можно построить плоскость управления, которая имеет минимальные объемы информации о доступности, описывающей довольно неоптимальные пути через сеть, но которая может обнаруживать более оптимальные пути, если обнаруживается более длительный или чувствительный к качеству обслуживания поток. Что почитать дальше? Советуем материал про реактивное и упреждающее распределение достижимости в сетях.
img
Порой появляется необходимость делиться своими файлами с друзьями, которые живут в соседней квартире и делят с вами вашу локальную сеть. Или же у вас есть NAS сервер и вы решили организовать свое файловое хранилище, куда могли бы получить доступ с любой точки мира. Правда, закачать файлы в облако и пользоваться оттуда никто не отменял, но туда вы не поместите терабайты информации, которая хранится у вас на домашнем сетевом хранилище. Вот тут на помощь приходит локальный FTP сервер. Сетевые файловые накопители имеют встроенную возможность и соответствующие средства для организации данного сервиса. О возможностях конкретных моделей можно узнать на сайте производителя. Но мы решили создать свой сервер на обычном домашнем ноутбуке. Для претворения в жизнь нашей затеи выбрали бесплатную и достаточно известную программу FileZilla. С клиентской частью наверное вам приходилось работать чаще, но есть еще и серверная часть, которая позволяет создавать свой FTP сервер. Качаем программу с официально сайта и устанавливаем. Установка стандартная поэтому покажу ту часть, которая может вызвать вопросы. На этом месте установки выбираем Установить как службу, чтобы при загрузке компьютера сервер запускался автоматически. Порт можно поменять, но особого смысла нет, так как он используется только для локального подключения к серверу. Далее переходим к настройке самой программы. Тут тоже буду останавливаться только на основных моментах, которые критичны для работы системы. Итак, первым делом в меню Edit выбираем Settings. В пункте General Settings выставляем значение как на рисунке: Listen on these ports указывает на то, какие порты программа должна прослушивать для входящих соединений. Для большей безопасности их можно изменить и поставить любой порт выше 1023. В принципе можно и выше 1, но хорошим тоном считается выбор не общеизвестных портов, дабы избежать конфликтов. Number of threads указывает на число потоков. Рекомендуется устанавливать равным числу установленных процессоров умноженных на 2. Connection timeout устанавливает время в сессии для поключенного пользователя. No Transfer timeout здесь указывается время после последнего трансфера файлов, по истечении которого соединение с сервером будет прервано. Login timeout задает время ожидания ввода пользователем учётных данных. В принципе в локальной сети этих настроек вполне достаточно. Следующий пункт Passive mode settings, который настраивается если вы подключаетесь к вашему серверу извне, а сервер стоит за маршрутизатором, который в свою очередь преобразует ваш серый IP, который начинается с 192.168. в белый, то бишь публичный, который виден всему Интернету. Use custom ranges указываете порты, которые система выборочно откроет при инициализации подключения извне. Use following IP указываете ваш внешний IP адрес, который можете посмотреть в Интернете вбив в поисковик ключевое слово my ip. Retrieve external IP address from тут остановлюсь поподробней. Дело в том, что внешний IP у обычных поользователей меняется. И если вы укажете текущий адрес, то через некоторое время он будет недоступен. Тут на помощь приходит Dynamic DNS. Это такой вид услуги, которая позволяет обращаться к вашему внешнему IP адресу по доменному имени, например mycomp.com. Для этого нужно зарегистрироваться на одном из многочисленных сервисов, предоставляющих данную услугу, выбрать себе доменное имя и настроить соответствующим образом маршрутизатор. Но обо всем по порядку. Хотя на рынке много поставщиков услуги указанного вида, я остановил свой выбор на noip.com. Во-первых, потому что этот сервис поддерживается моим роутером. А во-вторых, здесь бесплатно предоставляется доменное имя на месяц, а по истечении вы просто заходите и заново регистрируете ваш домен. Для регистрации переходим на сайт noip.com. В главном окне в разделе Quick Add вписываем любое название и выбираем домен третьего уровня. Нажимаем Add hostname и наш домен готов. Затем открываем панель управления маршрутизатором, переходим на вкладку Динамический DNS, выбираем поставщика услуг, вводим имя пользователя указанный при регистрации на сайте сервиса, пароль и доменное имя. Включаем DNS и нажимаем Войти. Если всё указано правильно состояние подключения будет "Успешно!" После всего этого в настройка FileZilla в строке Retrieve external IP address from указываем наш DNS адрес. Дело остается за малым создать пользователя и протестировать подключение. Для этого в меню Edit выбираем Users. В открывшемся окне нажимаем на Add, задаём ему имя, ставим галочки перед Enable account и Password и вводим пароль. Все остальные настройки можно не менять: Затем создаем папку для пользователя, даем ему нужные права и указываем как домашнюю директорию Set as home dir, чтобы при подключении пользователя перебросило сразу в нужное место. Можно для каждого пользователя создать отдельную папку, а также назначать разные уровни доступа на одну и ту же директорию. Но что если вы всё это сделали, но друзья из Канады всё же не могут подключиться? Проблем могут быть две. Первая, не настроен переброс портов на роутере, вторая не прописано нужное правило на сетевом экране. Так настроим! Для переброса портов на маршрутизаторе TP-Link переходим на вкладку Переадресация -> Виртуальные сервера. По умолчанию здесь никаких записей нет. Нажимаем на Добавить и вводим нужные значения. Порт сервиса указываем внешний порт, на который будут идти обращения на наш IP. Здесь можно прописать и свои значения, но при подключении извне нужно будет прописать их в настройках клиента. Стандартный порт FTP 21. Внутренний порт порт, который слушается на нашем сервере. В нашем случае это тоже 21. IP-адрес адрес компьютера, где установлена серверная часть программы FileZilla. Протоколы тут выбор не велик либо TCP, либо UDP. О протоколах можно говорить долго, но вкратце TCP гарантирует доставку отправленного пакета, но работает медленней, так как приходится ждать подтверждения получения каждой порции данных. UDP же шустрее TCP, но его не заботит получит ли адресат пакет или нет. FTP работает поверх TCP. Есть еще набор предопределённых портов, который можно выбрать из выпадающего списка. Если всё стандартно, то выбираем FTP и нам не придётся вручную вводить все значения. Затем нажимаем на Сохранить. Далее переходим к настройке межсетевого экрана. Для начала, чтобы убедиться, что именно он блокирует попытки подключения, лучше его вовсе отключить. Если всё заработало, то переходим к соответствующим настройкам. На Панели управления выбираем Windows Defender Firewall -> Advanced Settings. Нажимаем на Inbound Rules (Правила для входящих соединений) и в правой панели выбираем New Rule. В открывшемся окне значения ставим как на рисунке: Затем указываем порты и протоколы, для которых хотим разрешить соединение. Для FTP указываем TCP/21: Нажимаем Next, указываем действие Разрешить (Allow the connection): Профиль указывает для каких сетей будет действовать данное правило. Выбираем все: В конце вводим название правила и нажимаем Finish. Для Passive Mode делаем все тоже самое, только значение портов указываем те, что были прописаны в настройках программы в пункте Passive mode settings. Тут мы настроили правило для входящих подключений. Также нужно настроить правило для исходящих соединений. Все то же самое, просто настраивается в Outbound Rules (Правила для исходящих подключений). После этого все должно начать работать. Если что-то не работает, попробуйте отключить межсетевой экран антивируса, если там таковой есть. В любом случае программа вам даст подсказки: код и описание ошибки, по причине которой не смог подключиться пользователь. (В данном случае ошибок нет, цель рисунка наглядно показать как выглядит сообщение программы)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59