Разное

Как зайти в конфиг: Как зайти в конфиг

13.08.1989

Содержание

Как зайти в конфиг

Если внимательно посмотреть на Windows 10, обзор основных функций и настроек, нетрудно заметить, что вызов многих управляющих системой служб и компонентов производится теми же командами, которые были предусмотрены и в более ранних версиях. Неудивительно, ведь основная структура ОС осталась без изменений, не говоря уже о языке программирования, на котором она написана. Рассмотрим одну из самых востребованных универсальных команд — msconfig (Windows 10). Как зайти в настройки конфигурации системы и применить необходимые параметры, читайте ниже. Заодно обратите внимание на некоторые важные разделы, которые помогут даже в устранении некоторых неполадок и сбоев.

Конфигурация системы Windows 10: для чего используется эта служба?

Данный компонент наряду с «Диспетчером задач» является важной составляющей в тонкой настройке любой версии Windows. Здесь есть несколько основных элементов, отвечающих за корректный запуск системы.

Как уже понятно, для вызова таких параметров используется команда, отвечающая за исполняемый файл, msconfig (Windows 10). Как зайти в саму панель параметров? Очень просто.

Параметры конфигурации msconfig (Windows 10): как зайти?

Можно, конечно, порыться в «Проводнике» и найти соответствующий файл запуска. Но с точки зрения экономии времени такой вариант не самый удобный.

Проще всего использовать кнопку «Пуск», правым кликом на которой вызывается дополнительное меню, где имеется ссылка на консоль «Выполнить». Но и это не самый лучший способ. Оптимальным вариантом можно назвать использование быстрого сочетания клавиш Win + R, которое отвечает за вызов соответствующего меню, где и прописывается команда msconfig (Windows 10). Как зайти в этой или любой другой системе, уже понятно. Но тут нужно обратить внимание на один важный момент.

Применять эту команду, равно как и основные настройки запуска, следует исключительно с правами администратора. В противном случае система просто не даст разрешения на ее выполнение.

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

Кроме того, в некоторых случаях можно использовать первую вкладку, на которой активируется, например, безопасный запуск или отключаются ненужные компоненты. Это может пригодиться при старте системы в том же безопасном режиме, когда производится исправление ошибок и сбоев Windows.

Несколько слов напоследок

Конечно, это далеко не все возможности по тонкой настройке системы, а только самые основные. Однако на данный момент нас больше интересовал вопрос входа в раздел этих параметров, так что и было представлено соответствующее решение. И для вызова таких настроек лучше всего использовать именно сочетания клавиш, впрочем, как и для других команд, вводимых в консоли «Выполнить».


«Конфигурация системы»

— это специальное приложение для настройки некоторых параметров загрузки, автозагрузки и управления службами в ОС Windows. В этой статье мы рассмотрим способы его запуска в «семерке».

Запуск «Конфигурации системы» в Виндовс 7

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

Для доступа можно воспользоваться «Панелью управления», системным поиском, «Командной строкой» и другими инструментами. Ниже мы поговорим обо всех вариантах.

Способ 1: «Панель управления»

  1. Открываем меню «Пуск» и выбираем пункт, указанный на скриншоте.


В «Панели управления»

имеется раздел «Администрирование», в котором располагаются различные системные инструменты, а точнее, их ярлыки. Увидеть ссылку на него можно, включив режим просмотра «Мелкие значки». Нажимаем.


«Конфигурация системы» открывается с помощью соответствующего ярлыка.

Способ 2: Системный поиск

С помощью этого средства можно переходить к различным ресурсам и запускать приложения, в том числе и нужное нам. Идем в стартовое меню и вводим в поле поиска слово

Этой командой мы сообщаем системе, что нам требуется показать исполняемый файл msconfig.exe, который открывает окно «Конфигурации» (нужно просто нажать на него в поисковой выдаче).

Способ 3: Строка «Выполнить»

Строка

«Выполнить» или «Run» вызывается сочетанием клавиш Windows+R, кнопкой из меню «Пуск» (если ее отображение было включено в настройках) или другим способом, описанным в статье ниже.

Запустить необходимое приложение можно уже знакомой нам командой и нажатием ОК.

Способ 4: «Командная строка»

«Командная строка» спасает нас в тех ситуациях, когда нет возможности (или необходимости) воспользоваться графическим интерфейсом системы или требуется произвести действия по удаленному администрированию. Открывается этот инструмент различными способами – через меню «Пуск», из поиска или строки «Выполнить».

Команда, запускающая «Конфигурацию» все та же:

Способ 5: Системная папка

Еще одним вариантом открытия является непосредственный запуск двойным кликом исполняемого файла приложения, который находится по пути:

Называется «экзешник» msconfig.exe.

Обратите внимание, что буква системного диска (у нас это «C») может быть другой.

Мы разобрали пять вариантов запуска приложения «Конфигурация системы» в ОС Виндовс 7. Они отличаются набором необходимых инструментов, что помогает добраться до параметров в разных ситуациях.

Отблагодарите автора, поделитесь статьей в социальных сетях.

Операционная система Windows 7 позволяет управлять параметрами загрузки установленных ОС, манипулировать службами и автозагрузкой. Для этого предназначена утилита «Конфигурация системы», вызываемая командой msconfig.

Как зайти в конфигуратор msconfig.exe?

Существует несколько способов запуска утилиты. Мы приведем 3 самых простых.

Строка поиска

Для запуска утилиты необходимо ввести в строке поиска меню «Пуск» слово msconfig, а потом в результатах поиска выбрать найденную утилиту.

Команда «Выполнить»

Откройте подменю «Выполнить», расположенное в меню «Пуск», и введите в текстовое поле msconfig, после чего нажмите Enter или кнопку «ОК».

Командная строка

Откройте Пуск – Все программы, а потом в папке «Стандартные» выберите «Командная строка».

В открывшемся окне с черным фоном введите

msconfig и нажмите Enter.

Кроме перечисленных способов есть возможность открыть утилиту непосредственно из той папки, где она находится. Для этого перейдите в каталог C:WindowsSystem32 и запустите msconfig.exe.

Правильная настройка msconfig под текущие нужды

Окно утилиты «Конфигурация системы» (MSCONFIG) имеет несколько вкладок: «Общие», «Загрузка», «Службы», «Автозагрузка» и «Сервис».

Общие

Раздел «Общие» предназначен для выбора одного из трех вариантов загрузки операционной системы. По умолчанию выбран «Обычный запуск», который загружает все необходимые драйвера, службы и программы в автозагрузке.

Пользователь может установить «Диагностический запуск», чтобы загрузить только необходимые для функционирования системы драйвера и службы. Такой режим используется для выявления причин появления ошибок в работе Windows 7. Например, при загрузке у вас начала появляться неизвестная вам ошибка или через какое-то время просто компьютер перезагружается или выдает синий экран «смерти». Причиной могут быть ошибки в драйверах или системных файлах, либо ошибку может вызывать установленное приложение. Если в диагностическом режиме проблем в работе системе не наблюдается, то виной тому пользовательская программа.

«Выборочный запуск» служит для дальнейшей диагностики и выявления причин возникновения проблем в работе системы. Вы можете последовательно включать дополнительные службы и программы автозагрузки. Рекомендуется произвести запуск системы, включив сначала системные службы, потом включить элементы в автозагрузке и перезагрузиться. На последнем этапе включите «Использовать оригинальную конфигурацию загрузки», что будет соответствовать обычному варианту запуска ОС. Таким образом, вы сможете локализовать причину и выявить ту группу программ или служб, которые приводят к появлению ошибок.

Загрузка

Раздел «Загрузка» позволяет управлять загрузкой установленных операционных систем. Если у вас установлено несколько систем, то можно настроить, какая из них будет загружаться первой. Для этого выберите из списка одну из систем и кликнете по кнопке «Использовать по умолчанию». Дополнительно можно выставить время ожидания выбора пользователем той или иной системы, изменив интервал времени в поле «Таймаут».

Здесь же можно настроить и дополнительные параметры загрузки. Включение функции «Безопасный режим» позволит запустить операционную систему с ограниченными возможностями. При этом загружаются только самые необходимые драйвера и устройства. Такой режим используется для диагностики программных неисправностей.

Предусмотрено несколько вариантов работы в безопасном режиме:

  • «Минимальная загрузка», по сути, позволяет загрузить минимальный набор драйверов и использовать только необходимое количество устройств, причем без поддержки сетевых служб и устройств.
  • «Другая оболочка» позволяет дополнительно использовать в безопасном режиме командную строку, однако проводник Windows будет недоступен, так же как и сеть.
  • «Восстановление Active Directory» – позволяет запустить в безопасном режиме проводник Windows с поддержкой каталогов Active Directory.
  • «Сеть» – загружает сетевые службы и устройства.

В разделе «Загрузка» можно задействовать некоторые параметры загрузки ОС. Все эти параметры служат инструментами диагностирования загрузки операционной системы.

  • «Без GUI» – отключает анимацию загрузки операционной системы.
  • «Журнал загрузки» – включает возможность сохранить в файл информацию о загрузке системы (вести журнал загрузки). Журнал сохраняется в файле «Ntbtlog.txt», который располагается в системной папке %SystemRoot%.
  • «Базовое видео» – дает возможность подменить драйвера видеокарт. То есть вместо установленных видеодрайверов будут использоваться стандартные драйвера VGA.
  • «Информация об ОС» – позволяет отображать во время загрузки системы информацию о загружаемых драйверах.

Также вы можете установить другие дополнительные параметры загрузки Windows 7, кликнув по соответствующей кнопке под списком ОС. Задачей этого раздела является установка ограничений использования физических ресурсов при запуске.

  • «Число процессоров» – ограничивает использование ядер многоядерных процессоров, указав их число.
  • «Максимум памяти» – устанавливает лимит задействованной оперативной памяти.
  • «Блокировка PCI» – позволяет ограничить использование устройств ввода-вывода, подключенных к шине PCI.
  • «Отладка» – активирует режим отладки. Он используется преимущественно разработчиками драйверов и программного обеспечения.

Службы

Раздел «Службы» – используется для включения и отключения всех служб операционной системы. В процессе диагностики системы можно отключить некоторые службы для выявления причин неисправностей. Чтобы скрыть системные службы, установите галочку «Не отображать службы Майкрософт». После этого на вкладке «Общие» установите режим «Выборочный запуск» и включите пункт «Загружать системные службы». На вкладке «Службы» отключите все остальные пользовательские службы, перезагрузите компьютер. Если после этого проблемы не возникают, то причиной являются именно пользовательские службы. Теперь последовательно включая службы, вы легко определите источник проблем. Если же проблема не исчезает, то причина кроется в системных службах. Отключите все службы и потом последовательно включайте их, чтобы выявить источник сбоя системы.

Автозагрузка

Раздел «Автозагрузка» – позволяет включить или отключить автоматический запуск тех или иных программ при старте ОС. Чтобы отключить автоматическую загрузку какой-либо программы, следует снять галочку напротив выбранной программы и нажать кнопку «ОК». Управлять параметрами автозагрузки можно с целью диагностики неисправностей или с целью повышения скорости загрузки системы. Нередко у пользователя в процессе эксплуатации компьютера в автозагрузке находится до 20 приложений, о большинстве из которых он даже не подозревает. Естественно такое количество программ существенно замедляет загрузку Windows. Если вы проводите диагностику системы, то можно отключить все программы в автозагрузке, а потом последовательно включать их, чтобы определить источник ошибки.

Сервис

Раздел «Сервис» служит для запуска дополнительных системных утилит. Здесь пользователь может запустить дополнительные средства диагностики, администрирования и управления операционной системой. Достаточно выбрать интересующую вас утилиту (рядом есть краткое описание каждой из них) и нажать на кнопку «Запуск», чтобы открыть ее.

Как видите утилита «MSCONFIG» достаточно проста в обращении и позволяет диагностировать программные неисправности при загрузке системы Windows. Но все же хаотичные изменения в данном приложении могут привести к нежелательным последствиям, поэтому записывайте изменения, которые вы производите, чтобы в случае проблем легко вернуть все в исходное положение.

как зайти в настройки конфигурации системы

В Windows встроено много инструментов для управления компьютером и операционной системой. Один из них — модуль «Конфигурация системы». Эта среда создана для управления автозагрузкой программ, параметрами запуска компьютера, службами и многим другим.

Что такое MSConfig и для чего нужен этот модуль

MSConfig, или «Конфигурация системы» (КС) — это среда настройки важнейших компонентов Windows. КС отвечает за режимы запуска операционной системы, автозагрузку приложений при старте и работу служб. Конфигурацией также можно пользоваться для запуска некоторых системных приложений, таких как командная строка, среда «Управление компьютером», модуль диагностики неполадок и другие. MSConfig позволяет, кроме того, управлять разными операционными системами, очерёдностью их запуска и даже удалением одной из версий Windows, если на компьютере их установлено несколько.

Автор постоянно использует «Конфигурацию системы» для удобной настройки служб в процессе оптимизации ОС. Дело в том, что интерфейс MSConfig лучше всего подходит для отключения лишних программ. Существенно реже MsConfig используется автором для запуска безопасного режима и разных вспомогательных сервисов Windows.

Как войти в «Конфигурацию системы» в Windows 10

Как и любой важный элемент управления системой, MSConfig имеет несколько вариантов запуска.

Рассмотрим следующие варианты входа в MSConfig:

  • с помощью утилиты «Выполнить» или консоли командной строки;
  • через «Проводник» Windows 10;
  • через «Поиск»;
  • через меню «Пуск».

Вход с помощью утилиты «Выполнить» или консоли командной строки

Стандартная утилита «Выполнить», как и «Командная строка», являются исполняемыми программами Windows и могут запускать внутренние процессы системы по запросу пользователя.

Чтобы запустить MSConfig через утилиту «Выполнить», делаем следующее:

  1. В строке поиска Windows прописываем «Выполнить» и выбираем наиболее подходящий из найденных вариантов.В строке поиска Windows прописываем «Выполнить» и выбираем наиболее подходящий вариант
  2. В открывшемся окне прописываем строку MSConfig и нажимаем OK.В окне «Выполнить» прописываем MSConfig и нажимаем OK

Аналогичным образом открываем «Конфигурацию» через консоль командной строки.

  1. В строке поиска прописываем CMD и выбираем наиболее подходящий вариант.В строке поиска прописываем CMD и выбираем подходящий вариант
  2. В окне консоли командной строки набираем команду msconfig и запускаем её клавишей Enter.В окне консоли командной строки набираем команду msconfig и запускаем её клавишей Enter

Вход через «Проводник» Windows 10

Как и любая программа, КС имеет собственный исполняемый файл, а это значит, что её можно запустить вручную. Для этого:

  1. Через «Проводник» или любой другой файловый менеджер открываем папку C:\Windows\System32.
    В «Проводнике» открываем папку C:\Windows\System32 и запускаем файл msconfig.exe
  2. Запускаем файл msconfig.exe.

Вход через «Поиск»

К «Конфигурации системы» можно обратиться напрямую через функцию поиска.

  1. В строке поиска вводим «Конфигурация системы» или msconfig и выбираем лучшее соответствие.
    В строке поиска прописываем «Конфигурация системы» или msconfig и выбираем лучшее соответствие
  2. Запускаем найденное приложение.

Вход через меню «Пуск»

Как административный элемент, КС находится в списке специальных программ Windows. Поэтому её можно запустить так:

  1. Открываем меню «Пуск».
  2. В списке программ щёлкаем по строке «Средства администрирования Windows» и в открывшемся подменю выбираем элемент «Конфигурация системы».В списке программ щёлкаем по строке «Средства администрирования Windows» и выбираем «Конфигурацию системы»

Видео: как открыть «Конфигурацию системы»

Как использовать MSConfig

Окно утилиты msconfig имеет пять вкладок, соответствующих её функциональным возможностям:

  1. Вкладка «Общие» позволяет выбрать вариант загрузки системы, например обычный или диагностический запуск. Если есть подозрение на заражение компьютера вирусами или замечены неполадки в работе WIndows, необходимо воспользоваться «Диагностическим запуском» для отката на предыдущую конфигурацию или для лечения системы.Во вкладке «Общие» можно изменить вариант запуска компьютера с обычного на диагностический
  2. Вкладка «Загрузка» также отвечает за запуск системы, но создана не для исправления возможных ошибок, а для использования расширенных настроек. К примеру, если на компьютере установлено больше одной операционной системы, то в этой вкладке можно выбрать, какая ОС будет загружаться по умолчанию, выставить тайм-аут для возможности переключить версии Windows при запуске и прочее.Во вкладке «Загрузка» можно выбрать операционную систему, загружаемую по умолчанию, а также установить тайм-аут для выбора системы пользователем
  3. Вкладка «Службы» позволяет активировать или деактивировать ту или иную службу Windows без особых хлопот: достаточно всего лишь снять или установить галочку в соответствующей строке и сохранить изменения. Это гораздо проще, чем останавливать каждую службу отдельно через её свойства в одноимённом интерфейсе.Во вкладке «Службы» можно массово отключать и включать службы Windows
  4. Вкладка «Автозагрузка» перенаправляет пользователя в программу «Диспетчер задач» для управления приложениями, запускающимися при старте Windows.Через вкладку «Автозагрузка» можно запустить «Диспетчер задач» и отредактировать список автоматически запускаемых программ
  5. Вкладка «Сервис» содержит информацию обо всех основных служебных утилитах операционной системы. Их можно запустить прямо из интерфейса «Конфигурации», выбрав приложение и нажав кнопку «Запуск».Во вкладке «Сервис» отметьте нужную программу и запустите её, нажав кнопку «Запуск»

Что делать, если «Конфигурация системы» не запускается

Если среда КС не запускается, это, скорее всего, означает что исполняемый файл msconfig отсутствует или повреждён. В таких случаях выручает системная утилита SFC с функцией восстановления системных файлов. Для восстановления повреждённых системных файлов делаем следующее:

  1. Вызываем консоль командной строки, как описано выше. В консоли вводим команду sfc /scannow и нажимаем клавишу Enter.В консоли командной строки вводим команду sfc /scannow и запускаем её клавишей Enter
  2. Обязательно дожидаемся, пока программа закончит сканирование и восстановление файлов, затем перезагружаем компьютер.

Существует также другая возможная причина, по которой не запускается КС — лишние параметры в реестре Windows. Исправить эту ситуацию можно так:

  1. В окне поиска Windows вводим строку regedit и выбираем наиболее подходящий результат.В окне поиска Windows вводим строку regedit и выбираем лучшее соответствие
  2. В открывшемся окне системного реестра переходим в папку HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Shared Tools\MSConfig через древо директорий слева и удаляем все параметры, кроме значения «По умолчанию».В папке MSConfig удаляем все параметры, кроме значения «По умолчанию»
  3. Перезагружаем компьютер.

На памяти автора был всего один случай, когда «Конфигурация системы» не запускалась. Виной тому были последствия лечения системы от вирусов. Процедура восстановления системных файлов исправила ситуацию.

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

Здравствуйте! Меня зовут Алексей. Мне 27 лет. По образованию — менеджер и филолог. Оцените статью: Поделитесь с друзьями!

Режимы командной строки Cisco | CiscoTips

Вся информация, приведённая в данной статье касается как маршрутизаторов, так и коммутаторов Cisco под управлением IOS. Независимо от того, каким образом осуществляется доступ к командной строке устройства (Telnet, SSH, Console), настроенное устройство потребует ввод пароля. Если устройство не настроено, то подключиться к нему можно только через консоль и в этом случае, как правило пароль отсутствует. Впрочем, некоторые модели имеют IP адрес, логин и пароль по умолчанию – в этом случае их можно узнать в инструкции. Далее можно начинать работу с устройством. Устройства Cisco имеют несколько режимов командной строки:

  1. Пользовательский режим (user mode)
  2. Привилегированный режим (privileged mode)
  3. Режим глобальной конфигурации (global configuration mode)
  4. Режим специфической конфигурации

Понять, в каком режиме мы находимся очень просто, для этого надо посмотреть на приглашение в командной строке. Оно будет иметь следующий вид:

  1. Для пользовательского режима Router>
  2. Для привилегированного режима Router#
  3. Для режима глобальной конфигурации Router(config)#
  4. Для режимов специфической конфигурации Router(config-*)#, где на месте звёздочки находится название подрежима. Например, Router(config-if)# – режим настройки интерфейса маршрутизатора

Вместо слова Router пишется имя устройства. По умолчанию, маршрутизаторы имеют имя Router, коммутаторы – Switch, но обычно при конфигурировании эти имена меняют на более конкретные. Подробнее об этом можно прочитать в статье hostname.

Пользовательский режим

В этот режим мы попадаем изначально, здесь доступен только ограниченный перечень команд, выполнение которых не должно навредить функционированию устройства. Например, из этого режима можно посмотреть версию операционной системы командой show version или запустить команду ping. Обычно доступ к этому режиму дают младшим техникам, чтобы они могли диагностировать некоторые проблемы самостоятельно, но не могли ничего испортить в конфигурации.

Привилегированный режим

Для перехода в этот режим необходимо из пользовательского режима выполнить команду enable и в случае необходимости ввести пароль. После перехода, нам доступен полный перечень команд и возможность перехода в режим конфигурации без пароля. Таким образом, зная пароль на вход на устройство и пароль на привилегированный режим, человек имеет полный доступ к маршрутизатору, так как дальше уже никаких паролей вводить не требуется. Для выхода обратно в пользовательский режим используется команда disable.

Режим глобальной конфигурации

Этот режим позволяет вносить изменения в конфигурацию устройства. Для входа в него необходимо из привилегированного режима, выполнить команду configure terminal. Ввод паролей в данном случае не потребуется.

Режимы специфической конфигурации

Этих режимов множество и они являются подрежимами режима глобальной конфигурации. Например, введя в режиме глобальной конфигурации команду interface FastEthernet 0/0 мы перейдём в подрежим настройки соответствующего интерфейса (config-if). Множество режимов специфической конфигурации соответствует множеству разных ветвей глобальной конфигурации.

Примеры

Чтобы было понятнее, о чём мы говорили выше, давайте рассмотрим пример работы с режимами:

Press RETURN to get started!
User Access Verification
Password:
Router>
Router>enable
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#
Router(config)#interface FastEthernet 0/1
Router(config-if)#exit
Router(config)#exit
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#disable
Router>exit
Router con0 is now available
Press RETURN to get started.

В данном примере на маршрутизаторе настроен пароль на консоль, но не настроен пароль на привилегированный режим. Проанализируем содержимое примера. Вначале при подключении по консоли нам надо нажать Enter и ввести пароль (символы пароля не отображаются).

Press RETURN to get started!
User Access Verification
Password:
Router>

Как видно из последней строчки, имя маршрутизатора задано стандартное – Router, а судя по тому, что после него стоит угловая скобка, мы попали в пользовательский режим. Далее переходим в привилегированный режим:

Судя по тому, что после имени вместо угловой скобки появилась решетка, нам это удалось, а судя по тому, что нас не спросили пароль, пароль на этот режим не задан. Переходим в режим глобальной конфигурации:

Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#

Слово (config) говорит о том, что мы находимся в режиме глобальной конфигурации. Попробуем перейти в подрежим настройки интерфейса. Например, на данном маршрутизаторе есть интерфейс FastEthernet 0/1 – зайдём в подрежим его настройки:

Router(config)#interface FastEthernet 0/1
Router(config-if)#

Приглашение снова поменялось, в этом подрежиме можно вводить параметры, относящиеся к интерфейсу, например, включить его, или задать IP адрес. Далее выходим из режимов в обратном порядке. Обратите внимание, как каждый раз меняется приглашение командной строки:

Router(config-if)#exit
Router(config)#exit
Router#
%SYS-5-CONFIG_I: Configured from console by console
Router#disable
Router>exit
Router con0 is now available
Press RETURN to get started.

Заканчивается всё тем, что мы вернулись к тому же состоянию, с какого начинали – «Нажмите Enter чтобы начать работу с маршрутизатором».

cfg cs go где лежит

На чтение 6 мин. Просмотров 2.3k. Опубликовано

Вы играете с нескольких аккаунтов, а настройки каждый раз у вас разные? Тогда вам к нам.

p, blockquote 1,0,1,0,0 —>

Чтобы не мучиться и менять всё вручную можно просто зайти в папку X:Steamuserdata (X — диск на котором установлен Steam). Тут хранятся все наши локальные настройки. Для того чтобы понять где какой аккаунт, нужно зайти в любую папку и далее перейти в 760
emote730screenshots . Здесь хранятся все ваши скриншоты. По ним можно ориентироваться где какой аккаунт. Далее находим нужные нам аккаунты, записываем на листике. Сами конфиги хранятся в каждой папке 730localcfg . Чтобы перенести все настройки просто скопируйте из папки в которой есть уже нужные настройки в ту папку где необходимо изменить настройки.

p, blockquote 2,1,0,0,0 —>

Обычный же конфиг хранится в SteamSteamAppscommonCounter-Strike Global Offensivecsgocfg

p, blockquote 3,0,0,1,0 —> p, blockquote 4,0,0,0,1 —>

(2 оценок, среднее: 5,00 из 5)

Конфиг CS:GO, они же Cfg — файлы, где хранятся все основные настройки вашего клиента контер-страйк го. Каждое изменение, редактирование с последующим сохранением оказывается в этом файле. Файл конфига никогда не удаляется, а хранит в себе всевозможные данные об аккаунте игрока и настройках самой игры.


Даже несмотря на необычное расширение файла «cfg», отредактировать и просто просмотреть его можно как классическим блокнотом, так и утилитой типа Notepad++ и другими.

p, blockquote 2,0,1,0,0 —>

Правильный путь к конфигу кс го

C:Program FilesSteamsteamappscommonCounter-Strike Global Offensivecsgocfg

p, blockquote 3,0,0,0,0 —>

Каждый новый конфиг, либо отредактированный старый файл .cfg должен быть установлен в путь указанный выше, при этом с заменой, если этот вариант запрашивается.

p, blockquote 4,1,0,0,0 —>

Не забывай, что настройка кс го позволит тебе получить значительный прирост к фпс в игре. Изучи статью, чтобы более детально разбираться в данном вопросе!

p, blockquote 5,0,0,0,0 —>

Путь к конфигурации не обязательно начинается с диска С:, если стим установлен на любом другом диске, то путь к кфг кс го может смотреться иначе:

p, blockquote 6,0,0,1,0 —>

E:SteamsteamappscommonCounter-Strike Global Offensivecsgocfg

(2 оценок, среднее: 4,00 из 5)

Создание autoexec CS:GO позволит вам сохранить ваши личные настройки игры. То есть, при каждом новом запуске игра будет открываться именно с такими уникальными настройками, которые вы задали изначально. Чтобы сделать вашу игру ярче, вас может заинтересовать торговая площадка КС ГО. Просто проверьте, чтобы убедиться, можете ли вы пополнить свой инвентарь новыми скинами или продать несколько лишних предметов.

Еще одни плюсом лично заниматься настройкой autoexec будет то, что это даст начальные умения в программировании. Давайте же притупим к работе над нашим файлом.

Что такое autoexec CS:GO?

Когда вы будете входить в игру, система автоматически применит стандартные установки из config.cfg. В любом случае у вас возникнет желание настроить игру как вам захочется. Вы можете внести свои индивидуальные команды в config.cfg. Но возникнет следующая проблема. Если вы заходите вернутся к стандартным настройкам, то уже не сможете. Ведь вы их изменили в файле, используемом для настроек по умолчанию.

И тут на помощь к нам приходит autoexec.cfg. То есть создав autoexec.cfg у вас остается и config.cfg. При каждом запуске игры, запускаются ваши настройки. Хотите вернутся к стандартным, они всегда у вас под рукой.

Autoexec CS:GO легко отчистить, легко создать несколько таких файлов с разным набором функций для запуска.

Где находится Autoexec cfg CS:GO

Для простоты использования всех этих файлов, рекомендуем создать autoexec cfg в той же папке, где находится config.cfg. Чтобы найти сам config.cfg давайте сделаем следующие шаги:

  1. По умолчанию это путь для ранних версий Counter-Strike: Global Offensive: Program Files Steam steamapps common Counter-Strike Global Offensive csgo cfg config.cfg
  2. Для самой последней версии КС ГО путь такой: Program Files Steam userdata [ваш Steam ID] 730 local cfg config.cfg.

Как узнать свой Steam >

Как найти config.cfg используя Steam?

  1. Заходите в Стим.
  2. Далее в библиотеку.
  3. Далее, зайдите в свойства КС ГО.
  4. Далее, нажимайте на вкладку: Локальные файлы. И ниже нажимайте на кнопку: Посмотреть локальные файлы.
  5. Перед вами появилось окно с файлами. Но в нем может не быть config.cfg. Как в нашем примере. Значит делаем следующее.
  6. Идем на диск по следующему адресу C: Program Files (x86) Steam userdata ваш Steam ID 730 local cfg. И получаем нужный файл.

Как запустить autoexec cfg в CS:GO?

Тут все максимально просто. Сохраните ваш autoexec.cfg в папку с config.cfg. Путь к которой мы нашли выше. Еще можно добавить специальную команду для параметра запуска: +exec autoexec.cfg.

Чтобы выполнить эту процедуру зайдите в Steam настройки парметров запуска и там укажите данную команду: +exec autoexec.cfg.

Как создать autoexec cfg CS:GO?

Для дальнейшей работы вам может понадобится Notepad ++. Если его у вас нет, скачайте. Он бесплатный. Открываете ваш config.cfg в Notepad ++. Далее просто пере сохраните его в этой же папке под названием: autoexec.cfg. Все максимально просто.

Как настроить autoexec.cfg CS:GO правильно?

Изначально, ваш новый файл будет копией стандартного. Ведь вы просто пере сохранили его с новым названием. Как один из вариантов, мы предлагаем вам использовать любой из конфигов про игроков.

  • полностью удалите всю информацию из текущего autoexec.cfg, так как она стандартна;
  • добавьте любую консольную команду на ваше усмотрение.

Важное замечание: вы должны использовать специальные символы «цифра» с обеих сторон для конкретных значений у каждой команды. Пример:

  • cl_crosshaircolor «0» – цвет прицела красный;
  • cl_crosshaircolor «1» – цвет прицела зеленый.

В игре есть еще один важный параметр, обязательно прочитайте, что это, как его включить или выключить — D3D9EX CS:GO.

Выводы

Для максимально эффективной настройки и использования autoexec.cfg CS:GO не останавливайте на лишь одном его изменении. Экспериментируйте, и найдете набор команд которые помогут вам достичь очень хороших результатов в матчах Counter-Strike: Global Offensive.

Конечно, вы должны понимать, что не существует универсальной настройки. Это и хорошо, и плохо. Каждый выберет свой вариант, но мы надеемся на лучший исход, который поможет вам получить самое высокое звание в КС ГО.

10 самых популярных команд Cisco IOS

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

10 команд, которые должен знать каждый пользователь Cisco IOS 

№1: “?”

На первый взгляд использование ? для вызова помощи кажется достаточно простым. Однако Cisco IOS кардинально отличается от других операционных систем в плане использования команды помощи. Поскольку Cisco IOS – это операционная система с командным интерфейсом, существуют тысячи команд для настройки и управления, а использование ? поможет сэкономить немало времени.

Эту команду можно применять различными способами. Во-первых, используйте ?, если не знаете какую команду написать. Например, вы можете написать ? в командной строке для вывода всех возможных команд.

Также можно использовать ?, если вы не знаете аргумент какой-либо команды. Например, можно ввести show ip ? Если команде не нужно никаких аргументов, роутер предложит только CR (возврат каретки).

Наконец, можно использовать? для просмотра всех команд, начинающихся с определённой буквы. Например, show c? покажет все команды, начинающиеся с буквы c.

2: show running-configuration

Команда show runningconfig показывает текущую конфигурацию устройства. Running-configuration – это конфигурация, загруженная в данный момент в оперативную память роутера. Когда вы вносите изменения в оборудование, как раз эта конфигурация изменяется.

Важно помнить, что конфигурация не сохраняется пока не выполнить copy runningconfiguration startupconfiguration. Команду show running-config можно сокращать до sh run.

№3: copy running-configuration startup-configuration

Эта команда сохранит текущие модификации в настройках (running-configuration, которая хранится в RAM), в энергонезависимую RAM (NVRAM). Если внезапно исчезнет электропитание, то данные в NVRAM сохранятся. Другими словами, если вы внесёте изменения в конфигурацию роутера или перезагрузите его, не используя перед этим данную команду, то все изменения будут утеряны. Команду можно сократить до copy run start.

Команда copy также используется для копирования текущей или стартовой конфигурации на TFTP-сервер.

4: show interface

Команда show interface отображает состояние интерфейсов маршрутизатора. Вот некоторые выводимые параметры:

  • Состояние интерфейса (вкл./выкл.)
  • Состояние протокола на интерфейсе
  • Использование
  • Ошибки
  • MTU

Эта команда играет важную роль для диагностики роутера или свитча. Её также можно использовать с указанием конкретного интерфейса, например, sh int fa0/0.

№5: show ip interface

Более распространёнными, чем show interface являются команды show ip interface и show ip interface brief. Команда show ip interface предоставляет огромное количество информации о конфигурации и состоянии протокола IP и его службах на всех интерфейсах. Команда show ip interface brief даёт краткий обзор интерфейсов, включая IP-адрес, статусы Layer 2 и Layer 3.

№6: config terminal, enable, interface, and router

У роутеров Cisco есть несколько разных режимов управления, в каждом из них отображаются или изменяются определённые параметры. Очень важно уметь перемещаться между этими режимами для успешной настройки маршрутизатора.

Когда вы авторизуетесь на роутере (SSH, Telnet, Console), сначала вы попадаете в user mode (пользовательский режим, где приглашение выглядит как >). В этом режиме можно написать enable для переключения в привилегированный режим (приглашение выглядит как #). В привилегированном режиме отображается любая информация, но нельзя вносить никакие изменения. Для того, чтобы попасть в режим глобальной конфигурации введите config terminal (или config t), приглашение станет выглядеть как (config)# . В этом режиме можно изменять любые настройки. Для изменения параметра интерфейса (например, IP-адреса) переключитесь в режим конфигурирования командой interface (приглашение выглядит как (config-if)#). Помимо этого, из режима глобальной конфигурации вы можете попасть в режим конфигурации роутера с помощью команды router {protocol}. Для выхода из любого режима введите exit.

№7: no shutdown

Команда no shutdown включает интерфейс. Она используется в режиме конфигурации интерфейса. Может быть полезна при диагностике или конфигурации новых интерфейсов. Если с каким-либо интерфейсом возникла проблема, можно попробовать ввести shut и no shut. Разумеется, для того, чтобы выключить интерфейс введите shutdown. Команду можно сократить до no shut.

№8: show ip route

Команда show ip route выводит таблицу маршрутизации роутера. Она состоит из списка всех сетей, которые доступны роутеру, их метрике (приоритет маршрутов) и шлюза. Команду можно сократить до sh ip ro. Также после неё могут быть параметры, например sh ip ro ospf (показывает всю маршрутизацию OSPF).

Для очистки всей таблицы маршрутизации необходимо выполнить clear ip route *. Для удаления конкретного маршрута необходимо указать адрес сети после команды, например clear ip route 1.1.1.1.

№9: show version

Команда show version показывает регистр конфигурации (в основном настройки загрузки маршрутизатора), когда последний раз роутер загружался, версию IOS, имя файла IOS, модель устройства, а также количество оперативной и флэш-памяти. Команду можно сократить до sh ver.

№10: debug

У команды debug есть много параметров, и она не работает без них. Эта команда предоставляет детальную отладочную информацию по конкретному приложению, протоколу или службе. Например, debug ip route будет сообщать вам каждый раз, когда маршрут добавляется или удаляется из роутера.

Изменение конфигурации ASP.NET приложения — ASP.NET

  • Статья
  • Чтение занимает 2 мин
Были ли сведения на этой странице полезными?

Оцените свои впечатления

Да Нет

Хотите оставить дополнительный отзыв?

Отзывы будут отправляться в корпорацию Майкрософт. Нажав кнопку «Отправить», вы разрешаете использовать свой отзыв для улучшения продуктов и служб Майкрософт. Политика конфиденциальности.

Отправить

В этой статье

В этой статье описывается редактирование Web.config файла ASP.NET приложения.

Оригинальная версия продукта:   ASP.NET
Исходный номер КБ:   815178

Сводка

Файл Web.config определяет поведение ASP.NET приложений. Корпорация Майкрософт платформа .NET Framework, в том числе ASP.NET, использует XML-форматированные .config для настройки приложений. Это отход от обычных механизмов конфигурации реестра и метабазы. В настоящее время не существует оснастки консоли управления Майкрософт (MMC) или другого средства администрирования, предоставляемого Корпорацией Майкрософт, для создания и изменения .config файлов.

Добавление параметров конфигурации в Web.config

Большинство ASP.NET приложений приходят с предварительно отстроеннымWeb.config, который можно изменить с любым текстовым редактором, например Блокнот. Как правило, Web.config содержат комментарии, которые делают редактирование файла самообъяснительным. Однако может потребоваться добавить элементы конфигурации вWeb.config, в который еще не определен элемент конфигурации. Чтобы добавить стандартный элемент конфигурации в Web.config, выполните следующие действия:

  1. Откройте файл Machine.config в текстовом редакторе, например Блокнот.

    Файл Machine.config находится в %SystemRoot%\Microsoft.NET\Framework\%VersionNumber%\CONFIG\ каталоге.

  2. В файлеMachine.config найдите параметр конфигурации, который необходимо переопрепредить в Web.config файле. Когда элемент имеет несколько строк, элемент начинается с <element_name> строки и заканчивается </element_name> строкой . Элемент также может быть самозаверяться и выглядеть аналогично <element_name attribute1='option' attribute2='option' /> . Пробелы игнорируются. Таким образом, элемент может охватывать несколько строк. Этому элементу может предшествовать комментарий. Комментарий содержится внутри <!-- and --> разметки. Пример элемента конфигурации, который следует, является примером элемента <trace> самозаверяемого. Пример элемента конфигурации имеет несколько атрибутов, охватывает несколько строк <trace> и имеет комментарий в начале.

    <!--
    trace Attributes:
        enabled="[true|false]" - Enable application tracing
        localOnly="[true|false]" - View trace results from localhost only
        pageOutput="[true|false]" - Display trace output on individual pages
        requestLimit="[number]" - Number of trace results available in trace.axd
        traceMode="[SortByTime|SortByCategory]" - Sorts trace result displays based on Time or Category
     -->
    <trace
        enabled="false"
        localOnly="true"
        pageOutput="false"
        requestLimit="10"
        traceMode="SortByTime"
    />
    
  3. Скопируйте весь элемент конфигурации и любые начинающие комментарии в буфер обмена данными.

  4. Определите, как элемент вложен вMachine.config файле.

    Файл Machine.config иерархичен, а элементы конфигурации вложены в другие элементы. При копировании элемента конфигурации из Machine.config файла в файлWeb.configнеобходимо вложение этого элемента конфигурации в тот же элемент, из который он был скопирован. Чтобы определить элемент файла Machine.config, в котором содержится элемент конфигурации, прокрутите вверх в файлеMachine.config, пока не найдете элемент, который открывается, а не закрывается. Элемент, содержащийся в этом элементе, легко определить, так как элементы более высокого уровня имеют меньше отступов.

    Большинство ASP.NET элементов конфигурации содержатся в <system.web> элементе. Конец элемента () должен быть размещен </system.web> после элемента конфигурации.

    Примечание

    Элемент, в котором содержится элемент конфигурации. Этот элемент необходимо вклеить в один и тот же элемент Web.config файле. Элемент конфигурации может вложен в несколько элементов. Необходимо создать все элементы более высокого уровня в Web.config файле.

  5. Закройте Machine.config, а затем используйте текстовый редактор, чтобы открытьWeb.configфайл в корневом каталоге ASP.NET приложения.

  6. Вклеить элемент конфигурации между началом и конечным элементом, который вы идентифицировали в шаге 4.

    Например, если элемент конфигурации содержится в элементе, элемент конфигурации должен быть вклеит сразу после открываемой строки элемента и перед <system.web> <system.web> строкой </system.web> закрытия.

  7. Измените элемент конфигурации вWeb.config, чтобы переопредить параметр Machine.config для этого приложения.

    Этот параметр применяется к папке, которая содержит Web.config файл и все папки подгруппы.

Ссылки

Редактор настроек Firefox | Справка Firefox

Редактор настроек (страница about:config) отображает список параметров Firefox, известных как настройки, которые считываются из файлов prefs.js и user.js в профиле Firefox и из параметров приложения по умолчанию. Многие из этих настроек являются дополнительными параметрами, не представленными на панели НастройкиНастройкиНастройки . В этой статье описано, как использовать страницу about:config для просмотра, изменения или сброса настроек параметров Firefox, если это необходимо.

Внимание: Изменение этих дополнительных параметров может иногда нарушить работу Firefox или вызвать странное поведение. Вам следует это делать, только если вы знаете, что делаете или если вы следуете заслуживающим доверия рекомендациям.

Введите about:config в адресной строке и нажмите EnterReturn.
Может появиться страница с предупреждением. Щёлкните по Я принимаю на себя риск!Принять риск и продолжить, чтобы перейти на страницу about:config.

Щёлкните по кнопке Показать все, чтобы увидеть все параметры, установленные на текущий момент в профиле, или используйте поле Искать параметр по имени, чтобы отфильтровать список.

Вы можете использовать поле Искать параметр по имени в верхней части страницы about:config, чтобы быстро найти определённые параметры. Например, если вы введёте в поле Поиска ocsp, будет отобран параметр security.OCSP.enabled.

Примечание: Имена параметров чувствительны к регистру. Поисковые запросы — нет.

Если вы введёте поисковый запрос и параметры не отобразятся, у вас будет возможность добавить новый параметр (читайте ниже).

Вы можете дважды щёлкнуть по параметру, чтобы изменить его значение или же произвести следующие действия:

Для бинарных (true-false) настроек, щёлкните по кнопке Переключить .

Для строчного (текстового) или числового параметра щёлкните по кнопке Редактировать и введите новое значение.

Щёлкните по галочке , чтобы сохранить изменение.

Чтобы сбросить параметр на его значение по умолчанию, щёлкните по кнопке Сбросить . Чтобы удалить добавленный параметр, щёлкните по кнопке Удалить . Если вы добавили параметр самостоятельно, он больше не будет отображаться после перезагрузки Firefox. Примечание: Кнопка Удалить может отображаться для некоторых параметров, которые отображаются жирным шрифтом, и которые вы не изменяли и не добавляли, например, параметры, чьи значения зависят от системы. Эти параметры будут добавлены обратно в случае необходимости, если будут удалены.

Вы можеет сбросить или удалить только изменённые параметры, которые отображаются жирным шрифтом. (Чтобы сбросить все параметры, прочитайте статью Сброс настроек Firefox для поиска и устранения проблем).

Чтобы добавить новый параметр, введите его имя в поле Искать параметр по имени в верхней части страницы about:config. В нижней части результатов поиска (если они будут) будет находиться вариант создания нового параметр. Чтобы это сделать, укажите тип значения, которое будет хранить параметр:

  • Строка — какой-либо набор символов
  • Integer — число
  • Boolean — true или false

Щёлкните по кнопке Добавить , чтобы создать новый параметр и установить его значение. Бинарные параметры устанавливаются по умолчанию в true; используйте кнопку Переключить , чтобы изменить значение. Для строковых и числовых параметров щёлкните по кнопке Сохранить . Щёлкните по кнопке Удалить , чтобы убрать новый параметр.

Основано на информации из About:config (mozillaZine KB)

Как загрузить файл конфигурации на маршрутизатор Cisco

Подключите синий последовательный кабель [известный как консольный кабель], поставляемый с маршрутизатором Cisco, к консольному порту маршрутизатора и последовательному порту компьютера. Запустите вашу любимую терминальную программу (например, HyperTerminal — выберите «Прямо на COMx»). Правильные настройки терминала: 9600 бод, 8 бит данных, без четности, 1 стоповый бит, и я обычно выбираю аппаратное управление потоком. Для надежности также необходимо установить задержку линии на 100 мс (Файл/Свойства/Настройки/Настройка ASCII).

Если маршрутизатор включен, выключите его. Теперь включите роутер. Обратите внимание, что для завершения загрузки маршрутизатора требуется около двух минут. Если маршрутизатор спросит, хотите ли вы запустить мастер настройки, ответьте «нет». Если он спросит вас, хотите ли вы начать, нажмите «Возврат» пару раз. Если вы ничего не получаете в течение 30 секунд после включения маршрутизатора, нажмите «Возврат» несколько раз. Если вы по-прежнему ничего не получаете, проверьте ваши последовательные соединения и параметры.

В целях безопасности давайте начнем с очистки текущей конфигурации маршрутизатора.Введите эти команды:

включить
стереть nvram:
Стирание файловой системы nvram удалит все файлы конфигурации! Продолжать? [подтвердить] 

Нажмите «y», чтобы стереть конфигурацию маршрутизатора. Затем введите приведенные ниже команды. Обратите внимание, что маршрутизатор может не запрашивать сохранение текущей конфигурации. Если это так, убедитесь, что вы говорите нет — мы пытаемся стереть конфигурацию.

перезагрузить
Конфигурация системы изменена.Сохранять? [да/нет]: нет
Продолжить перезагрузку? [подтвердить] 

Нажмите «y», чтобы маршрутизатор перезагрузился. Для тех, кто немного знаком с маршрутизаторами Cisco, команда «erase nvram:» заменила команды «write erase» и «erase startup-config» (все эти команды делают одно и то же).

Когда маршрутизатор на этот раз завершит загрузку, он спросит, хотите ли вы запустить мастер настройки. Скажи «нет». В конечном итоге он должен сказать вам нажать «возврат, чтобы начать».Коснитесь возврата несколько раз. Теперь нам нужно перейти в режим конфигурации:

включить
конфигурационный терминал 

Теперь скопируйте конфигурацию, которую вы хотите загрузить на маршрутизатор, в буфер обмена (подсказка: CTRL-A, затем CTRL-C) и вставьте в HyperTerminal (Edit/Paste To Host). После того, как он вставлен, вам нужно сохранить конфигурацию.

CTRL-Z
копировать текущую конфигурацию запуска-конфигурации 

Если повезет, все готово!

Настройка модуля для использования ConfigMap

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

Прежде чем начать

У вас должен быть кластер Kubernetes, а инструмент командной строки kubectl должен быть настроен для связи с вашим кластером. Рекомендуется запускать это руководство в кластере по крайней мере с двумя узлами, которые не действуют как узлы плоскости управления. Если у вас еще нет кластер, вы можете создать его, используя миникуб или вы можете использовать одну из этих игровых площадок Kubernetes:

Чтобы проверить версию, введите kubectl version .

Создать карту конфигурации

Для создания ConfigMap можно использовать либо kubectl create configmap , либо генератор ConfigMap в kustomization.yaml . Обратите внимание, что kubectl начинает поддерживать kustomization.yaml с версии 1.14.

Создайте ConfigMap с помощью kubectl create configmap

Используйте команду kubectl create configmap для создания ConfigMaps из каталогов, файлов или литеральных значений:

  kubectl create configmap <имя карты> <источник данных>
  

, где — это имя, которое вы хотите присвоить ConfigMap, а — это каталог, файл или литеральное значение, из которого извлекаются данные.Имя объекта ConfigMap должно быть допустимым. DNS-имя поддомена.

При создании ConfigMap на основе файла ключ в <источнике данных> по умолчанию соответствует базовому имени файла, а значение по умолчанию соответствует содержимому файла.

Вы можете использовать kubectl описать или kubectl получить для получения информации о ConfigMap.

Создание ConfigMaps из каталогов

Вы можете использовать kubectl create configmap для создания ConfigMap из нескольких файлов в одном каталоге.Когда вы создаете ConfigMap на основе каталога, kubectl идентифицирует файлы, чье базовое имя является допустимым ключом в каталоге, и упаковывает каждый из этих файлов в новый ConfigMap. Любые записи каталога, кроме обычных файлов, игнорируются (например, подкаталоги, символические ссылки, устройства, каналы и т. д.).

Например:

  # Создать локальный каталог
mkdir -p настроить-pod-контейнер/configmap/

# Загрузите файлы примеров в каталог `configure-pod-container/configmap/`
wget https://kubernetes.io/examples/configmap/game.properties -O configure-pod-container/configmap/game.properties
wget https://kubernetes.io/examples/configmap/ui.properties -O configure-pod-container/configmap/ui.properties

# Создаем карту конфигурации
kubectl создать configmap game-config --from-file=configure-pod-container/configmap/
  

Приведенная выше команда упаковывает каждый файл, в данном случае game.properties и ui.properties из каталога configure-pod-container/configmap/ в папку game-config ConfigMap.Вы можете отобразить сведения о ConfigMap с помощью следующей команды:

  kubectl описать configmaps game-config
  

Вывод аналогичен этому:

  Имя: конфиг игры
Пространство имен: по умолчанию
Ярлыки: <нет>
Аннотации: <нет>

Данные
====
игра.свойства:
----
враги = пришельцы
жизни=3
враги.чит = правда
враги.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
секрет.код.разрешено=истина
секрет.код.lives=30
пользовательский интерфейсхарактеристики:
----
цвет.хорошо=фиолетовый
цвет.плохой=желтый
разрешить.textmode=истина
как.приятно.выглядеть=довольноприятно
  

Файлы game.properties и ui.properties в каталоге configure-pod-container/configmap/ представлены в разделе data карты ConfigMap.

  kubectl получить configmaps game-config -o yaml
  

Вывод аналогичен этому:

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2016-02-18T18:52:05Z
  имя: конфиг игры
  пространство имен: по умолчанию
  РесурсВерсия: "516"
  UID: b4952dc3-d670-11e5-8cd0-68f728db1985
данные:
  игра.свойства: |
    враги = пришельцы
    жизни=3
    враги.чит = правда
    враги.cheat.level=noGoodRotten
    secret.code.passphrase=UUDDLRLRBABAS
    секрет.код.разрешено=истина
    секрет.код.lives=30
  пользовательский интерфейс: |
    цвет.хорошо=фиолетовый
    цвет.плохой=желтый
    разрешить.textmode=истина
    как.приятно.выглядеть=довольноприятно
  
Создать карты конфигурации из файлов

Вы можете использовать kubectl create configmap для создания ConfigMap из отдельного файла или из нескольких файлов.

Например,

  kubectl создать configmap game-config-2 --from-file=configure-pod-container/configmap/game.properties
  

создаст следующую ConfigMap:

  kubectl описать configmaps game-config-2
  

где вывод похож на этот:

  Имя: game-config-2
Пространство имен: по умолчанию
Ярлыки: <нет>
Аннотации: <нет>

Данные
====
игра.свойства:
----
враги = пришельцы
жизни=3
враги.чит = правда
враги.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
секрет.код.разрешено=истина
секрет.код.lives=30
  

Вы можете передать аргумент --from-file несколько раз, чтобы создать ConfigMap из нескольких источников данных.

  kubectl create configmap game-config-2 --from-file=configure-pod-container/configmap/game.properties --from-file=configure-pod-container/configmap/ui.properties
  

Вы можете отобразить сведения о game-config-2 ConfigMap, используя следующую команду:

  kubectl описать configmaps game-config-2
  

Вывод аналогичен этому:

  Имя: game-config-2
Пространство имен: по умолчанию
Ярлыки: <нет>
Аннотации: <нет>

Данные
====
игра.характеристики:
----
враги = пришельцы
жизни=3
враги.чит = правда
враги.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
секрет.код.разрешено=истина
секрет.код.lives=30
пользовательские свойства:
----
цвет.хорошо=фиолетовый
цвет.плохой=желтый
разрешить.textmode=истина
как.приятно.выглядеть=довольноприятно
  

Когда kubectl создает ConfigMap из входных данных, отличных от ASCII или UTF-8, инструмент помещает их в поле binaryData ConfigMap, а не в data . Как текстовые, так и бинарные источники данных могут быть объединены в одну ConfigMap.Если вы хотите просмотреть ключи binaryData (и их значения) в ConfigMap, вы можете запустить kubectl get configmap -o jsonpath='{.binaryData}' .

Используйте параметр --from-env-file для создания ConfigMap из файла env, например:

  # Env-файлы содержат список переменных окружения.
# Применяются следующие правила синтаксиса:
# Каждая строка в файле env должна быть в формате VAR=VAL.
# Строки, начинающиеся с # (т.е. комментарии), игнорируются.# Пустые строки игнорируются.
# Специальной обработки кавычек нет (т.е. они будут частью значения ConfigMap)).

# Загрузите файлы примеров в каталог `configure-pod-container/configmap/`
wget https://kubernetes.io/examples/configmap/game-env-file.properties -O configure-pod-container/configmap/game-env-file.properties

# Файл env `game-env-file.properties` выглядит следующим образом:
cat configure-pod-container/configmap/game-env-file.properties
враги = пришельцы
жизни=3
разрешено = «истина»

# Этот комментарий и пустая строка над ним игнорируются
  
  kubectl create configmap game-config-env-file \
       --from-env-file=configure-pod-container/configmap/game-env-file.характеристики
  

создаст следующую ConfigMap:

  kubectl получить configmap game-config-env-file -o yaml
  

где вывод похож на этот:

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2017-12-27T18:36:28Z
  имя: game-config-env-file
  пространство имен: по умолчанию
  версия ресурса: "809965"
  UID: d9d1ca5b-eb34-11e7-887b-42010a8002b8
данные:
  разрешено: '"правда"'
  враги: пришельцы
  жизни: "3"
  

Внимание! При многократной передаче --from-env-file для создания ConfigMap из нескольких источников данных используется только последний файл env.

Поведение многократного прохождения --from-env-file демонстрируется:

  # Загрузите файлы примеров в каталог `configure-pod-container/configmap/`
wget https://kubernetes.io/examples/configmap/ui-env-file.properties -O configure-pod-container/configmap/ui-env-file.properties

# Создаем карту конфигурации
kubectl создать configmap config-multi-env-files \
        --from-env-file=configure-pod-container/configmap/game-env-file.properties \
        --from-env-file=configure-pod-container/configmap/ui-env-file.характеристики
  

создаст следующую ConfigMap:

  kubectl получить configmap config-multi-env-files -o yaml
  

где вывод похож на этот:

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2017-12-27T18:38:34Z
  имя: config-multi-env-files
  пространство имен: по умолчанию
  ResourceVersion: "810136"
  UID: 252c4572-eb35-11e7-887b-42010a8002b8
данные:
  цвет: фиолетовый
  как: довольно красиво
  текстовый режим: "истина"
  
Определите ключ для использования при создании ConfigMap из файла

Вы можете определить ключ, отличный от имени файла, для использования в разделе data вашей ConfigMap при использовании аргумента --from-file :

  kubectl create configmap game-config-3 --from-file==
  

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

Например:

  kubectl create configmap game-config-3 --from-file=game-special-key=configure-pod-container/configmap/game.properties
  

создаст следующую ConfigMap:

  kubectl получить configmaps game-config-3 -o yaml
  

где вывод похож на этот:

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2016-02-18T18:54:22Z
  имя: игра-config-3
  пространство имен: по умолчанию
  РесурсВерсия: "530"
  UID: 05f8da22-d671-11e5-8cd0-68f728db1985
данные:
  специальный игровой ключ: |
    враги = пришельцы
    жизни=3
    враги.чит = правда
    враги.cheat.level=noGoodRotten
    secret.code.passphrase=UUDDLRLRBABAS
    секрет.код.разрешено=истина
    секрет.код.lives=30
  
Создание ConfigMaps из литеральных значений

Вы можете использовать kubectl create configmap с аргументом --from-literal для определения буквального значения из командной строки:

  kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm
  

Вы можете передать несколько пар ключ-значение.Каждая пара, представленная в командной строке, представлена ​​как отдельная запись в разделе data карты ConfigMap.

  kubectl получить configmaps special-config -o yaml
  

Вывод аналогичен этому:

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2016-02-18T19:14:38Z
  имя: специальная конфигурация
  пространство имен: по умолчанию
  ресурсВерсия: "651"
  uid: дадце046-d673-11e5-8cd0-68f728db1985
данные:
  special.how: очень
  специальный.тип: очарование
  

Создать ConfigMap из генератора

kubectl поддерживает настройку .yaml с 1.14. Вы также можете создать ConfigMap из генераторов, а затем применить его для создания объекта на Апайзервер. Генераторы должен быть указан в kustomization.yaml внутри каталога.

Создание ConfigMaps из файлов

Например, для создания ConfigMap из файлов configure-pod-container/configmap/game.properties

  # Создайте файл kustomization.yaml с помощью ConfigMapGenerator
cat <./настройка.батат
configMapGenerator:
- имя: игра-config-4
  файлы:
  - configure-pod-container/configmap/game.properties
EOF
  

Примените каталог настройки для создания объекта ConfigMap.

  kubectl применить -k .
configmap/game-config-4-m9dm2f92bt создан
  

Вы можете проверить, что ConfigMap был создан следующим образом:

  kubectl получить карту конфигурации
ИМЯ ДАННЫЕ ВОЗРАСТ
игра-config-4-m9dm2f92bt 1 37s


kubectl описывает configmaps/game-config-4-m9dm2f92bt
Название: game-config-4-m9dm2f92bt
Пространство имен: по умолчанию
Ярлыки: <нет>
Аннотации: кубектл.kubernetes.io/last-applied-configuration:
                {"apiVersion":"v1","data":{"game.properties":"enemies=aliens\nlives=3\nenemies.cheat=true\nenemies.cheat.level=noGoodRotten\nsecret.code.p.. .

Данные
====
игра.свойства:
----
враги = пришельцы
жизни=3
враги.чит = правда
враги.cheat.level=noGoodRotten
secret.code.passphrase=UUDDLRLRBABAS
секрет.код.разрешено=истина
секрет.код.lives=30
События: <нет>
  

Обратите внимание, что сгенерированное имя ConfigMap имеет суффикс, добавленный путем хэширования содержимого.Это гарантирует, что новый ConfigMap создается каждый раз при изменении содержимого.

Определите ключ для использования при создании ConfigMap из файла

Вы можете определить ключ, отличный от имени файла, для использования в генераторе ConfigMap. Например, для создания ConfigMap из файлов configure-pod-container/configmap/game.properties с ключом game-special-key

  # Создайте файл kustomization.yaml с помощью ConfigMapGenerator
кот <./настройка.yaml
configMapGenerator:
- имя: игра-config-5
  файлы:
  - game-special-key=configure-pod-container/configmap/game.properties
EOF
  

Примените каталог настройки для создания объекта ConfigMap.

  kubectl применить -k .
configmap/game-config-5-m67dt67794 создан
  
Создание ConfigMaps из литералов

Чтобы сгенерировать ConfigMap из литералов special.type=charm и special.how=very , вы можете указать генератор ConfigMap в настройке .ямл как

  # Создайте файл kustomization.yaml с помощью ConfigMapGenerator
кошка <./customization.yaml
configMapGenerator:
- имя: специальный-config-2
  литералы:
  - special.how=очень
  - special.type=шарм
EOF
  

Примените каталог настройки для создания объекта ConfigMap.

  kubectl применить -k .
configmap/special-config-2-c92b5mmcf2 создан
  

Определение переменных среды контейнера с использованием данных ConfigMap

Определите переменную среды контейнера с данными из одного ConfigMap

  1. Определите переменную среды как пару ключ-значение в ConfigMap:

      kubectl create configmap special-config --from-literal=special.как=очень
      
  2. Назначьте значение special.how , определенное в ConfigMap, переменной среды SPECIAL_LEVEL_KEY в спецификации Pod.

  APIВерсия: v1
вид: стручок
метаданные:
  имя: дапи-тест-стручок
спецификация:
  контейнеры:
    - имя: тестовый контейнер
      изображение: k8s.gcr.io/busybox
      команда: [ "/bin/sh", "-c", "env" ]
      среда:
        # Определяем переменную окружения
        - имя: SPECIAL_LEVEL_KEY
          значениеОт:
            configMapKeyRef:
              # ConfigMap, содержащий значение, которое вы хотите присвоить SPECIAL_LEVEL_KEY
              имя: специальная конфигурация
              # Указываем ключ, связанный со значением
              ключ: спец.как
  политика перезапуска: никогда
  

Создать модуль:

  kubectl create -f https://kubernetes.io/examples/pods/pod-single-configmap-env-variable.yaml
  

Теперь вывод модуля включает переменную среды SPECIAL_LEVEL_KEY=very .

Определите переменные среды контейнера с данными из нескольких ConfigMap

  kubectl create -f https://kubernetes.io/examples/configmap/configmaps.yaml
  
  kubectl create -f https://kubernetes.io/examples/pods/pod-multiple-configmap-env-variable.yaml
  

Теперь вывод модуля включает переменные среды SPECIAL_LEVEL_KEY=very и LOG_LEVEL=INFO .

Настройте все пары ключ-значение в ConfigMap как переменные среды контейнера

Примечание. Эта функция доступна в Kubernetes версии 1.6 и более поздних.

  kubectl create -f https://kubernetes.io/examples/configmap/configmap-multikeys.yaml
  
  • Используйте envFrom , чтобы определить все данные ConfigMap как переменные среды контейнера.Ключ из ConfigMap становится именем переменной среды в Pod.
  APIВерсия: v1
вид: стручок
метаданные:
  имя: дапи-тест-стручок
спецификация:
  контейнеры:
    - имя: тестовый контейнер
      изображение: k8s.gcr.io/busybox
      команда: [ "/bin/sh", "-c", "env" ]
      envОт:
      - configMapRef:
          имя: специальная конфигурация
  политика перезапуска: никогда
  

Создать модуль:

  kubectl create -f https://kubernetes.io/examples/pods/pod-configmap-envFrom.батат
  

Теперь выходные данные модуля включают переменные среды SPECIAL_LEVEL=very и SPECIAL_TYPE=charm .

Использовать переменные среды, определенные ConfigMap, в командах Pod

Вы можете использовать определенные в ConfigMap переменные среды в команде и аргументах контейнера, используя синтаксис подстановки $(VAR_NAME) Kubernetes.

Например, следующая спецификация Pod

  APIВерсия: v1
вид: стручок
метаданные:
  имя: дапи-тест-стручок
спецификация:
  контейнеры:
    - имя: тестовый контейнер
      изображение: k8s.gcr.io/busybox
      команда: [ "/bin/echo", "$(SPECIAL_LEVEL_KEY) $(SPECIAL_TYPE_KEY)" ]
      среда:
        - имя: SPECIAL_LEVEL_KEY
          значениеОт:
            configMapKeyRef:
              имя: специальная конфигурация
              ключ: SPECIAL_LEVEL
        - имя: SPECIAL_TYPE_KEY
          значениеОт:
            configMapKeyRef:
              имя: специальная конфигурация
              ключ: SPECIAL_TYPE
  политика перезапуска: никогда
  

создан запуском

  kubectl create -f https://kubernetes.io/examples/pods/pod-configmap-env-var-valueFrom.yaml
  

производит следующий вывод в контейнере test-container :

Добавить данные ConfigMap в том

Как объяснялось в разделе Создание ConfigMap из файлов, при создании ConfigMap с помощью --from-file имя файла становится ключом, хранящимся в разделе data ConfigMap. Содержимое файла становится значением ключа.

Примеры в этом разделе относятся к ConfigMap с именем special-config, показанному ниже.

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  имя: специальная конфигурация
  пространство имен: по умолчанию
данные:
  SPECIAL_LEVEL: очень
  SPECIAL_TYPE: очарование
  

Создайте ConfigMap:

  kubectl create -f https://kubernetes.io/examples/configmap/configmap-multikeys.yaml
  

Заполнить том данными, хранящимися в ConfigMap

Добавьте имя ConfigMap в раздел Volumes спецификации Pod.Это добавляет данные ConfigMap в каталог, указанный как volumeMounts.mountPath (в данном случае /etc/config ). В разделе команды перечислены файлы каталогов с именами, соответствующими ключам в ConfigMap.

  APIВерсия: v1
вид: стручок
метаданные:
  имя: дапи-тест-стручок
спецификация:
  контейнеры:
    - имя: тестовый контейнер
      изображение: k8s.gcr.io/busybox
      команда: [ "/bin/sh", "-c", "ls /etc/config/" ]
      томМаунты:
      - имя: том конфигурации
        путь монтирования: /etc/config
  тома:
    - имя: том конфигурации
      карта конфигурации:
        # Укажите имя ConfigMap, содержащего нужные файлы
        # добавить в контейнер
        имя: специальная конфигурация
  политика перезапуска: никогда
  

Создать модуль:

  kubectl create -f https://kubernetes.io/examples/pods/pod-configmap-volume.yaml
  

Когда модуль работает, команда ls /etc/config/ выдает следующий вывод:

  СПЕЦИАЛЬНЫЙ_УРОВЕНЬ
SPECIAL_TYPE
  

Внимание: Если в каталоге /etc/config/ есть файлы, они будут удалены.

Примечание. Текстовые данные предоставляются в виде файлов с использованием кодировки символов UTF-8. Чтобы использовать другую кодировку символов, используйте binaryData.

Добавить данные ConfigMap по определенному пути в томе

Используйте поле path , чтобы указать желаемый путь к файлу для определенных элементов ConfigMap.В этом случае элемент SPECIAL_LEVEL будет смонтирован в томе config-volume по адресу /etc/config/keys .

  APIВерсия: v1
вид: стручок
метаданные:
  имя: дапи-тест-стручок
спецификация:
  контейнеры:
    - имя: тестовый контейнер
      изображение: k8s.gcr.io/busybox
      команда: [ "/bin/sh", "-c", "cat /etc/config/keys" ]
      томМаунты:
      - имя: том конфигурации
        путь монтирования: /etc/config
  тома:
    - имя: том конфигурации
      карта конфигурации:
        имя: специальная конфигурация
        Предметы:
        - ключ: SPECIAL_LEVEL
          путь: ключи
  политика перезапуска: никогда
  

Создать модуль:

  kubectl create -f https://kubernetes.io/examples/pods/pod-configmap-volume-specific-key.yaml
  

Когда модуль запускается, команда cat /etc/config/keys выдает следующий вывод:

Внимание: Как и прежде, все предыдущие файлы в каталоге /etc/config/ будут удалены.

Ключи проекта для определенных путей и прав доступа к файлам

Вы можете проецировать ключи на определенные пути и определенные разрешения для каждого файла основа. Руководство пользователя Secrets объясняет синтаксис.

Дополнительные каталожные номера

Ссылка ConfigMap может быть помечена как «необязательная». Если ConfigMap не существует, подключенный том будет пустым. Если ConfigMap существует, но указанный ключ не существует, путь будет отсутствовать под точкой монтирования.

Подключенные карты ConfigMap обновляются автоматически

При обновлении смонтированного ConfigMap проецируемое содержимое в конечном итоге также обновляется. Это применимо в случае, когда необязательно указанный ConfigMap входит в существование после запуска модуля.

Kubelet проверяет актуальность подключенного ConfigMap при каждой периодической синхронизации. Однако он использует свой локальный кэш на основе TTL для получения текущего значения Карта конфигурации. В результате общая задержка с момента обновления ConfigMap до момента проецирования новых ключей в модуль может достигать период синхронизации kubelet (по умолчанию 1 минута) + TTL кеша ConfigMaps (по умолчанию 1 минута) в kubelet. Вы можете запустить немедленное обновление, обновив один из аннотации модуля.

Примечание. Контейнер, использующий ConfigMap в качестве тома subPath, не будет получать обновления ConfigMap.

Общие сведения о ConfigMaps и модулях

Ресурс API ConfigMap хранит данные конфигурации в виде пар ключ-значение. Данные можно использовать в модулях или предоставлять конфигурации для системных компонентов, таких как контроллеры. ConfigMap похож на Secrets, но предоставляет средства для работы со строками, не содержащими конфиденциальной информации. Как пользователи, так и системные компоненты могут хранить данные конфигурации в ConfigMap.

Примечание. ConfigMaps должны ссылаться на файлы свойств, а не заменять их. Думайте о ConfigMap как о чем-то похожем на каталог Linux /etc и его содержимое. Например, если вы создаете том Kubernetes из ConfigMap, каждый элемент данных в ConfigMap представлен отдельным файлом в томе.

Поле данных ConfigMap содержит данные конфигурации. Как показано в приведенном ниже примере, это может быть просто — например, отдельные свойства, определенные с помощью —from-literal , — или сложные — например, файлы конфигурации или большие двоичные объекты JSON, определенные с помощью —from-file .

  APIВерсия: v1
вид: карта конфигурации
метаданные:
  СозданиеTimestamp: 2016-02-18T19:14:38Z
  имя: пример-конфигурации
  пространство имен: по умолчанию
данные:
  # пример простого свойства, определенного с помощью --from-literal
  example.property.1: привет
  пример.свойство.2: мир
  # пример сложного свойства, определенного с помощью --from-file
  пример.property.file: |-
    свойство.1=значение-1
    свойство.2=значение-2
    свойство.3=значение-3
  

Ограничения

  • Вы должны создать ConfigMap, прежде чем ссылаться на него в спецификации Pod (если только вы не пометите ConfigMap как «необязательный»).Если вы сошлетесь на несуществующую ConfigMap, Pod не запустится. Аналогично, ссылки на ключи, которых нет в ConfigMap, не позволят запустить модуль.

  • Если вы используете envFrom для определения переменных среды из ConfigMaps, ключи, которые считаются недействительными, будут пропущены. Поду будет разрешено запуститься, но недопустимые имена будут записаны в журнал событий ( ​​ InvalidVariableNames ). В сообщении журнала перечислены все пропущенные клавиши. Например:

    Вывод аналогичен этому:

      ПОСЛЕДНИЙ ПЕРВЫЙ ПОДЧИСЛ ИМЯ ВИД ТИП ОБЪЕКТА ПРИЧИНА ИСТОЧНИК СООБЩЕНИЕ
    0s 0s 1 dapi-test-pod Pod Warning InvalidEnvironmentVariableNames {kubelet, 127.0.0.1} Ключи [1badkey, 2alsobad] из EnvFrom configMap default/myconfig были пропущены, поскольку они считаются недопустимыми именами переменных среды.
      
  • ConfigMaps находятся в определенном пространстве имен. На ConfigMap могут ссылаться только модули, находящиеся в одном и том же пространстве имен.

  • Вы не можете использовать ConfigMaps для статических модулей, поскольку Kubelet не поддерживает это.

Что дальше

Режимы конфигурации маршрутизатора

— Cisco Secure

Прежде чем переходить к интерфейсу командной строки (CLI) маршрутизатора Cisco, важно понять, какие доступны различные режимы команд.Считайте командный режим уровнем, на котором вы можете выполнять определенные функции. Если вы не на правильном уровне, вы не сможете выполнить правильную функцию (настроить роутер). Это очень упрощенное объяснение, но оно станет более понятным по мере обсуждения каждого режима. Ниже приведены режимы команд на маршрутизаторе Cisco:

.

■ Режим монитора ПЗУ — режим монитора ПЗУ — это режим, в котором загружается маршрутизатор, если он не может найти действительный образ системы. Вам нужно использовать этот режим только в том случае, если вам нужно изменить параметры загрузки системы, чтобы включить сброс системного пароля.Если на маршрутизаторе установлен рабочий образ, необходимо нажать клавишу Break в течение первых 60 секунд последовательности загрузки маршрутизатора.

■ Пользовательский режим EXEC — пользовательский режим EXEC — это режим, к которому вы подключаетесь по умолчанию. Если маршрутизатор настроен с использованием пароля, вас попросят ввести пароль и дадут три попытки ввести правильный пароль. Вы поймете, что находитесь в пользовательском режиме EXEC, поскольку маршрутизатор отображает имя хоста, за которым следует символ правой скобки (>).

Маршрутизатор A>

В пользовательском режиме EXEC вы можете выполнять ограниченные функции для проверки состояния маршрутизатора, но не можете изменять конфигурацию маршрутизатора. Чтобы выйти из пользовательского режима EXEC, используйте команду logout.

■ Привилегированный режим EXEC — чтобы перейти из пользовательского режима EXEC в привилегированный режим EXEC, используйте команду enable. Если был настроен активный пароль (или, еще лучше, активный секретный пароль) (а он должен был быть), вам снова будет предложено ввести пароль и дано три попытки.В этом режиме маршрутизатор отображает имя своего хоста, за которым следует символ решетки (#).

RouterA> включить

Маршрутизатор A#

В привилегированном режиме EXEC вы можете выполнять все функции, которые были доступны в пользовательском режиме EXEC, но по-прежнему не можете вносить какие-либо изменения в конфигурацию. Однако у вас есть доступ к командам отображения и отладки, которые недоступны в пользовательском режиме EXEC. Привилегированный режим EXEC — это путь к глобальному режиму конфигурации. Чтобы вернуться в пользовательский режим EXEC, используйте команду disable.

RouterA# отключить RouterA>

■ Режимы и подрежимы конфигурации — существует множество различных режимов конфигурации. Каждый из них вносит изменения в конфигурацию устройства. Чтобы гарантировать, что эти изменения конфигурации не будут потеряны при перезагрузке маршрутизатора, вы должны скопировать текущую конфигурацию в конфигурацию запуска. Тип и количество подрежимов конфигурации зависит от типа маршрутизатора, версии IOS и компонентов, установленных на маршрутизаторе.

— Режим глобальной конфигурации — команда для доступа к режиму глобальной конфигурации — configure terminal.В режиме глобальной конфигурации маршрутизатор продолжает отображать имя своего хоста, за которым следует (config) и символ #.

RouterA# настроить терминал

RouterA(config)#

В режиме глобальной конфигурации вы можете вносить «глобальные» изменения в конфигурацию маршрутизатора. Очень распространенным примером глобальной конфигурации является создание списка доступа. Из режима глобальной конфигурации вы можете перейти в положение, позволяющее настраивать определенные компоненты маршрутизатора, такие как интерфейсы маршрутизатора, компоненты VPN (isakmp, crypto и т. д.), подключения CLI (линия), группы серверов AAA. и многое другое.Для выхода в привилегированный режим глобальной настройки используйте комбинацию клавиш Ctrl-Z или введите команду end.

RouterA(config)# конец RouterA#

— Режим конфигурации интерфейса — из режима глобальной конфигурации команда для доступа к подрежиму конфигурации интерфейса — интерфейс интерфейс-тип-номер-интерфейса. Маршрутизатор отображает имя своего хоста, за которым следует (config-if), указывающее, что он находится в режиме конфигурации интерфейса.

RouterA(config)# интерфейс Ethernet 0

RouterA(config-if)#

Теперь вы готовы настроить выбранный вами интерфейс.Если вы настраиваете подынтерфейсы, вам нужно использовать ту же команду для входа в режим конфигурирования подынтерфейсов.

RouterA(config)# интерфейс Ethernet 0.1

RouterA(config-subif)#

Также возможен вход в режим конфигурирования подынтерфейса из режима конфигурирования интерфейса по обратной командной ссылке.

RouterA(config-if)# интерфейс Ethernet 0.1

RouterA(config-subif)#

— Режим конфигурации линии. Другой подрежим конфигурации, который необходимо настроить, — это конфигурация линии.Этот режим используется для настройки доступа CLI к маршрутизатору. Команда для доступа к режиму конфигурации линии из режима глобальной конфигурации — номер типа линии.

RouterA(config)# line con 0 RouterA(config-line)#

Чтобы выйти из режима настройки и вернуться в привилегированный режим EXEC, используйте комбинацию клавиш Ctrl-Z или введите команду end.

RouterA(config-subif)# end RouterA#

Чтобы вернуться в режим глобальной конфигурации, введите команду exit.(Эта команда работает как для режима конфигурации интерфейса, так и для режима конфигурации подынтерфейса.)

RouterA(config-subif)# выйти из RouterA(config)#

ПРИМЕЧАНИЕ Командные запросы, используемые в этих примерах, являются приглашениями по умолчанию. Можно изменить системную подсказку (>, #) с помощью команды prompt в режиме глобальной конфигурации.

Для списка доступных команд в каждой конфигурации вы можете использовать знак вопроса (?). Это, пожалуй, самая полезная команда, написанная в ПО Cisco IOS.Если вы не полностью знакомы с правильным синтаксисом команды, можно ввести часть команды, за которой следует ?. Затем маршрутизатор предоставляет вам правильный синтаксис. В Таблице 4-2 показано, как переключаться между режимами при настройке маршрутизатора.

Табл. 4-2 Режимы конфигурации маршрутизатора Cisco

Команда

Описание

Маршрутизатор > включить Пароль: ********

Введите маршрутизатор в пользовательский режим EXEC.Используйте команду enable и правильный пароль для входа в привилегированный режим EXEC.

Router# настроить терминал

Войдите в режим глобальной конфигурации.

№ маршрутизатора (конфигурация) IP-маршрутизация

Включить IP-маршрутизацию на маршрутизаторе.

Router# (config) hostname RouterA

Настройте имя хоста маршрутизатора на RouterA.

продолжается продолжается

Табл. 4-2 Режимы конфигурации маршрутизатора Cisco (продолжение)

Команда

Описание

RouterA# (конфигурация) интерфейс Ethernet 0/0

Войдите в режим настройки интерфейса.

RouterA# (конфигурация) IP-адрес 10.10.10.254 255.255.255.0

Настройте eth0/0 для 10.10.10.254/24.

RouterA# (конфигурация) без выключения

Команда no shutdown гарантирует, что интерфейс включен.

RouterA# (конфигурация) выход

Конфигурация завершена, выход в режим глобальной конфигурации.

RouterA# (config) конец или

RouterA# (конфигурация) Ctrl-Z

Конфигурация завершена, выход в привилегированный режим EXEC.

ПРИМЕЧАНИЕ Некоторые команды меняются в зависимости от серии маршрутизатора и версии программного обеспечения Cisco IOS.

Продолжить чтение здесь: Доступ к интерфейсу командной строки маршрутизатора Cisco

Была ли эта статья полезной?

Как использовать удаленный файл конфигурации для вашего приложения iOS

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

Итак, лучше всего проявить инициативу и предложить добавить ее в рамки в начале проекта!

Основная идея заключается в том, что мы будем хранить файл на сервере, которым мы можем управлять, и чтобы наше приложение iOS извлекало этот файл при запуске приложения. Он проанализирует файл на наличие всех необходимых переменных конфигурации и использует эти значения.Таким образом, вы можете удаленно изменять переменные даже после того, как приложение появится в App Store.

Советы по удаленному файлу конфигурации

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

2. В большинстве случаев динамические URL-адреса и фиды, идентификаторы пакетов аналитики или идентификаторы рекламных кампаний целесообразно хранить в файле удаленной конфигурации. Это некоторые из общих вещей, которые могут измениться между обновлениями приложения.

3. Приложение может не иметь подключения к Интернету при запуске, поэтому вам нужно подумать о том, что произойдет, если ваше приложение для iPhone не сможет получить файл конфигурации.(Или что произойдет, если сервер, на котором размещен ваш файл конфигурации, выйдет из строя?).

Раньше я отправлял приложение с файлом конфигурации по умолчанию, поэтому, если оно не может получить удаленную конфигурацию при первом запуске, у него есть резервные значения. Но после того, как он получил удаленную конфигурацию, он сохранит эти значения в локальном хранилище до следующего извлечения. Если он не сможет получить удаленную конфигурацию при следующем запуске приложения, он будет использовать сохраненные значения. Если он успешно извлечет его, он обновит значения в локальном хранилище и будет использовать новые значения.

4. Вам придется подумать о том, как управлять устаревшими переменными конфигурации, которые использует приложение. Это означает, что у пользователя потенциально может быть открыто приложение в течение всего дня, поэтому, если вы измените переменные конфигурации в середине дня, а приложение iOS проверяет файл конфигурации только один раз во время запуска, как вы «заставите» пользователя повторно получить файл конфигурации, чтобы получить обновленные переменные?

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

5. В каком формате должен быть ваш файл? JSON? XML? Через запятую? Это может быть любая схема, которую вы хотите, потому что именно вы будете писать логику синтаксического анализа в своем приложении для iPhone/iPad!

Одна вещь, которую следует учитывать, это то, что, возможно, не ВЫ будете изменять значения в файле конфигурации, поэтому вы хотите, чтобы обновление файла конфигурации было простым и надежным.В прошлом я в основном использовал XML-схему plist, потому что клиенту было легко загрузить ее в средстве просмотра plist и отредактировать значения с помощью пользовательского интерфейса.

Схема удаленной настройки

 


<дикт>
URL-адрес фида
http://google.com

Идентификатор аналитики
93476032562

 

Существует несколько программ просмотра/редактирования PLIST, но даже если вы откроете файл PLIST в стандартном текстовом редакторе, он будет очень удобочитаемым и простым для понимания.Лучшая часть выполнения этого в схеме PLIST заключается в том, насколько легко разобрать NSDictionary в Objective-C.

Получение удаленного файла конфигурации

Вот пример того, как можно получить и проанализировать удаленный файл конфигурации.

Строки 1-6 настраивают NSURLRequest и NSURLConnection. Обратите внимание, что в строке 3 мы указываем, что ничего не должно кэшироваться. Я писал об этом в этом посте.

В строке 7 мы извлекаем файл, а в строке 11 проверяем, не произошла ли ошибка при получении ответа.

В строках 14-19 мы разбираем NSData в словарь, а в строках 25-26 мы берем значения конфигурации из словаря и присваиваем их переменным.

 NSURL *configUrl = [NSURL URLWithString:@"http://yourdomain.com/yourconfig.xml"];
NSURLRequest *urlRequest = [NSURLRequest requestWithURL:configUrl
                                            cachePolicy:NSURLCacheStorageNotAllowed
                                        таймаутИнтервал:20.0];
NSURLResponse * ответ = ноль;
NSError * ошибка = ноль;
NSData *data = [NSURLConnection sendSynchronousRequest:urlRequest
                                     returnResponse:&ответ
                                                 ошибка:&ошибка];
// Проверяем отсутствие ошибок, затем анализируем данные
если (ошибка == ноль)
{
    // Разбираем ответ в словарь
    Формат NSPropertyListFormat;
    NSString *errorStr = ноль;
    NSDictionary *dictionary = [NSPropertyListSerialization propertyListFromData:данные
                                                                мутабилитиоптион: нспропертилистиммутабле
                                                                          формат:&формат
                                                                errorDescription:&errorStr];
    если (errorStr == ноль)
    {
        @пытаться {
            
            // Пытаемся получить значения конфигурации из xml
            NSString *feedUrl = [словарь objectForKey:@"FeedUrl"];
            NSString *analyticsId = [словарь objectForKey:@"AnalyticsId"];
            
        } @catch (NSException *e) {
            // Ошибка при получении ключа
        }
    }
    еще {
        // Ошибка при разборе данных в словарь
    }
} 

Вот и все! Надеюсь, это то, что вы, ребята, сможете с пользой использовать в своих проектах.Пожалуйста, оставьте комментарий ниже и дайте мне знать, что вы думаете!

Практическое руководство: Установка и настройка OpenVPN Клиент/сервер VPN

OpenVPN — это полнофункциональная SSL VPN, которая реализует безопасное сетевое расширение уровня 2 или 3 OSI с использованием стандартного отраслевого протокола SSL/TLS, поддерживает гибкие методы аутентификации клиентов на основе сертификаты, смарт-карты и/или учетные данные имени пользователя и пароля, а также разрешает политики управления доступом для конкретных пользователей или групп с использованием правил брандмауэра, применяемых к виртуальному интерфейсу VPN.OpenVPN не является прокси-сервером веб-приложения и не работает через веб-браузер.

OpenVPN 2.0 расширяет возможности OpenVPN 1.x, предлагая масштабируемый режим клиент/сервер, позволяющий нескольким клиентам подключаться к одному серверному процессу OpenVPN через один порт TCP или UDP. OpenVPN 2.3 включает большое количество улучшений, включая полную поддержку IPv6 и поддержку PolarSSL.

В этом документе представлены пошаговые инструкции по настройке VPN клиент/сервер OpenVPN 2.x, в том числе: подсети, IP-маршрутизация, маршрутизаторы, сетевые интерфейсы, локальные сети, шлюзы и правила брандмауэра.

Исходный документ OpenVPN 1.x HOWTO по-прежнему доступен и актуален для конфигураций типа «точка-точка» или конфигураций со статическим ключом.

Хотя этот HOWTO поможет вам настроить масштабируемую клиент-серверную VPN с использованием X509 PKI (инфраструктура открытого ключа с использованием сертификатов и закрытых ключей), это может быть излишним, если вы ищете только простую настройку VPN с сервером, который может обслуживать одного клиента.

Если вы хотите, чтобы VPN работал быстро с минимальной конфигурацией, вы можете ознакомиться с мини-HOWTO Static Key.

Исходный код OpenVPN и установщики Windows можно скачать здесь. Последние выпуски (2.2 и выше) также доступны в виде пакетов Debian и RPM; подробности см. на вики-сайте OpenVPN.

Исполняемый файл OpenVPN должен быть установлен как на сервере, так и на клиентском компьютере, поскольку один исполняемый файл обеспечивает функции как клиента, так и сервера.

Если вы используете дистрибутив Linux, который поддерживает пакеты RPM (SuSE, Fedora, Redhat и т. д.), лучше всего устанавливать его с помощью этого механизма.Самый простой способ — найти существующий бинарный RPM-файл для вашего дистрибутива. Вы также можете создать свой собственный двоичный файл RPM:

Кроме того, если вы создаете свой собственный двоичный пакет RPM, есть несколько дополнительных зависимостей:

Дополнительные сведения о создании пакета RPM для Red Hat Linux см. в файле openvpn.spec. 9 или сборка с уменьшенными зависимостями.

Если вы используете Debian, Gentoo или дистрибутив Linux, не основанный на RPM, используйте специфичный для вашего дистрибутива механизм упаковки, например apt-get  в Debian или emerge в Gentoo.

Также можно установить OpenVPN на Linux с помощью универсального метода ./configure . Сначала разверните файл .tar.gz:

OpenVPN для Windows можно установить из самоустанавливающегося exe-файла на странице загрузки OpenVPN. Помните, что OpenVPN будет работать только в Windows XP или более поздних версиях. Также обратите внимание, что OpenVPN должен быть установлен и запущен пользователем с правами администратора (это ограничение накладывается Windows, а не OpenVPN). Ограничение можно обойти, запустив OpenVPN в фоновом режиме в качестве службы, и в этом случае даже пользователи без прав администратора смогут получить доступ к VPN после ее установки.Дополнительные обсуждения проблем с привилегиями OpenVPN + Windows.

Официальные установщики OpenVPN для Windows включают OpenVPN-GUI, который позволяет управлять подключениями OpenVPN из апплета на панели задач. Также доступны другие приложения с графическим интерфейсом.

После запуска установщика Windows OpenVPN готов к использованию и будет ассоциироваться с файлами, имеющими расширение .ovpn . Чтобы запустить OpenVPN, вы можете:

Некоторые примечания доступны в файле INSTALL для определенных ОС. Как правило, можно использовать метод

или выполнить поиск порта или пакета OpenVPN, характерного для вашей ОС/дистрибутива.

См. Часто задаваемые вопросы для обзора маршрутизации и Ethernet-моста. См. также страницу Ethernet-моста OpenVPN, где приведены дополнительные примечания и сведения о мостовом соединении.

В целом, маршрутизация, вероятно, является лучшим выбором для большинства людей, поскольку она более эффективна и проще в настройке (что касается самой конфигурации OpenVPN), чем мост. Маршрутизация также обеспечивает более широкие возможности выборочного управления правами доступа для каждого клиента.

Я бы рекомендовал использовать маршрутизацию, если вам не нужна конкретная функция, требующая мостового соединения, например:

Настройка VPN часто влечет за собой соединение частных подсетей из разных мест.

Администрация адресного пространства Интернета (IANA) зарезервировала следующие три блока пространства IP-адресов для частных сетей Интернета (кодировано в RFC 1918):

Хотя адреса из этих сетевых блоков обычно следует использовать в конфигурациях VPN, важно выбрать адреса, минимизирующие вероятность конфликтов IP-адресов или подсетей. Необходимо избегать следующих типов конфликтов:

Например, предположим, что вы используете популярную подсеть 192.168.0.0/24 в качестве частной подсети LAN.Теперь вы пытаетесь подключиться к VPN из интернет-кафе, которое использует ту же подсеть для своей локальной сети WiFi. У вас будет конфликт маршрутизации, потому что ваша машина не будет знать, относится ли 192.168.0.1 к локальному шлюзу WiFi или к тому же адресу в VPN.

В качестве другого примера предположим, что вы хотите соединить несколько сайтов с помощью VPN, но каждый сайт использует 192.168.0.0/24 в качестве своей подсети LAN. Это не будет работать без добавления усложняющего уровня преобразования NAT, потому что VPN не будет знать, как маршрутизировать пакеты между несколькими сайтами, если эти сайты не используют подсеть, которая однозначно идентифицирует их.

Лучшее решение — избегать использования адресов 10.0.0.0/24 или 192.168.0.0/24 в качестве адресов частной локальной сети. Вместо этого используйте что-то, что с меньшей вероятностью будет использоваться в WiFi-кафе, аэропорту или отеле, где вы можете ожидать удаленного подключения. Лучшими кандидатами являются подсети в середине обширного сетевого блока 10.0.0.0/8 (например, 10.66.77.0/24).

Во избежание конфликтов нумерации IP-адресов между сайтами всегда используйте уникальную нумерацию для подсетей локальной сети.

Первый шаг в создании OpenVPN 2.x заключается в создании PKI (инфраструктуры открытых ключей). PKI состоит из:

OpenVPN поддерживает двунаправленную аутентификацию на основе сертификатов, что означает, что клиент должен аутентифицировать сертификат сервера, а сервер должен аутентифицировать сертификат клиента, прежде чем будет установлено взаимное доверие.

И сервер, и клиент будут аутентифицировать друг друга, сначала проверив, что представленный сертификат был подписан главным центром сертификации (ЦС), а затем проверив информацию в заголовке сертификата, прошедшего проверку подлинности, например общее имя сертификата или тип сертификата. (клиент или сервер).

Обратите внимание, что часы сервера и клиента должны быть приблизительно синхронизированы, иначе сертификаты могут работать неправильно.

В этом разделе мы создадим главный сертификат/ключ ЦС, сертификат/ключ сервера и сертификаты/ключи для 3 отдельных клиентов.

Для управления PKI мы будем использовать easy-rsa 2 , набор скриптов, который входит в состав OpenVPN 2.2.x и более ранних версий. Если вы используете OpenVPN 2.3.x, вам необходимо скачать easy-rsa 2 отдельно отсюда.

Для управления PKI мы будем использовать easy-rsa 2, набор скриптов, который входит в состав OpenVPN 2.2.x и ранее. Если вы используете OpenVPN 2.3.x, вам может потребоваться загрузить easy-rsa 2 отдельно со страницы проекта easy-rsa-old. На платформах *NIX вам следует вместо этого использовать easy-rsa 3; подробности см. в собственной документации.

Если вы используете Linux, BSD или Unix-подобную ОС, откройте оболочку и перейдите в подкаталог easy-rsa . Если вы установили OpenVPN из файла RPM или DEB, каталог easy-rsa обычно можно найти в /usr/share/doc/packages/openvpn или /usr/share/doc/openvpn (лучше скопировать этот в другое место, например /etc/openvpn , перед любыми изменениями, чтобы будущие обновления пакета OpenVPN не перезаписывали ваши изменения).Если вы установили из файла .tar.gz, каталог easy-rsa будет находиться в каталоге верхнего уровня расширенного дерева исходных текстов.

Если вы используете Windows, откройте окно командной строки и перейдите к \Program Files\OpenVPN\easy-rsa . Запустите следующий пакетный файл, чтобы скопировать файлы конфигурации на место (при этом все существующие файлы vars.bat и openssl.cnf будут перезаписаны):

Теперь отредактируйте файл vars (называемый vars.bat в Windows) и задайте KEY_COUNTRY. , KEY_PROVINCE, KEY_CITY, KEY_ORG и KEY_EMAIL.Не оставляйте ни один из этих параметров пустым.

Затем инициализируйте PKI. В Linux/BSD/Unix:

Последняя команда ( build-ca ) создаст сертификат и ключ центра сертификации (CA) путем вызова интерактивной команды openssl :

Обратите внимание, что в приведенной выше последовательности параметры по умолчанию были установлены в значения, установленные в файлах vars или vars.bat . Единственный параметр, который необходимо ввести явно, — это Common Name .В приведенном выше примере я использовал «OpenVPN-CA».

Далее мы сгенерируем сертификат и закрытый ключ для сервера. В Linux/BSD/Unix:

Как и в предыдущем шаге, для большинства параметров можно использовать значения по умолчанию. При запросе Common Name введите «сервер». Два других запроса требуют положительных ответов: «Подписать сертификат? [да/нет]» и «1 из 1 запросов на сертификат сертифицирован, зафиксировать? [да/нет]».

Создание клиентских сертификатов очень похоже на предыдущий шаг.В Linux/BSD/Unix:

Если вы хотите защитить ключи клиента паролем, замените сценарий build-key-pass .

Помните, что для каждого клиента обязательно вводите соответствующее  Общее имя  при появлении запроса, например «client1», «client2» или «client3». Всегда используйте уникальное общее имя для каждого клиента.

Параметры Диффи Хеллмана должны быть созданы для сервера OpenVPN. В Linux/BSD/Unix:

Теперь мы найдем наши вновь сгенерированные ключи и сертификаты в подкаталоге keys .Вот объяснение соответствующих файлов:

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

Подождите, скажете вы. Разве нельзя настроить PKI без уже существующего безопасного канала?

Ответ якобы да. В приведенном выше примере для краткости мы сгенерировали все приватные ключи в одном месте. Приложив немного больше усилий, мы могли бы сделать это по-другому.Например, вместо того, чтобы генерировать сертификат клиента и ключи на сервере, мы могли бы сделать так, чтобы клиент генерировал свой собственный закрытый ключ локально, а затем отправлял запрос на подпись сертификата (CSR) машине для подписи ключей. В свою очередь, машина для подписи ключей могла бы обработать CSR и вернуть клиенту подписанный сертификат. Это можно было бы сделать, даже не требуя, чтобы секретный файл .key покидал жесткий диск машины, на которой он был создан.

В качестве отправной точки для собственной конфигурации лучше всего использовать примеры файлов конфигурации OpenVPN.Эти файлы также можно найти в

. Обратите внимание, что в Linux, BSD или Unix-подобных операционных системах примеры файлов конфигурации называются server.conf и client.conf . В Windows они называются server.ovpn и client.ovpn .

Образец файла конфигурации сервера является идеальной отправной точкой для настройки сервера OpenVPN. Он создаст VPN с использованием виртуального сетевого интерфейса TUN (для маршрутизации), будет прослушивать клиентские подключения через порт UDP 1194 (официальный номер порта OpenVPN) и раздавать виртуальные адреса подключающимся клиентам из 10.8.0.0/24 подсеть.

Прежде чем использовать пример файла конфигурации, вы должны сначала изменить параметры ca , cert , key и dh , чтобы они указывали на файлы, созданные вами в разделе PKI выше.

На этом этапе файл конфигурации сервера можно использовать, однако вы все равно можете настроить его дальше:

Если вы хотите запустить несколько экземпляров OpenVPN на одном компьютере, каждый из которых использует свой :

Пример файла конфигурации клиента ( client.conf  в Linux/BSD/Unix или client.ovpn в Windows) отражает директивы по умолчанию, установленные в образце файла конфигурации сервера.

Во-первых, убедитесь, что сервер OpenVPN будет доступен из Интернета. Это означает:

Для упрощения устранения неполадок лучше сначала запустить сервер OpenVPN из командной строки (или щелкнуть правой кнопкой мыши файл .ovpn в Windows), а не запускать его как демон или службу:

A нормальный запуск сервера должен выглядеть так (вывод зависит от платформы):

Запуск клиента

Как и при настройке сервера, лучше всего сначала запустить сервер OpenVPN из командной строки (или в Windows, щелкнув правой кнопкой мыши клиент .ovpn ), а не запускать его как демон или службу:

.
  openvpn [файл конфигурации клиента]  

Обычный запуск клиента в Windows будет выглядеть так же, как вывод сервера выше, и должен заканчиваться сообщением Initialization Sequence Completed .

Теперь попробуйте выполнить эхо-запрос через VPN от клиента. Если вы используете маршрутизацию (например, dev tun  в файле конфигурации сервера), попробуйте:

  пинг 10.8.0,1  

Если вы используете мост (например, dev, коснитесь  в файле конфигурации сервера), попробуйте пропинговать IP-адрес машины в подсети Ethernet сервера.

Если проверка связи прошла успешно, поздравляем! Теперь у вас есть работающий VPN.

Поиск и устранение неисправностей

Если проверка связи не удалась или инициализация клиента OpenVPN не завершилась, вот контрольный список общих проблем и их решений:

  • Появляется сообщение об ошибке:  Ошибка TLS: не удалось согласовать ключ TLS в течение 60 секунд (проверьте подключение к сети) .Эта ошибка указывает на то, что клиенту не удалось установить сетевое соединение с сервером. Решения :
    • Убедитесь, что клиент использует правильное имя хоста/IP-адрес и номер порта, что позволит ему получить доступ к серверу OpenVPN.
    • Если сервер OpenVPN представляет собой блок с одной сетевой картой внутри защищенной локальной сети, убедитесь, что вы используете правильное правило переадресации портов в брандмауэре шлюза сервера. Например, предположим, что ваш OpenVPN-сервер находится по адресу 192.168.4.4 внутри брандмауэра и прослушивает клиентские подключения через UDP-порт 1194.Шлюз NAT, обслуживающий подсеть 192.168.4.x, должен иметь правило переадресации портов, в котором говорится, что перенаправляет UDP-порт 1194 с моего общедоступного IP-адреса на 192.168.4.4 .
    • Откройте брандмауэр сервера, чтобы разрешить входящие подключения к порту UDP 1194 (или любому другому порту TCP/UDP, который вы настроили в файле конфигурации сервера).
  • Вы получаете сообщение об ошибке: Последовательность инициализации завершена с ошибками . Эта ошибка может возникнуть в Windows, если (а) у вас не запущена служба DHCP-клиента или (б) вы используете персональные брандмауэры сторонних производителей. на ХР SP2. Решение : Запустите клиентский сервер DHCP и убедитесь, что вы используете персональный брандмауэр, который, как известно, правильно работает на XP SP2.
  • Вы получаете сообщение Initialization Sequence Completed , но проверка связи не удалась. Обычно это указывает на то, что брандмауэр на сервере или клиенте блокирует сетевой трафик VPN, фильтруя интерфейс TUN/TAP. Решение . Отключите брандмауэр клиента (если он существует) от фильтрации интерфейса TUN/TAP на клиенте.Например, в Windows XP SP2 это можно сделать, перейдя в Центр безопасности Windows -> Брандмауэр Windows -> Расширенный и сняв флажок, соответствующий адаптеру TAP-Windows (отключив брандмауэр клиента от фильтрации адаптера TUN/TAP). обычно разумно с точки зрения безопасности, поскольку вы, по сути, говорите брандмауэру не блокировать аутентифицированный VPN-трафик). Также убедитесь, что интерфейс TUN/TAP на сервере не фильтруется брандмауэром (при этом обратите внимание, что выборочное брандмауэр интерфейса TUN/TAP на стороне сервера может дать определенные преимущества в плане безопасности.См. раздел политик доступа ниже).
  • Соединение останавливается при запуске при использовании конфигурации proto udp , в файле журнала сервера отображается следующая строка:
     TLS: исходный пакет от x.x.x.x:x, sid=xxxxxxxxx xxxxxxxxxx 

    , однако в журнале клиента нет эквивалентной строки.

    Решение : У вас одностороннее соединение от клиента к серверу. Направление от сервера к клиенту блокируется брандмауэром, обычно на стороне клиента.Брандмауэр может быть либо (а) личным программным брандмауэром, работающим на клиенте, либо (б) шлюзом маршрутизатора NAT для клиента. Измените брандмауэр, чтобы позволить возвращаемым UDP-пакетам с сервера достигать клиента.

Дополнительные сведения об устранении неполадок см. в разделе часто задаваемых вопросов.


Настройка OpenVPN для автоматического запуска при запуске системы

Отсутствие стандартов в этой области означает, что большинство операционных систем имеют другой способ настройки демонов/служб для автозапуска при загрузке.Лучший способ настроить эту функцию по умолчанию — установить OpenVPN в виде пакета, например, через RPM в Linux или с помощью установщика Windows.

Линукс

Если вы устанавливаете OpenVPN через пакет RPM или DEB в Linux, программа установки настроит сценарий инициализации . При выполнении initscript просканирует .conf конфигурационные файлы в /etc/openvpn и, если найдет, запустит отдельный демон OpenVPN для каждого файла.

Windows

Установщик Windows настроит Service Wrapper, но по умолчанию оставит его выключенным.Чтобы активировать его, перейдите в Панель управления/Администрирование/Службы, выберите службу OpenVPN, щелкните правой кнопкой мыши свойства и установите для параметра Тип запуска значение Автоматически. Это настроит службу на автоматический запуск при следующей перезагрузке.

При запуске OpenVPN Service Wrapper сканирует папку \Program Files\OpenVPN\config на наличие файлов конфигурации .ovpn , запуская отдельный процесс OpenVPN для каждого файла.


Управление запущенным процессом OpenVPN

Запуск на Linux/BSD/Unix

OpenVPN принимает несколько сигналов:

  • SIGUSR1  — Условный перезапуск, предназначенный для перезапуска без привилегий root
  • SIGHUP  — Жесткий перезапуск
  • SIGUSR2  — — Вывести статистику подключений в файл журнала или системный журнал
  • SIGTERM SIGINT  — Выход

Используйте директиву writepid , чтобы записать PID демона OpenVPN в файл, чтобы вы знали, куда отправлять сигнал (если вы запускаете openvpn с initscript , скрипт уже может передавать —writepid  в командной строке openvpn ).

Запуск в Windows с графическим интерфейсом

См. страницу графического интерфейса OpenVPN.

Запуск в окне командной строки Windows

В Windows вы можете запустить OpenVPN, щелкнув правой кнопкой мыши файл конфигурации OpenVPN (файл .ovpn ) и выбрав «Запустить OpenVPN в этом файле конфигурации».

После запуска таким образом доступны несколько клавиатурных команд:

  • F1  — — Условный перезапуск (не закрывает/повторно не открывает TAP-адаптер)
  • F2  — Показать статистику подключения
  • F3  — Аппаратный перезапуск
  • F4  — Выход

Запуск в качестве службы Windows

Когда OpenVPN запускается как служба в Windows, единственный способ управлять ею:

  • Через диспетчер управления службами (Панель управления/Администрирование/Службы), который обеспечивает управление запуском/остановкой.
  • Через интерфейс управления (см. ниже).

Изменение конфигурации действующего сервера

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

client-config-dir  — Эта директива задает каталог конфигурации клиента, который сервер OpenVPN будет сканировать при каждом входящем соединении в поисках файла конфигурации для конкретного клиента (дополнительную информацию см. на странице руководства).Файлы в этом каталоге можно обновлять «на лету», без перезапуска сервера. Обратите внимание, что изменения в этом каталоге вступят в силу только для новых подключений, а не для существующих. Если вы хотите, чтобы изменение файла конфигурации для конкретного клиента немедленно вступало в силу на подключенном в данный момент клиенте (или на клиенте, который отключился, но сервер не установил тайм-аут своего объекта экземпляра), уничтожьте объект экземпляра клиента с помощью команды управления. интерфейс (описан ниже). Это приведет к повторному подключению клиента и использованию нового файла client-config-dir .

crl-verify  — Эта директива называет файл списка отзыва сертификатов  , описанный ниже в разделе Отзыв сертификатов . Файл CRL можно изменить на лету, и изменения вступят в силу немедленно для новых подключений или существующих подключений, которые повторно согласовывают свой канал SSL/TLS (по умолчанию происходит один раз в час). Если вы хотите убить подключенного в данный момент клиента, сертификат которого только что был добавлен в CRL, используйте интерфейс управления (описанный ниже).

Файл состояния

В файле server.conf по умолчанию есть строка

.
  статус openvpn-status.log  

, который будет выводить список текущих клиентских подключений к файлу openvpn-status.log один раз в минуту.

Использование интерфейса управления

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

Чтобы включить интерфейс управления на сервере или клиенте OpenVPN, добавьте в файл конфигурации:

  локальный хост управления 7505  

Это указывает OpenVPN прослушивать TCP-порт 7505 для клиентов интерфейса управления (порт 7505 является произвольным выбором — вы можете использовать любой свободный порт).

После запуска OpenVPN вы можете подключиться к интерфейсу управления с помощью клиента telnet . Например:

 ai:~ # телнет локальный хост 7505
Попытка 127.]'.
> ИНФОРМАЦИЯ: интерфейс управления OpenVPN версии 1 — введите «помощь» для получения дополнительной информации
помощь
Интерфейс управления для OpenVPN 2.0_rc14 i686-suse-linux [SSL] [LZO] [EPOLL], построенный 15 февраля 2005 г.
Команды:
echo [on|off] [N|all] : Аналогично журналу, но показывать сообщения только в эхо-буфере.
exit|quit : закрыть сеанс управления.
help : Распечатать это сообщение.
Hold [on|off|release] : установить/показать флаг удержания в состояние «включено/выключено» или
                         снять текущее удержание и запустить туннель.kill cn : Убить экземпляр(ы) клиента с общим именем cn.
kill IP:port : убить экземпляр клиента, подключающийся с IP:port.
log [on|off] [N|all] : Включить/выключить отображение журнала в реальном времени.
                         + показать последние N строк или «все» для всей истории.
mute [n] : установить уровень отключения звука журнала на n или показать уровень, если n отсутствует.
net : (только для Windows) Показать информацию о сети и таблицу маршрутизации.
тип пароля p : введите пароль p для запрошенного пароля OpenVPN.signal s : отправить сигнал демону,
                         s = SIGHUP|SIGTERM|SIGUSR1|SIGUSR2.
state [on|off] [N|all] : Аналогично журналу, но показывает историю состояний.
status [n] : Показать текущую информацию о статусе демона, используя формат #n.
test n : создать n строк вывода для тестирования/отладки.
тип имени пользователя u : введите имя пользователя u для запрошенного имени пользователя OpenVPN.
глагол [n] : установить уровень детализации журнала на n или показать, если n отсутствует.version : Показать номер текущей версии.
КОНЕЦ
выход
Соединение прервано внешним хостом.
ай:~ # 

Дополнительные сведения см. в документации по интерфейсу управления OpenVPN.


Расширение области действия VPN для включения дополнительных машин в клиентскую или серверную подсеть.

Включение нескольких машин на стороне сервера при использовании маршрутизируемой VPN (dev tun)

После того, как VPN заработает в режиме «точка-точка» между клиентом и сервером, может потребоваться расширить область действия VPN, чтобы клиенты могли подключаться к нескольким компьютерам в сети сервера, а не только к самому серверу.

В этом примере предполагается, что локальная сеть на стороне сервера использует подсеть 10.66.0.0/24 , а пул IP-адресов VPN использует 10.8.0.0/24 , как указано в директиве server . в файле конфигурации сервера OpenVPN.

Во-первых, вы должны объявить подсеть 10.66.0.0/24 клиентам VPN как доступную через VPN. Это можно легко сделать с помощью следующей директивы файла конфигурации на стороне сервера:

  push "маршрут 10.66.0.0 255.255.255.0"  

Далее необходимо настроить маршрут на шлюзе локальной сети на стороне сервера для маршрутизации подсети VPN-клиента ( 10.8.0.0/24 ) на сервер OpenVPN (это необходимо только в том случае, если сервер OpenVPN и шлюз локальной сети отличаются машины).

Убедитесь, что вы включили переадресацию IP и TUN/TAP на сервере OpenVPN.

Включение нескольких компьютеров на стороне сервера при использовании VPN с мостовым соединением (dev tap)

Одним из преимуществ использования Ethernet-моста является то, что вы получаете его бесплатно, не требуя дополнительной настройки.

Включение нескольких машин на стороне клиента при использовании маршрутизируемой VPN (dev tun)

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

В этом примере предполагается, что клиентская локальная сеть использует подсеть 192.168.4.0/24 и что клиент VPN использует сертификат с общим именем client2 .Наша цель — настроить VPN таким образом, чтобы любая машина в клиентской локальной сети могла связываться с любой машиной в серверной локальной сети через VPN.

Перед установкой необходимо выполнить несколько основных условий:

  • Подсеть локальной сети клиента (в нашем примере 192.168.4.0/24) не должна экспортироваться в VPN сервером или любыми другими клиентскими сайтами, использующими ту же подсеть. Каждая подсеть, присоединенная к VPN через маршрутизацию, должна быть уникальной.
  • Клиент должен иметь уникальное общее имя в своем сертификате (в нашем примере — «client2»), а флаг дубликат-cn не должен использоваться в файле конфигурации сервера OpenVPN.

Сначала убедитесь, что на клиентском компьютере включена переадресация IP и TUN/TAP.

Далее мы займемся необходимыми изменениями конфигурации на стороне сервера. Если файл конфигурации сервера в настоящее время не ссылается на каталог конфигурации клиента, добавьте его сейчас:

  клиент-конфигурация-каталог ccd  

В приведенной выше директиве ccd  должно быть именем каталога, который был предварительно создан в каталоге по умолчанию, где работает демон сервера OpenVPN.В Linux это обычно /etc/openvpn , а в Windows обычно \Program Files\OpenVPN\config . Когда новый клиент подключается к серверу OpenVPN, демон проверит этот каталог на наличие файла, который соответствует общему имени подключающегося клиента. Если соответствующий файл найден, он будет прочитан и обработан для применения дополнительных директив файла конфигурации к указанному клиенту.

Следующим шагом является создание файла с именем client2 в каталоге ccd .Этот файл должен содержать строку:

  маршрут 192.168.4.0 255.255.255.0  

Это сообщит серверу OpenVPN, что подсеть 192.168.4.0/24 должна быть направлена ​​на  client2 .

Затем добавьте следующую строку в основной файл конфигурации сервера (не в файл ccd/client2 ):

  маршрут 192.168.4.0 255.255.255.0  

Почему избыточные операторы route и iroute , спросите вы? Причина в том, что маршрут управляет маршрутизацией от ядра к серверу OpenVPN (через интерфейс TUN), а маршрут управляет маршрутизацией от сервера OpenVPN к удаленным клиентам.Оба необходимы.

Затем спросите себя, хотите ли вы разрешить сетевой трафик между подсетью client2 (192.168.4.0/24) и другими клиентами сервера OpenVPN. Если это так, добавьте следующее в файл конфигурации сервера.

  клиент-клиент
нажмите "маршрут 192.168.4.0 255.255.255.0"  

Это приведет к тому, что сервер OpenVPN объявит подсеть client2 другим подключающимся клиентам.

Последним шагом, о котором часто забывают, является добавление маршрута к шлюзу локальной сети сервера, который направляет 192.168.4.0/24 к серверу OpenVPN (это вам не понадобится, если сервер OpenVPN  – это  шлюз для серверной локальной сети). Предположим, вы пропустили этот шаг и попытались пропинговать машину (не сам сервер OpenVPN) в локальной сети сервера с 192.168.4.8? Исходящий эхо-запрос, вероятно, достигнет машины, но тогда он не будет знать, как направить ответ на эхо-запрос, потому что он понятия не имеет, как достичь 192.168.4.0/24. Эмпирическое правило заключается в том, что при маршрутизации целых локальных сетей через VPN (когда VPN-сервер не является той же машиной, что и шлюз локальной сети), убедитесь, что шлюз для локальной сети направляет все подсети VPN на компьютер VPN-сервера.

Аналогичным образом, если клиентский компьютер, на котором работает OpenVPN, не является также шлюзом для клиентской локальной сети, тогда шлюз для клиентской локальной сети должен иметь маршрут, который направляет все подсети, которые должны быть доступны через VPN, на клиентский компьютер OpenVPN.

Включение нескольких компьютеров на стороне клиента при использовании VPN с мостовым соединением (dev tap)

Это требует более сложной настройки (возможно, не более сложной на практике, но более сложной для подробного объяснения):

  • Необходимо соединить интерфейс TAP клиента с сетевой картой клиента, подключенной к локальной сети.
  • Необходимо вручную установить IP/маску сети TAP-интерфейса на клиенте.
  • Необходимо настроить клиентские машины для использования IP-адреса/маски подсети, которые находятся внутри подсети с мостом, возможно, путем запроса DHCP-сервера на стороне сервера OpenVPN в VPN.

Передача параметров DHCP клиентам

Сервер OpenVPN может передавать параметры DHCP, такие как адреса серверов DNS и WINS, клиентам (некоторые предостережения, о которых следует помнить). Клиенты Windows могут принимать принудительно переданные параметры DHCP изначально, в то время как клиенты, отличные от Windows, могут принимать их с помощью клиентского сценария up , который анализирует список переменных среды Foreign_option_ n .См. справочную страницу для не-Windows Foreign_option_ n  документацию и примеры скриптов.

Например, предположим, что вы хотите подключать клиентов для использования внутреннего DNS-сервера по адресу 10.66.0.4 или 10.66.0.5 и WINS-сервера по адресу 10.66.0.8. Добавьте это в конфигурацию сервера OpenVPN:

  нажмите "dhcp-опция DNS 10.66.0.4"
нажмите «dhcp-опция DNS 10.66.0.5»
нажмите "опция DHCP WINS 10.66.0.8"  

Чтобы протестировать эту функцию в Windows, выполните следующую команду из окна командной строки после того, как машина подключится к серверу OpenVPN:

  ipconfig /все  

В записи для адаптера TAP-Windows должны отображаться параметры DHCP, которые были переданы сервером.


 

Настройка клиентских правил и политик доступа

Предположим, мы настраиваем VPN компании и хотим установить отдельные политики доступа для 3 разных классов пользователей:

  • Системные администраторы  — полный доступ ко всем машинам в сети
  • Сотрудники  — доступ только к Samba/почтовому серверу
  • Подрядчики  — доступ только к специальному серверу

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

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

Обратите внимание, что одним из предварительных условий этого примера является наличие программного брандмауэра, работающего на сервере OpenVPN, который дает вам возможность определять определенные правила брандмауэра.В нашем примере мы предположим, что брандмауэр — это Linux iptables .

Во-первых, давайте создадим карту виртуальных IP-адресов в соответствии с классом пользователя:

Класс Диапазон виртуальных IP-адресов Разрешенный доступ к локальной сети Общие имена
Сотрудники 10.8.0.0/24 Samba/почтовый сервер по адресу 10.66.4.4 [переменная]
Системные администраторы 10.8.1.0/24 Вся подсеть 10.66.4.0/24 системный администратор1
Подрядчики 10.8.2.0/24 Сервер подрядчика по адресу 10.66.4.12 подрядчик1, подрядчик2

Далее давайте переведем эту карту в конфигурацию сервера OpenVPN. Прежде всего убедитесь, что вы выполнили описанные выше шаги, чтобы сделать подсеть 10.66.4.0/24 доступной для всех клиентов (в то время как мы настроим маршрутизацию, чтобы разрешить клиентам доступ ко всем 10.66.4.0/24, мы затем наложим ограничения доступа с помощью правил брандмауэра для реализации приведенной выше таблицы политик).

Сначала определите статический номер устройства для нашего интерфейса tun , чтобы мы могли ссылаться на него позже в наших правилах брандмауэра:

  разработчик tun0  

В файле конфигурации сервера определите пул IP-адресов сотрудников:

  сервер 10.8.0.0 255.255.255.0  

Добавить маршруты для диапазонов IP-адресов системного администратора и подрядчика:

  маршрут 10.8.1.0 255.255.255.0
маршрут 10.8.2.0 255.255.255.0  

Поскольку мы будем назначать фиксированные IP-адреса для определенных системных администраторов и подрядчиков, мы будем использовать каталог конфигурации клиента:

  клиент-конфигурация-каталог ccd  

Теперь поместите специальные файлы конфигурации в подкаталог  ccd  , чтобы определить фиксированный IP-адрес для каждого VPN-клиента, не являющегося сотрудником.

ccd/sysadmin1

  ifconfig-push 10.8.1.1 10.8.1.2  

ccd/подрядчик1

  ifconfig-push 10.8.2.1 10.8.2.2  

ccd/подрядчик2

  ifconfig-push 10.8.2.5 10.8.2.6  

Каждая пара ifconfig-push  адресов представляет виртуальные конечные точки IP клиента и сервера. Они должны быть взяты из последовательных подсетей /30, чтобы быть совместимыми с клиентами Windows и драйвером TAP-Windows. В частности, последний октет в IP-адресе каждой пары конечных точек должен быть взят из этого набора:

.
 [1, 2] [5, 6] [9, 10] [13, 14] [17, 18]
[ 21, 22] [ 25, 26] [ 29, 30] [ 33, 34] [ 37, 38]
[ 41, 42] [ 45, 46] [ 49, 50] [ 53, 54] [ 57, 58]
[ 61, 62] [ 65, 66] [ 69, 70] [ 73, 74] [ 77, 78]
[ 81, 82] [ 85, 86] [ 89, 90] [ 93, 94] [ 97, 98]
[101 102] [105 106] [109 110] [113 114] [117 118]
[121 122] [125 126] [129 130] [133 134] [137 138]
[141 142] [145 146] [149 150] [153 154] [157 158]
[161 162] [165 166] [169 170] [173 174] [177 178]
[181 182] [185 186] [189 190] [193 194] [197 198]
[201 202] [205 206] [209 210] [213 214] [217 218]
[221 222] [225 226] [229 230] [233 234] [237 238]
[241 242] [245 246] [249 250] [253 254] 

На этом настройка OpenVPN завершена.Последним шагом является добавление правил брандмауэра для завершения политики доступа. В этом примере мы будем использовать правила брандмауэра в синтаксисе Linux iptables :

.
  # Правило сотрудника
iptables -A FORWARD -i tun0 -s 10.8.0.0/24 -d 10.66.4.4 -j ПРИНЯТЬ

# Правило системного администратора
iptables -A FORWARD -i tun0 -s 10.8.1.0/24 -d 10.66.4.0/24 -j ПРИНЯТЬ

# Правило подрядчика
iptables -A FORWARD -i tun0 -s 10.8.2.0/24 -d 10.66.4.12 -j ПРИНЯТЬ  

Использование альтернативных методов аутентификации

ОпенВПН 2.0 и более поздние версии включают функцию, которая позволяет серверу OpenVPN безопасно получать имя пользователя и пароль от подключающегося клиента и использовать эту информацию в качестве основы для аутентификации клиента.

Чтобы использовать этот метод аутентификации, сначала добавьте директиву auth-user-pass в конфигурацию клиента. Он укажет клиенту OpenVPN запросить у пользователя имя пользователя/пароль, передав его на сервер по защищенному каналу TLS.

Затем настройте сервер для использования подключаемого модуля проверки подлинности, который может быть сценарием, общим объектом или библиотекой DLL.Сервер OpenVPN будет вызывать плагин каждый раз, когда VPN-клиент пытается подключиться, передавая ему имя пользователя/пароль, введенные на клиенте. Плагин проверки подлинности может контролировать, разрешает ли сервер OpenVPN клиенту подключаться, возвращая значение ошибки (1) или успеха (0).

Использование подключаемых модулей сценариев

Чтобы использовать подключаемые модули сценариев

, добавьте директиву auth-user-pass-verify в файл конфигурации на стороне сервера. Например:

  auth-user-pass-verify auth-pam.pl через файл  

будет использовать скрипт auth-pam.pl  perl для аутентификации имени пользователя и пароля подключающихся клиентов. См. описание auth-user-pass-verify на странице руководства для получения дополнительной информации.

Скрипт auth-pam.pl  включен в дистрибутив исходного файла OpenVPN в подкаталоге sample-scripts . Он будет аутентифицировать пользователей на сервере Linux с помощью модуля аутентификации PAM, который, в свою очередь, может реализовать теневой пароль, аутентификацию RADIUS или LDAP. auth-pam.pl  в первую очередь предназначен для демонстрационных целей. Для реальной аутентификации PAM используйте подключаемый модуль общего объекта openvpn-auth-pam , описанный ниже.

Использование общих объектов или подключаемых модулей DLL

Общие объекты или подключаемые модули DLL обычно представляют собой скомпилированные модули C, которые загружаются сервером OpenVPN во время выполнения. Например, если вы используете пакет OpenVPN на основе RPM в Linux, плагин openvpn-auth-pam должен быть уже собран. Чтобы использовать его, добавьте это в файл конфигурации на стороне сервера:

  плагин /usr/share/openvpn/plugin/lib/openvpn-auth-pam.поэтому логин  

Это укажет серверу OpenVPN проверить имя пользователя/пароль, введенные клиентами с помощью модуля PAM login .

Для реального использования лучше использовать плагин openvpn-auth-pam , так как он имеет несколько преимуществ по сравнению со сценарием auth-pam.pl  :

  • Плагин общего объекта openvpn-auth-pam использует модель выполнения с разделением привилегий для повышения безопасности. Это означает, что сервер OpenVPN может работать с ограниченными привилегиями, используя директивы user Nobody , group Nobody и chroot , и по-прежнему сможет аутентифицироваться по файлу теневых паролей, предназначенному только для чтения root.
  • OpenVPN может передавать имя пользователя/пароль подключаемому модулю через виртуальную память, а не через файл или среду, что лучше для локальной безопасности на сервере.
  • Модули подключаемых модулей, скомпилированные на C, обычно работают быстрее, чем скрипты.

Если вам нужна дополнительная информация о разработке собственных подключаемых модулей для использования с OpenVPN, см. файлы README в подкаталоге plugin исходного дистрибутива OpenVPN.

Чтобы собрать плагин openvpn-auth-pam в Linux, перейдите в каталог plugin/auth-pam в исходном дистрибутиве OpenVPN и запустите make .

Использование аутентификации по имени пользователя и паролю как единственной формы аутентификации клиента

По умолчанию при использовании auth-user-pass-verify или подключаемого модуля для проверки имени пользователя/пароля на сервере будет включена двойная аутентификация. быть аутентифицированным.

Хотя это не рекомендуется с точки зрения безопасности, также можно отключить использование клиентских сертификатов и принудительно выполнять аутентификацию только по имени пользователя/паролю.На сервере:

  сертификат клиента не требуется  

Такие конфигурации обычно должны также устанавливать:

  имя пользователя как обычное имя  

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

Обратите внимание, что client-cert-not-required  не устраняет необходимость в сертификате сервера, поэтому клиент, подключающийся к серверу, который использует client-cert-not-required , может удалить сертификат и ключ директивы из файла конфигурации клиента, но не директиву ca , поскольку она необходима клиенту для проверки сертификата сервера.


Как добавить двухфакторную аутентификацию в конфигурацию OpenVPN с использованием смарт-карт на стороне клиента

О двухфакторной аутентификации

Двухфакторная аутентификация — это метод аутентификации, который сочетает в себе два элемента: что-то, что у вас есть, и что-то, что вы знаете.

Что-то, что у вас есть, должно быть устройством, которое нельзя дублировать; таким устройством может быть криптографический токен, содержащий закрытый секретный ключ. Этот закрытый ключ генерируется внутри устройства и никогда не покидает его.Если пользователь, обладающий этим токеном, пытается получить доступ к защищенным службам в удаленной сети, процесс авторизации, который разрешает или запрещает доступ к сети, может с высокой степенью достоверности установить, что пользователь, запрашивающий доступ, физически владеет известным сертифицированным токеном. .

Что-то, что вы знаете, может быть паролем, представленным криптографическому устройству. Без предоставления правильного пароля вы не можете получить доступ к личному секретному ключу. Еще одной особенностью криптографических устройств является запрет на использование закрытого секретного ключа, если неверный пароль был введен более разрешенного количества раз.Такое поведение гарантирует, что если пользователь потеряет свое устройство, другой человек не сможет его использовать.

Криптографические устройства обычно называются «смарт-картами» или «токенами» и используются вместе с PKI (инфраструктурой открытых ключей). VPN-сервер может проверить сертификат X.509 и убедиться, что пользователь владеет соответствующим закрытым секретным ключом. Поскольку устройство не может быть продублировано и требует действительного пароля, сервер может аутентифицировать пользователя с высокой степенью уверенности.

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

Если вы храните секретный закрытый ключ в файле, ключ обычно шифруется паролем.Проблема с этим подходом заключается в том, что зашифрованный ключ подвергается атакам дешифрования или шпионскому/вредоносному ПО, работающему на клиентской машине. В отличие от использования криптографического устройства, файл не может автоматически стереться после нескольких неудачных попыток расшифровки.

Что такое PKCS#11?

Этот стандарт определяет API, называемый Cryptoki, для устройств, которые хранят криптографическую информацию и выполняют криптографические функции. Cryptoki, произносится как «крипто-ключ» и сокращение от «интерфейс криптографических токенов», следует простому объектно-ориентированному подходу, направленному на достижение целей технологической независимости (любой тип устройства) и совместного использования ресурсов (несколько приложений, обращающихся к нескольким устройствам), предоставляя приложениям общее логическое представление устройства, называемое криптографическим токеном.

Источник: RSA Security Inc. https://www.emc.com/emc-plus/rsa-labs/standards-initiatives/pkcs-11-cryptographic-token-interface-standard.htm.

Подводя итог, можно сказать, что PKCS#11 — это стандарт, который может использоваться прикладным программным обеспечением для доступа к криптографическим маркерам, таким как смарт-карты и другие устройства. Большинство поставщиков устройств предоставляют библиотеку, которая реализует интерфейс поставщика PKCS#11 — эта библиотека может использоваться приложениями для доступа к этим устройствам. PKCS#11 — это кроссплатформенный, независимый от поставщиков бесплатный стандарт.

Поиск библиотеки поставщика PKCS#11

Первым делом нужно найти библиотеку провайдера, она должна быть установлена ​​вместе с драйверами устройств. У каждого производителя своя библиотека. Например, поставщик OpenSC PKCS#11 находится в /usr/lib/pkcs11/opensc-pkcs11.so в Unix или в opensc-pkcs11.dll в Windows.

Как настроить криптографический токен

Вы должны следовать процедуре регистрации:

  • Инициализировать токен PKCS#11.
  • Создайте пару ключей RSA на токене PKCS#11.
  • Создайте запрос сертификата на основе пары ключей. Для этого вы можете использовать OpenSC и OpenSSL.
  • Отправьте запрос на сертификат в центр сертификации и получите сертификат.
  • Загрузите сертификат в токен, при этом обратите внимание, что атрибуты идентификатора и метки сертификата должны совпадать с атрибутами закрытого ключа.

Настроенный токен — это токен, который имеет объект закрытого ключа и объект сертификата, где оба имеют одни и те же атрибуты идентификатора и метки.

Простой утилитой регистрации является Easy-RSA 2.0, которая является частью серии OpenVPN 2.1. Следуйте инструкциям, указанным в файле README, а затем используйте pkitool для регистрации.

Инициализируйте токен с помощью следующей команды:

 $ ./pkitool --pkcs11-slots /usr/lib/pkcs11/
$ ./pkitool --pkcs11-init /usr/lib/pkcs11/
 

Зарегистрируйте сертификат с помощью следующей команды:

 $ ./pkitool --pkcs11 /usr/lib/pkcs11/ клиент1
 

Как изменить конфигурацию OpenVPN для использования криптографических токенов

У вас должен быть OpenVPN 2.1 или выше, чтобы использовать функции PKCS#11.

Определить правильный объект

Каждый поставщик PKCS#11 может поддерживать несколько устройств. Чтобы просмотреть список доступных объектов, вы можете использовать следующую команду:

 $ openvpn --show-pkcs11-ids /usr/lib/pkcs11/

Следующие объекты доступны для использования.
Каждый объект, показанный ниже, может быть использован в качестве параметра для
--pkcs11-id не забудьте использовать одинарную кавычку.

Сертификат
       DN: /CN=User1
       Серийный номер: 490B82C4000000000075
       Серийный идентификатор: aaaa/bbb/41545F5349474E4154555524581D2A1A1B23C4AA4CB17FAF7A4600 

Каждая пара сертификат/закрытый ключ имеет уникальную строку «Серийный идентификатор».Строка сериализованного идентификатора запрошенного сертификата должна быть указана в параметре pkcs11-id с использованием одинарных кавычек.

  pkcs11-id 'aaaa/bbb/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
  
Использование OpenVPN с PKCS#11
Типичный набор опций OpenVPN для PKCS#11
  pkcs11-провайдеры /usr/lib/pkcs11/
pkcs11-id 'aaaa/bbb/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
  

Будет выбран объект, соответствующий строке pkcs11-id.

Дополнительные параметры OpenVPN для PKCS#11
  pkcs11-providers /usr/lib/pkcs11/provider1.so /usr/lib/pkcs11/provider2.so
pkcs11-id 'aaaa/bbb/41545F5349474E415455524581D2A1A1B23C4AA4CB17FAF7A4600'
pkcs11-контактный кэш 300
демон
повторная попытка авторизации
управление-удержание
сигнал управления
управление 127.0.0.1 8888
управление-запрос-пароли
  

Это загрузит двух провайдеров в OpenVPN, будет использовать сертификат, указанный в опции pkcs11-id , и использовать интерфейс управления для запроса паролей.Демон возобновит работу в состоянии удержания по событию, когда доступ к токену будет невозможен. Токен будет использоваться в течение 300 секунд, после чего пароль будет повторно запрошен, сеанс будет отключен, если сеанс управления будет отключен.

Рекомендации по реализации PKCS#11

Многие провайдеры PKCS#11 используют потоки, чтобы избежать проблем, вызванных реализацией LinuxThreads (setuid, chroot), настоятельно рекомендуется обновить glibc до встроенной библиотеки потоков POSIX (NPTL), если вы собираетесь использовать PKCS# 11.

Поставщик OpenSC PKCS#11

Поставщик OpenSC PKCS#11 находится в /usr/lib/pkcs11/opensc-pkcs11.so в Unix или в opensc-pkcs11.dll в Windows.

Разница между PKCS#11 и Microsoft Cryptographic API (CryptoAPI)

PKCS#11 — это бесплатный кроссплатформенный стандарт, независимый от поставщиков. CryptoAPI — это специальный API Microsoft. Большинство поставщиков смарт-карт обеспечивают поддержку обоих интерфейсов. В среде Windows пользователь должен выбрать, какой интерфейс использовать.

Текущая реализация OpenVPN, использующая MS CryptoAPI (опция cryptoapicert  ), работает хорошо, если вы не используете OpenVPN как службу. Если вы хотите запустить OpenVPN в административной среде с помощью службы, эта реализация не будет работать с большинством смарт-карт по следующим причинам:

  • Большинство поставщиков смарт-карт не загружают сертификаты в хранилище локального компьютера, поэтому реализация не сможет получить доступ к сертификату пользователя.
  • Если клиент OpenVPN работает как служба без прямого взаимодействия с конечным пользователем, служба не может запросить у пользователя пароль для смарт-карты, что приведет к сбою процесса проверки пароля на смарт-карте.

Используя интерфейс PKCS#11, вы можете использовать смарт-карты с OpenVPN в любой реализации, поскольку PKCS#11 не имеет доступа к магазинам Microsoft и не обязательно требует прямого взаимодействия с конечным пользователем.


Маршрутизация всего клиентского трафика (включая веб-трафик) через VPN

Обзор

По умолчанию, когда клиент OpenVPN активен, через VPN будет проходить только сетевой трафик к сайту сервера OpenVPN и от него.Например, обычный просмотр веб-страниц будет осуществляться с помощью прямых подключений в обход VPN.

В некоторых случаях такое поведение может быть нежелательным — вы можете захотеть, чтобы клиент VPN туннелировал весь сетевой трафик через VPN, включая общий просмотр веб-страниц в Интернете. Хотя этот тип конфигурации VPN приведет к снижению производительности клиента, он дает администратору VPN больший контроль над политиками безопасности, когда клиент одновременно подключен как к общедоступному Интернету, так и к VPN одновременно.

Реализация

Добавьте следующую директиву в файл конфигурации сервера:

  push "redirect-gateway def1"  

Если ваша настройка VPN осуществляется через беспроводную сеть, где все клиенты и сервер находятся в одной беспроводной подсети, добавьте локальный флаг :

  push "redirect-gateway local def1"  

Передача параметра redirect-gateway клиентам приведет к тому, что весь сетевой IP-трафик, исходящий от клиентских компьютеров, будет проходить через сервер OpenVPN.Сервер должен быть настроен для обработки этого трафика, например, с помощью NAT в Интернете или маршрутизации через HTTP-прокси сайта сервера.

В Linux вы можете использовать такую ​​команду для NAT трафика клиента VPN в Интернет:

  iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE  

Эта команда предполагает, что подсеть VPN — 10.8.0.0/24 (взято из директивы server в конфигурации сервера OpenVPN) и что локальный интерфейс Ethernet — eth0 .

При использовании redirect-gateway клиенты OpenVPN будут направлять DNS-запросы через VPN, и VPN-сервер должен будет их обрабатывать. Этого можно добиться, передав адрес DNS-сервера подключающимся клиентам, которые заменят их обычные настройки DNS-сервера во время активности VPN. Например:

  нажмите "dhcp-опция DNS 10.8.0.1"  

настроит клиентов Windows (или клиентов не Windows с некоторыми дополнительными сценариями на стороне сервера) для использования 10.8.0.1 в качестве своего DNS-сервера. Любой адрес, доступный для клиентов, может использоваться в качестве адреса DNS-сервера.

Предостережения

Перенаправление всего сетевого трафика через VPN не совсем беспроблемное решение. Вот некоторые типичные ошибки, о которых следует знать:

  • Многие клиентские машины OpenVPN, подключающиеся к Интернету, будут периодически взаимодействовать с DHCP-сервером для продления аренды своих IP-адресов. Параметр redirect-gateway может препятствовать доступу клиента к локальному серверу DHCP (поскольку сообщения DHCP будут маршрутизироваться через VPN), что приведет к потере арендованного IP-адреса.
  •  Существуют проблемы с отправкой DNS-адресов клиентам Windows.
  • Производительность просмотра веб-страниц на клиенте будет заметно ниже.

Дополнительные сведения о механизме директивы redirect-gateway см. на странице руководства.


Запуск сервера OpenVPN на динамическом IP-адресе

В то время как клиенты OpenVPN могут легко получить доступ к серверу через динамический IP-адрес без какой-либо специальной настройки, все становится интереснее, когда сам сервер находится на динамическом адресе.Хотя OpenVPN без проблем справляется с ситуацией динамического сервера, требуется дополнительная настройка.

Первым шагом является получение динамического DNS-адреса, который можно настроить для «следования» за сервером каждый раз, когда IP-адрес сервера изменяется. Доступно несколько поставщиков услуг динамического DNS, например dyndns.org.

Следующим шагом является настройка механизма, чтобы при каждом изменении IP-адреса сервера динамическое DNS-имя быстро обновлялось новым IP-адресом, позволяя клиентам находить сервер по его новому IP-адресу.Есть два основных способа сделать это:

  • Используйте устройство маршрутизатора NAT с поддержкой динамической DNS (например, Linksys BEFSR41 ). Большинство широкодоступных недорогих маршрутизаторов NAT имеют возможность обновлять динамическое DNS-имя каждый раз, когда от интернет-провайдера поступает новая аренда DHCP. Эта настройка идеальна, когда сервер OpenVPN представляет собой машину с одной сетевой картой внутри брандмауэра.
  • Используйте клиентское приложение динамического DNS, например ddclient, для обновления динамического DNS-адреса при каждом изменении IP-адреса сервера.Эта настройка идеальна, когда машина, на которой работает OpenVPN, имеет несколько сетевых карт и действует как брандмауэр/шлюз для всего сайта. Чтобы реализовать эту настройку, вам необходимо настроить сценарий, который будет запускаться вашим программным обеспечением DHCP-клиента каждый раз, когда происходит изменение IP-адреса. Этот сценарий должен (а) запустить ddclient , чтобы уведомить вашего поставщика динамических DNS о вашем новом IP-адресе, и (б) перезапустить демон сервера OpenVPN.

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

Дополнительную информацию можно найти в FAQ.


Подключение к серверу OpenVPN через HTTP-прокси.

OpenVPN поддерживает соединения через прокси-сервер HTTP со следующими режимами аутентификации:

  • Нет проверки подлинности прокси-сервера
  • Базовая проверка подлинности прокси-сервера
  • Проверка подлинности прокси-сервера NTLM

Прежде всего, использование прокси-сервера HTTP требует использования TCP в качестве протокола туннельной несущей.Поэтому добавьте следующее в конфигурации клиента и сервера:

  протокол TCP  

Убедитесь, что все строки proto udp  в файлах конфигурации удалены.

Затем добавьте директиву http-proxy в файл конфигурации клиента (полное описание этой директивы см. на странице руководства).

Например, предположим, что у вас есть прокси-сервер HTTP в клиентской локальной сети по адресу 192.168.4.1 , который прослушивает соединения через порт 1080 .Добавьте это в конфигурацию клиента:

  http-прокси 192.168.4.1 1080  

Предположим, что прокси-сервер HTTP требует обычной аутентификации:

  http-прокси 192.168.4.1 1080 стандартный ввод базовый  

Предположим, что прокси-сервер HTTP требует проверки подлинности NTLM:

  http-прокси 192.168.4.1 1080 стандартный ввод ntlm  

Два приведенных выше примера аутентификации заставят OpenVPN запрашивать имя пользователя/пароль из стандартного ввода.Если вместо этого вы хотите поместить эти учетные данные в файл, замените stdin на имя файла и поместите имя пользователя в строку 1 этого файла, а пароль — в строку 2.


Подключение к общему ресурсу Samba через OpenVPN

Этот пример предназначен для демонстрации того, как клиенты OpenVPN могут подключаться к общему ресурсу Samba через маршрутизируемый dev tun туннель. Если вы используете мост Ethernet ( dev tap ), вам, вероятно, не нужно следовать этим инструкциям, поскольку клиенты OpenVPN должны видеть серверные машины в своем сетевом окружении.

Для этого примера предположим, что:

  • локальная сеть на стороне сервера использует подсеть 10.66.0.0/24 ,
  • пул IP-адресов VPN использует 10.8.0.0/24 (как указано в директиве server в файле конфигурации сервера OpenVPN),
  • сервер Samba имеет IP-адрес  10.66.0.4 и
  • .
  • сервер Samba уже настроен и доступен из локальной сети.

Если серверы Samba и OpenVPN работают на разных компьютерах, убедитесь, что вы следовали разделу о расширении области действия VPN для включения дополнительных компьютеров.

Затем отредактируйте файл конфигурации Samba ( smb.conf ). Убедитесь, что директива hosts allow разрешает подключение клиентам OpenVPN из подсети 10.8.0.0/24 . Например:

  разрешенных хоста = 10.66.0.0/24 10.8.0.0/24 127.0.0.1  

Если вы используете серверы Samba и OpenVPN на одном компьютере, вы можете отредактировать директиву interfaces в файле smb.conf , чтобы также прослушивать подсеть интерфейса TUN 10.8.0.0/24 :

  интерфейсы = 10.66.0.0/24 10.8.0.0/24  

Если вы используете серверы Samba и OpenVPN на одном компьютере, подключитесь с клиента OpenVPN к общему ресурсу Samba, используя имя папки:

  \\10.8.0.1\\общее имя  

Если серверы Samba и OpenVPN находятся на разных машинах, используйте имя папки:

  \\10.66.0.4\имя_ресурса  

Например, из окна командной строки:

  чистое использование z: \\10.66.0.4\имя_ресурса/ПОЛЬЗОВАТЕЛЬ:имя пользователя  

Внедрение конфигурации балансировки нагрузки/отработки отказа

Клиент

Конфигурация клиента OpenVPN может ссылаться на несколько серверов для балансировки нагрузки и аварийного переключения. Например:

  удаленный сервер1.mydomain
удаленный server2.mydomain
удаленный сервер3.mydomain  

предписывает клиенту OpenVPN попытаться установить соединение с server1, server2 и server3 в указанном порядке.Если существующее соединение разорвано, клиент OpenVPN повторит попытку последнего подключенного сервера и, если это не удастся, перейдет к следующему серверу в списке. Вы также можете указать клиенту OpenVPN рандомизировать список серверов при запуске, чтобы нагрузка клиента была вероятностно распределена по пулу серверов.

  дистанционно-случайный  

Если вы также хотите, чтобы сбои разрешения DNS приводили к переходу клиента OpenVPN на следующий сервер в списке, добавьте следующее:

  повторная попытка разрешения 60  

Параметр 60 указывает клиенту OpenVPN попытаться разрешить каждое удаленное  DNS-имя в течение 60 секунд, прежде чем переходить к следующему серверу в списке.

Список серверов также может относиться к нескольким демонам сервера OpenVPN, работающим на одном компьютере, каждый из которых прослушивает соединения через разные порты, например:

  удаленный smp-server1.mydomain 8000
удаленный smp-server1.mydomain 8001
удаленный smp-server2.mydomain 8000
удаленный smp-server2.mydomain 8001  

Если ваши серверы являются многопроцессорными машинами, запуск нескольких демонов OpenVPN на каждом сервере может быть выгоден с точки зрения производительности.

OpenVPN также поддерживает директиву remote , относящуюся к DNS-имени, которое имеет несколько записей A в конфигурации зоны для домена. В этом случае клиент OpenVPN будет случайным образом выбирать одну из записей A каждый раз при разрешении домена.

Сервер

Самый простой подход к конфигурации с балансировкой нагрузки/отказоустойчивостью на сервере заключается в использовании эквивалентных файлов конфигурации на каждом сервере в кластере, за исключением использования отдельного пула виртуальных IP-адресов для каждого сервера.Например:

сервер1

  сервер 10.8.0.0 255.255.255.0  

сервер2

  сервер 10.8.1.0 255.255.255.0  

сервер3

  сервер 10.8.2.0 255.255.255.0  

Повышение безопасности OpenVPN

Одно из часто повторяемых правил сетевой безопасности состоит в том, что никогда нельзя настолько доверять одному компоненту безопасности, чтобы его сбой привел к катастрофическому нарушению безопасности.OpenVPN предоставляет несколько механизмов для добавления дополнительных уровней безопасности, чтобы застраховаться от такого исхода.

tls-аутентификация

Директива tls-auth добавляет дополнительную подпись HMAC ко всем пакетам рукопожатия SSL/TLS для проверки целостности. Любой UDP-пакет, не имеющий правильной подписи HMAC, может быть отброшен без дальнейшей обработки. Подпись tls-auth  HMAC обеспечивает дополнительный уровень безопасности по сравнению с SSL/TLS. Может защитить от:

  • DoS-атаки или переполнение портов на UDP-порте OpenVPN.
  • Сканирование портов для определения того, какие UDP-порты сервера находятся в состоянии прослушивания.
  • Уязвимости переполнения буфера в реализации SSL/TLS.
  • Инициация рукопожатия SSL/TLS с неавторизованных компьютеров (хотя такие рукопожатия в конечном итоге не будут аутентифицированы, tls-auth  может прервать их на гораздо более раннем этапе).

Использование tls-auth  требует создания общего секретного ключа, который используется в дополнение к стандартному сертификату/ключу RSA:

  openvpn --genkey --secret ta.ключ  

Эта команда сгенерирует статический ключ OpenVPN и запишет его в файл ta.key . Этот ключ следует скопировать по уже существующему безопасному каналу на сервер и все клиентские машины. Его можно поместить в тот же каталог, что и файлы RSA .key и .crt .

В конфигурации сервера добавить:

  tls-auth ta.key 0  

В конфигурации клиента добавьте:

  tls-auth ta.ключ 1  

прото УДП

Хотя OpenVPN позволяет использовать протокол TCP или UDP в качестве соединения VPN-оператора, протокол UDP обеспечивает лучшую защиту от DoS-атак и сканирования портов, чем TCP:

  прото удп  

пользователь/группа (только не для Windows)

OpenVPN был очень тщательно разработан, чтобы разрешить отказ от привилегий суперпользователя после инициализации, и эту функцию всегда следует использовать в Linux/BSD/Solaris.Без привилегий root работающий демон сервера OpenVPN представляет собой гораздо менее заманчивую цель для злоумышленника.

  пользователь никто
группа никто  

Непривилегированный режим (только Linux)

В Linux OpenVPN может работать полностью без привилегий. Эта конфигурация немного сложнее, но обеспечивает наилучшую безопасность.

Чтобы работать с этой конфигурацией, OpenVPN должен быть настроен на использование интерфейса iproute, это делается путем указания —enable-iproute2 для настройки скрипта.Пакет sudo также должен быть доступен в вашей системе.

В этой конфигурации используется возможность Linux изменить разрешение настраиваемого устройства, чтобы к нему мог получить доступ непривилегированный пользователь. Он также использует sudo для выполнения iproute, чтобы можно было изменить свойства интерфейса и таблицу маршрутизации.

Конфигурация OpenVPN:

    • Напишите следующий сценарий и поместите его по адресу: /usr/local/sbin/unpriv-ip:
  #!/бин/ш
судо /sbin/ip $*
  
    • Выполните visudo и добавьте следующее, чтобы разрешить пользователю user1 выполнять /sbin/ip:
  пользователь 1 ВСЕ=(ВСЕ) NOPASSWD: /sbin/ip  
    • Вы также можете включить группу пользователей с помощью следующей команды:
  %users ВСЕ=(ВСЕ) NOPASSWD: /sbin/ip  
    • Добавьте в конфигурацию OpenVPN следующее:
  разработчик tunX/tapX
iproute /usr/local/sbin/unpriv-ip  
    • Обратите внимание, что вы должны выбрать константу X и указать tun или tap, а не то и другое одновременно.
    • В качестве пользователя root добавьте постоянный интерфейс и разрешите пользователю и/или группе управлять им, затем создайте tunX (замените своим собственным) и разрешите пользователям user1 и group доступ к нему.
  openvpn --mktun --dev tunX --type tun --user user1 --group users  
  • Запустите OpenVPN в контексте непривилегированного пользователя.

Дополнительные ограничения безопасности можно добавить, изучив параметры сценария /usr/local/sbin/unpriv-ip.

chroot (только не для Windows)

Директива chroot позволяет заблокировать демон OpenVPN в так называемой тюрьме chroot , где демон не сможет получить доступ к какой-либо части файловой системы хост-системы, за исключением определенного каталога, указанного в качестве параметра для директива. Например,

  тюрьма chroot  

приведет к тому, что демон OpenVPN перейдет в подкаталог jail  при инициализации, а затем переориентирует свою корневую файловую систему на этот каталог, так что после этого демону будет невозможно получить доступ к каким-либо файлам за пределами jail и его дерева подкаталогов. .Это важно с точки зрения безопасности, потому что даже если бы злоумышленник смог скомпрометировать сервер с помощью эксплойта для вставки кода, эксплойт был бы заблокирован для большей части файловой системы сервера.

Предостережения: поскольку chroot переориентирует файловую систему (только с точки зрения демона), необходимо поместить все файлы, которые могут понадобиться OpenVPN после инициализации, в каталог jail , например:

  • файл crl-verify или
  • каталог client-config-dir .

Большие ключи RSA

Размер ключа RSA контролируется переменной KEY_SIZE в файле easy-rsa/vars , которую необходимо задать перед созданием каких-либо ключей. В настоящее время установлено значение 1024 по умолчанию, это значение можно разумно увеличить до 2048 без негативного влияния на производительность VPN-туннеля, за исключением немного более медленного повторного согласования SSL/TLS, которое выполняется один раз для каждого клиента в час, и гораздо более медленного однократного Diffie. Процесс генерации параметров Хеллмана с использованием сценария easy-rsa/build-dh .

Большие симметричные ключи

По умолчанию OpenVPN использует Blowfish , 128-битный симметричный шифр.

OpenVPN автоматически поддерживает любой шифр, поддерживаемый библиотекой OpenSSL, и поэтому может поддерживать шифры, использующие ключи большого размера. Например, 256-битную версию AES (Advanced Encryption Standard) можно использовать, добавив следующее в файлы конфигурации сервера и клиента:

.
  шифр AES-256-CBC  

Сохраните корневой ключ (

ок.ключ ) на отдельной машине без подключения к сети

Одно из преимуществ использования PKI X509 (как это делает OpenVPN) с точки зрения безопасности заключается в том, что ключ корневого ЦС ( ca.key ) не обязательно должен присутствовать на сервере OpenVPN. В среде с высоким уровнем безопасности может потребоваться специально назначить компьютер для целей подписания ключей, обеспечить надежную физическую защиту компьютера и отключить его от всех сетей. Дискеты можно использовать для перемещения ключевых файлов вперед и назад по мере необходимости.Такие меры чрезвычайно затрудняют злоумышленнику кражу корневого ключа, за исключением физической кражи машины для подписи ключей.


Отзыв сертификатов

Отзыв сертификата  означает аннулирование ранее подписанного сертификата, чтобы его больше нельзя было использовать для аутентификации.

Типичные причины отзыва сертификата включают:

  • Закрытый ключ, связанный с сертификатом, скомпрометирован или украден.
  • Пользователь зашифрованного закрытого ключа забыл пароль на ключе.
  • Вы хотите прекратить доступ пользователя VPN.

Пример

В качестве примера мы отзовем сертификат client2 , который мы создали выше в разделе «Генерация ключа» HOWTO.

Сначала откройте оболочку или окно командной строки и перейдите в каталог easy-rsa , как вы делали это в разделе «Генерация ключа» выше. В Linux/BSD/Unix:

  ../варс
./отзыв-полный клиент2
  

В Windows:

  вар
отозвать-полный клиент2
  

Вы должны увидеть примерно такой вывод:

 Использование конфигурации из /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf
DEBUG[load_index]: unique_subject = "да"
Отзыв сертификата 04.
База данных обновлена
Используя конфигурацию из /root/openvpn/20/openvpn/tmp/easy-rsa/openssl.cnf
DEBUG[load_index]: unique_subject = "да"
клиент2.crt: /C=KG/ST=NA/O=OpenVPN-TEST/CN=client2/[email protected]
ошибка 23 при поиске глубины 0: сертификат отозван 

Обратите внимание на «ошибку 23» в последней строке. Это то, что вы хотите увидеть, так как это указывает на то, что проверка отозванного сертификата не удалась.

Скрипт revoke-full создаст файл CRL (список отзыва сертификатов) с именем crl.pem в подкаталоге keys . Файл необходимо скопировать в каталог, где сервер OpenVPN может получить к нему доступ, затем в конфигурации сервера должна быть включена проверка CRL:

.
  crl-verify crl.пэм  

Теперь сертификаты клиентов всех подключающихся клиентов будут проверяться по CRL, и любое положительное совпадение приведет к разрыву соединения.

Примечания CRL

  • Если в OpenVPN используется параметр crl-verify , файл CRL будет повторно считываться каждый раз, когда новый клиент подключается или существующий клиент повторно согласовывает соединение SSL/TLS (по умолчанию один раз в час). Это означает, что вы можете обновить файл CRL во время работы демона сервера OpenVPN, и новый CRL сразу же вступит в силу для новых подключающихся клиентов.Если клиент, чей сертификат вы отзываете, уже подключен, вы можете перезапустить сервер с помощью сигнала (SIGUSR1 или SIGHUP) и сбросить все клиенты, или вы можете подключиться по телнету к интерфейсу управления и явно убить конкретный объект экземпляра клиента на сервере, не нарушая другие клиенты.
  • Хотя директиву crl-verify  можно использовать как на сервере OpenVPN, так и на клиентах, обычно нет необходимости распространять файл CRL среди клиентов, если сертификат сервера не был отозван.Клиентам не нужно знать о других сертификатах клиентов, которые были отозваны, потому что клиенты не должны принимать прямые подключения от других клиентов в первую очередь.
  • Файл CRL не является секретным, и его следует сделать общедоступным для чтения, чтобы демон OpenVPN мог прочитать его после того, как привилегии root были удалены.
  • Если вы используете директиву  chroot , обязательно поместите копию файла CRL в каталог chroot, поскольку в отличие от большинства других файлов, которые читает OpenVPN, файл CRL будет прочитан после выполнения вызова chroot, а не до .
  • Распространенной причиной отзыва сертификатов является то, что пользователь шифрует свой закрытый ключ с помощью пароля, а затем забывает пароль. Отзывая исходный сертификат, можно сгенерировать новую пару сертификат/ключ с исходным общим именем пользователя.

Важное примечание о возможной атаке «человек посередине», если клиенты не проверяют сертификат сервера, к которому они подключаются.

Во избежание возможной атаки «человек посередине», когда авторизованный клиент пытается подключиться к другому клиенту, выдавая себя за сервер, убедитесь, что клиенты применяют какой-либо вид проверки сертификата сервера.В настоящее время существует пять различных способов сделать это, перечисленные в порядке предпочтения:

  • [OpenVPN 2.1 и более поздние версии] Создайте сертификаты сервера с использованием определенного ключа и расширенного использования ключа. RFC3280 определяет, что для соединений TLS должны быть предоставлены следующие атрибуты:
    Mode Использование ключа Расширенное использование ключа
    Клиент цифровая подпись Проверка подлинности веб-клиента TLS
    ключ Соглашение
    цифроваяПодпись, ключСоглашение
    Сервер цифровая подпись, ключШифрование Аутентификация веб-сервера TLS
    цифроваяПодпись, ключСоглашение

    Вы можете создавать сертификаты сервера с помощью сценария build-key-server (дополнительную информацию см. в документации easy-rs).Это назначит сертификат как сертификат только для сервера, установив правильные атрибуты. Теперь добавьте следующую строку в конфигурацию вашего клиента:

    .
      удаленный сервер сертификатов TLS  
  • [OpenVPN 2.0 и ниже]  Создайте сертификаты сервера с помощью сценария build-key-server (дополнительную информацию см. в документации easy-rsa). Это назначит сертификат как сертификат только для сервера, установив nsCertType = сервер.Теперь добавьте следующую строку в конфигурацию вашего клиента:
    .
      сервер типа ns-cert  

    Это заблокирует подключение клиентов к любому серверу, в сертификате которого отсутствует обозначение nsCertType = server, даже если сертификат был подписан файлом ca в файле конфигурации OpenVPN.

  • Используйте директиву tls-remote на клиенте, чтобы принять или отклонить подключение к серверу на основе общего имени сертификата сервера.
  • Используйте скрипт tls-verify или подключаемый модуль, чтобы принять или отклонить подключение к серверу на основе специальной проверки встроенных сведений о субъекте сертификата сервера X509.
  • Подпишите сертификаты сервера одним ЦС, а клиентские сертификаты — другим ЦС. Директива конфигурации клиента ca должна ссылаться на файл ЦС, подписывающий сервер, а директива конфигурации сервера ca должна ссылаться на файл ЦС, подписывающий клиент.

git конфиг | Учебное пособие по Atlassian Git

В этом документе мы подробно рассмотрим команду git config .Мы кратко обсудили использование git config на странице Настройка репозитория. Команда git config — это удобная функция, которая используется для установки значений конфигурации Git на глобальном или локальном уровне проекта. Эти уровни конфигурации соответствуют текстовым файлам .gitconfig . Выполнение git config изменит текстовый файл конфигурации. Мы рассмотрим общие параметры конфигурации, такие как электронная почта, имя пользователя и редактор. Мы обсудим псевдонимы Git, которые позволяют создавать ярлыки для часто используемых операций Git.Знакомство с git config и различными параметрами конфигурации Git поможет вам создать мощный настраиваемый рабочий процесс Git.

Использование

Самый простой вариант использования git config — вызвать его с именем конфигурации, которое будет отображать установленное значение для этого имени. Имена конфигураций представляют собой строки, разделенные точками, состоящие из «раздела» и «ключа» в зависимости от их иерархии. Например: user.email

  пользователь git config.электронная почта  

В этом примере электронная почта является дочерним свойством блока конфигурации пользователя. Это вернет настроенный адрес электронной почты, если таковой имеется, который Git будет ассоциировать с локально созданными фиксациями.

уровни и файлы конфигурации git

Прежде чем мы обсудим использование git config , давайте рассмотрим уровни конфигурации. Команда git config может принимать аргументы, чтобы указать, на каком уровне конфигурации работать. Доступны следующие уровни конфигурации:

По умолчанию git config записывает на локальный уровень, если не передан параметр конфигурации.Конфигурация локального уровня применяется к репозиторию контекста . git config вызывается. Значения локальной конфигурации хранятся в файле, который можно найти в каталоге .git репозитория: .git/config
 

Конфигурация глобального уровня зависит от пользователя, то есть применяется к пользователю операционной системы. Значения глобальной конфигурации хранятся в файле, расположенном в домашнем каталоге пользователя. ~ /.gitconfig в системах unix и C:\Users\\.gitconfig в Windows
 

Конфигурация на уровне системы применяется ко всей машине. Это касается всех пользователей операционной системы и всех репозиториев. Файл конфигурации системного уровня находится в файле gitconfig вне корневого пути системы. $(префикс)/etc/gitconfig в системах unix. В Windows этот файл можно найти по адресу C:\Documents and Settings\All Users\Application Data\Git\config в Windows XP и C:\ProgramData\Git\config в Windows Vista и новее.

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

Запись значения

Расширяя то, что мы уже знаем о git config , давайте рассмотрим пример, в котором мы записываем значение:

  git config --global user.email "[email protected]"  

В этом примере записывается значение [email protected] на имя конфигурации user.email . Он использует флаг --global , поэтому это значение устанавливается для текущего пользователя операционной системы.

редактор конфигурации git — core.editor

Многие команды Git запускают текстовый редактор, чтобы запросить дальнейший ввод. Одним из наиболее распространенных вариантов использования git config является настройка того, какой редактор должен использовать Git. Ниже приведена таблица популярных редакторов и соответствующих команд git config :

Редактор команда конфигурации
Atom ~ git config --global core.editor "atom --wait"~
emacs ~ git config --global core.editor "emacs"~
nano 9003 -w»~
vim ~ git config --global core.editor "vim"~
Sublime Text (Mac) -n -w"~
Sublime Text (Win, 32-битная установка) ~ git config --global core.редактор "'c:/program files (x86)/sublime text 3/sublimetext.exe' -w"~
Sublime Text (Win, 64-битная установка) ~ git config --global core. editor "'c:/program files/sublime text 3/sublimetext.exe' -w"~
Textmate ~ git config --global core.editor "mate -w"~

 

Инструменты объединения

В случае конфликта слияния Git запустит «инструмент слияния.» По умолчанию Git использует внутреннюю реализацию общей программы Unix diff. Внутренний Git diff представляет собой минимальное средство просмотра конфликтов слияния. Вместо него можно использовать множество сторонних разрешений конфликтов слияния. Обзор различных инструментов слияния и конфигурации, см. наше руководство по советам и инструментам для разрешения конфликтов с Git. 

  git config --global merge.tool kdiff3  

Цветные выходы

Git поддерживает цветной вывод терминала, который помогает быстро читать вывод Git.Вы можете настроить выходные данные Git для использования персонализированной цветовой темы. Для установки этих значений цвета используется команда git config .

color.ui

Это основная переменная для цветов Git. Установка его в false отключит весь цветной вывод терминала Git.
 

  $ git config --global color.ui false  

По умолчанию для color.ui установлено значение auto, которое будет применять цвета к непосредственному выходному потоку терминала.Автоматическая настройка пропускает вывод цветового кода, если выходной поток перенаправляется в файл или передается другому процессу.

Для параметра color.ui можно установить значение always, которое также будет применять вывод цветового кода при перенаправлении выходного потока в файлы или конвейеры. Это может непреднамеренно вызвать проблемы, поскольку приемный канал может не ожидать ввода с цветовой кодировкой.

Значения цвета Git

В дополнение к color.ui существует множество других детальных настроек цвета.Как и color.ui , для всех этих параметров цвета можно установить значения false, auto или always. Эти настройки цвета также могут иметь определенный набор значений цвета. Некоторые примеры поддерживаемых значений цвета:

  • Normal
  • Black
  • RED
  • Green
  • Yellow
  • Blue
  • Maganta
  • Maganta
  • Cyan
  • Белый

Цвета также могут быть указаны как шестнадцатеричные цвета, такие как # ff0000 или значения цвета ANSI 256, если ваш терминал поддерживает это.

Настройки конфигурации цвета Git

1. color.branch  

  • Настраивает цвет вывода команды Git branch

2. color.branch. slot> 

  • Это значение также применимо к выходным данным ветки Git. slot> является одним из следующих:
    • 1. current: текущая ветвь
    • 2. local: локальная ветвь
    • 3. remote: ссылка на удаленную ветвь в refs/remotes
    • 4.Вверх по течению: отслеживание вверх по течению
    • 5. Равнины: любой другой Ref

3. Color.diff

    8 применяет цвета до GIT Diff , GIT LOG , и GIT SHOW Выход 5

4. color.diff .slot> 

  • Настройка значения slot> в color.diff сообщает git, в какой части патча использовать определенный цвет.
    • 1. контекст: Контекстный текст разл.Контекст Git — это строки текстового содержимого, отображаемые в diff или patch, которые выделяют изменения.
    • 2. plain: синоним контекста
    • 3. meta: применяет цвет к метаинформации diff
    • 4. frag: применяет цвет к «заголовку фрагмента» или «функции в заголовке фрагмента»
    • 5. old: применяет цвет к удаленным строкам в diff
    • 6. ​​new: окрашивает добавленные строки diff
    • 7. commit: окрашивает заголовки фиксации в diff
    • 8.whitespace: устанавливает цвет для любых ошибок пробелов в diff

5. color.decorate. slot> 

  • Настройте цвет для git log --decorate output. Поддерживаемые значения slot>: branch , remoteBranch , tag , stash или HEAD . Они соответственно применимы к локальным ветвям, ветвям удаленного отслеживания, тегам, скрытым изменениям и HEAD .

6. color.grep

  • Применяет цвет к выходным данным git grep.

7. color.grep. slot> 

  • Также применимо к git grep. Переменная slot> указывает, к какой части вывода grep применить цвет.
    • 1. контекст: несовпадающий текст в строках контекста 
    • 2. имя файла: префикс имени файла 
    • 3. функция: строки имени функции 
    • 4. номер строки: префикс номера строки 
    • 5. совпадение: соответствующий текст 
    • .matchContext: совпадающий текст в строках контекста 
    • 7. matchSelected: совпадающий текст в выделенных строках 
    • 8. selected: несовпадающий текст в выделенных строках 
    • 9. separator: разделители между полями в строке (:, - и = ) и между кусками (--) 

8. color.interactive 

  • Эта переменная применяет цвет для интерактивных подсказок и дисплеев. Примеры: git add --interactive и git clean --interactive

9.color.interactive.slot> 

  • Переменная slot> может быть указана для более конкретного «интерактивного вывода». Доступные значения slot>: приглашение, заголовок, справка, ошибка; и каждый действует на соответствующий интерактивный вывод.

10. Color.Pager

    • Включает или отключает цветной выход, когда пейджер используется 5

    11. Color.Showbranch

      8 Включает или отключает вывод цветных для GIT Show Command

    12.color.status

    • Логическое значение, которое включает или отключает вывод цвета для статуса Git

    13. color.status.slot >

    Используется для указания пользовательского цвета для указанных элементов статуса git. slot> поддерживает следующие значения:

    • 1. заголовок
      • Целевой текст заголовка области состояния
    • 2. добавлено или обновлено
      • Оба целевых файла, которые добавлены, но не зафиксированы
    • 2. 3.изменено
      • Целевые файлы, которые были изменены, но не добавлены в индекс git
    • 4. untracked
      • Целевые файлы, которые не отслеживаются Git
    • 6. ​​nobranch
      • Цвет, которым отображается предупреждение об отсутствии ответвления

        Возможно, вы знакомы с концепцией псевдонимов из командной строки вашей операционной системы; если нет, то это настраиваемые ярлыки, которые определяют, какая команда будет расширена до более длинных или комбинированных команд.Псевдонимы экономят ваше время и энергию при вводе часто используемых команд. Git предоставляет собственную систему псевдонимов. Обычный вариант использования псевдонимов Git — сокращение команды фиксации. Псевдонимы Git хранятся в файлах конфигурации Git. Это означает, что вы можете использовать команду git config для настройки псевдонимов.

          git config --global alias.ci commit  

        В этом примере создается псевдоним ci для команды git commit . Затем вы можете вызвать git commit , выполнив git ci .Псевдонимы также могут ссылаться на другие псевдонимы для создания мощных комбинаций.

          git config --global alias.amend ci --amend  

        В этом примере создается изменение псевдонима, которое объединяет псевдоним ci в новый псевдоним, который использует --amend флаг .

        Форматирование и пробелы

        Git имеет несколько функций «пробелов», которые можно настроить для выделения проблем с пробелами при использовании git diff. Проблемы с пробелами будут выделены с помощью настроенного цвета .diff.whitespace

        Следующие функции включены по умолчанию:

        • пробел в конце строки выделяет потерянные пробелы в конце строки
        • пробел перед вкладкой выделяет символ пробела, который появляется перед символом табуляции при отступе строки
        • empty-at-eof выделяет пустые строки, вставленные в конец файла

        Следующие функции отключены по умолчанию tabs

      • tab-in-indent выделяет начальный отступ табуляции как ошибку
      • trailing-space является сокращением как дляblank-at-eol, так и дляblank-at-eof
      • cr-at-eolвыделения возврат каретки в конце строки
      • tabwidth= определяет, сколько символов занимает табуляция.Значение по умолчанию — 8. Допустимые значения: 1–63

      Сводка

      В этой статье мы рассмотрели использование команды конфигурации git . Мы обсудили, как команда является убедительным методом редактирования необработанных файлов git config в файловой системе. Мы рассмотрели основные операции чтения и записи для параметров конфигурации. Мы рассмотрели общие шаблоны конфигурации:

      • Как настроить редактор Git
      • Как переопределить уровни конфигурации
      • Как сбросить настройки по умолчанию
      • Как настроить цвета git

      В целом, git config — это вспомогательный инструмент, который предоставляет ярлык для редактирования необработанных файлов git config на диске.Мы подробно рассмотрели варианты персональной настройки. Базовые знания параметров конфигурации git являются необходимым условием для настройки репозитория. См. наше руководство там для демонстрации основ.
       

      Что такое файлы конфигурации? Как их безопасно редактировать

      Большинство компьютерных программ, которые мы используем, будь то офисные пакеты, веб-браузеры и даже видеоигры, настраиваются через интерфейсы меню. Это почти стало стандартным способом использования наших машин.

      Но некоторые программы требуют от вас большего.Вместо меню вы должны отредактировать текстовый файл, чтобы программа работала по вашему желанию.

      Эти текстовые файлы конфигурируют программное обеспечение и, что неудивительно, называются «файлами конфигурации». Если вы хотите улучшить свои знания о компьютере, вам нужно знать, что такое файл конфигурации и как его редактировать.

      Что такое файлы конфигурации?

      Прежде чем мы углубимся в технические подробности, давайте сначала определим, что такое файл конфигурации.

      Файлы конфигурации

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

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

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

      Пользователи Linux будут особенно хорошо знакомы с файлами конфигурации, так как многие основные задачи обслуживания требуют их редактирования.Настройка Raspberry Pi часто зависит от редактирования файлов конфигурации. Это может быть указание беспроводной сети для подключения или установка объема оперативной памяти для графики.

      Однако файлы конфигурации существуют не только в Linux. Иногда вам может потребоваться отредактировать их в Windows или macOS.

      Как найти и отредактировать файлы конфигурации

      Некоторые файлы конфигурации структурированы в формате, разработанном разработчиком. Другие используют широко известные стандарты, применяемые для структурирования данных, например:

      .
      • JSON (обозначение объекта JavaScript)
      • YAML (YAML не является языком разметки)
      • XML (расширяемый язык разметки)

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

      Независимо от того, какой файл конфигурации вы хотите отредактировать, разумно сделать его копию, прежде чем вносить какие-либо изменения. Таким образом, если что-то пойдет не так, вы сможете восстановить копию и начать заново!

      Теперь давайте взглянем на реальный конфигурационный файл. Как мы упоминали ранее, они бывают разных форм и размеров. Один из конфигурационных файлов, с которым вы почти наверняка знакомы, — это файл hosts.Windows, Mac и Linux используют это для ручного сопоставления IP-адресов с именами хостов.

      Файлы конфигурации Windows

      Пользователи Windows найдут файл hosts в c:\windows\system32\drivers\etc\ .

      Вы можете открыть его, дважды щелкнув мышью и выбрав «Блокнот» из списка предлагаемых приложений. Это все, что вам нужно для просмотра и редактирования файлов конфигурации, таких как hosts. Тем не менее, доступно несколько альтернатив — подробности см. ниже.

      Открыв файл, вы увидите, что он использует пробелы (буквально пробелы и позиции табуляции) для разделения элементов.

      Каждое имя хоста имеет свою строку, за которой следует табуляция и IP-адрес. Кроме того, файл hosts позволяет пользователю добавлять аннотации и комментарии, которые начинаются с символа решетки.

      Файлы конфигурации Linux

      В Linux вы найдете файл hosts в /etc/ .Его можно открыть в Gedit или текстовом редакторе командной строки, таком как nano или vim. В большинстве случаев в вашем дистрибутиве Linux будет предустановлен один или все из них.

      Некоторые программы хранят файл конфигурации в домашнем каталоге с точкой в ​​начале имени файла. Эти файлы конфигурации иногда имеют расширение .rc, и мы называем их «dotfiles».

      Файлы конфигурации в macOS

      Как и в Linux, файл hosts можно найти в /etc/ в macOS.

      Пользователи Mac знают, что BBEdit является предустановленным текстовым редактором по умолчанию. Это делает его идеальным для редактирования файлов конфигурации в macOS. Однако, как и в Linux, также доступны редакторы командной строки vim и nano.

      Приложения для безопасного редактирования файлов конфигурации

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

      Для этого вам понадобится текстовый редактор.Избегайте текстовых процессоров; они могут добавить форматирование к файлу, что помешает их правильному чтению.

      Как уже упоминалось, доступны собственные текстовые редакторы

      . Однако для дополнительных функций также доступны сторонние текстовые редакторы:

      Скачать: Notepad++ для Windows (бесплатно)

      Скачать: Atom для Windows, macOS, Linux (бесплатно)

      Загрузка: Sublime Text Editor для Windows, macOS, Linux (бесплатная пробная версия)

      Для каждой платформы доступно так много инструментов для редактирования текста, что трудно рекомендовать какое-то одно приложение.Пользователи Linux также могут проверить наш список текстовых редакторов Linux. Тем временем этот обзор текстовых редакторов для macOS должен помочь владельцам компьютеров Apple.

      При редактировании файла конфигурации важно убедиться, что вы следуете принятым в нем соглашениям. Это можно понять, просто взглянув на него. Некоторые конфигурационные файлы, такие как файл hosts, объяснят вам эти соглашения в закомментированных строках. Другие заставят вас прочитать документацию или пару сообщений в блогах.

      Наконец, если редактируемый файл конфигурации имеет формат JSON или XML, рассмотрите возможность использования текстового редактора с подсветкой синтаксиса.Notepad++ и Atom — хорошие варианты. Подсветка синтаксиса повысит вашу точность, показывая вам, когда вы допустили ошибку.

      Другие места, где вы можете найти файлы конфигурации для редактирования

      Если вы заинтересованы в дальнейшем изучении файлов конфигурации, вы найдете их во всех видах приложений и платформ. Конфигурационные файлы — это больше, чем указание, какие веб-сайты и IP-адреса блокировать!

      Помимо файла hosts, вы найдете файлы конфигурации в видеоиграх.Они часто используются для определения и управления такими вещами, как сопоставление клавиш.

      Между тем, некоторые конфигурационные файлы могут быть использованы для читерства. Так было в оригинальной игре Deus Ex на ПК. В наши дни читерство намного сложнее и часто не стоит затраченных усилий, если только не включен официальный чит-режим.

      Веб-приложения также используют файлы конфигурации для настройки.

      Что делать, если ваше изменение конфигурации не работает?

      Проблемы, связанные с редактированием файлов конфигурации, как правило, делятся на два лагеря: разрешения и ошибки пользователя.

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

      Это легко исправить:

      • В Windows щелкните правой кнопкой мыши текстовый редактор и выберите Запуск от имени администратора
      • В macOS и Linux попробуйте повысить свои привилегии с помощью команды sudo.Итак, если вы редактировали файл hosts, запустите sudo nano /etc/hosts .

      (Обратите внимание, что если вы укажете другое имя файла или местоположение, вы фактически создадите файл конфигурации в терминале.)

      Когда проблема связана с ошибкой пользователя, это означает, что это ваша вина. Убедитесь, что вы не сделали никаких опечаток и следовали соглашениям конфигурационного файла.

      Хотя это может показаться очевидным, простая орфографическая ошибка может сделать весь файл бесполезным.Перед фиксацией изменений и сохранением файла не забудьте:

      • Проверьте внесенные вами изменения
      • Убедитесь, что вы оставили комментарий

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

      Файлы конфигурации важны

      Более чем важны, они являются неотъемлемой частью использования Linux.Знание того, как правильно их редактировать, может значительно помочь вам.

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

      Используете линукс? Вот подробнее об изменении и управлении файлом hosts в Linux.

      8 гаджетов для работы на дому, которые вам понадобятся в 2022 году

      Планируете работать из дома до 2022 года? Вот некоторые из лучших гаджетов, которые могут помочь вам во время удаленной работы.

      Читать Далее

      Об авторе Кристиан Коули (опубликовано 1555 статей)

      Заместитель редактора по вопросам безопасности, Linux, DIY, программирования и технических объяснений, а также продюсер действительно полезных подкастов с большим опытом поддержки настольных компьютеров и программного обеспечения.Сотрудник журнала Linux Format, Кристиан — мастер Raspberry Pi, любитель Lego и поклонник ретро-игр.

      Более От Кристиана Коули
      Подпишитесь на нашу рассылку

      Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

      Нажмите здесь, чтобы подписаться

      .

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *