Apache windows авторизация по паролю

Все об AuthType или авторизация в Apache

Здесь я расскажу о возможностях Apache защищать содержимое сервера либо его частей.

Директивы Apache для контроля доступа

Контроль по IP

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

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

Значения: Order (allow,deny | deny,allow)

Директива Order указывает порядок, в котором будет производиться чтение из директив Allow и Deny

  • Allow,deny — сначала читаются директивы Allow. Если пользователя нет в этом списке, то он блокируется. Если же он есть, то далее считываются директивы Deny(процесс еще не закончен). Если же пользователь есть и там, то он блокируется. Если его там нет, то он пропускается. Т.е пользователь пропускается только при наличии только в списке Allow, но не в Deny
  • Deny,allow — сначала обрабатываются директивы Deny и отсеиваются те пользователи, которые есть в этом списке. Любые другие пропускаются. Т.е пользователь пропускается всегда, но если его нет в списке Deny

Формат директив: (Allow | Deny) from (IP | IPs | all) (IP | IPs | all) : (IP | IPs | all)

Директивы Allow и Deny определяют клиентов, которым разрешить или запретить доступ к серверу.

Директивы допускают использование:

  • Одиночного IP(IP) — обычный вид IP, например, 127.0.0.1
  • Группы IP(IPs) — группа IP, например, для доступа, только из локальной сети, 192.168.1.0/24
  • Любого IP(all) — обозначает любой IP

После слова from может идти любое количество указанных директив, разделенных пробелом

В этом файле указывается доступ только для клиентов из локальной сети или с IP 11.11.11.12

Часть файла httpd.conf

Так мы баним сайт для какого-нибудь одного IP

Контроль по имени пользователя или группе

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

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

Значения: AuthType (Basic | Digest)

Apache поддерживает 2 типа защиты содержания (директива AuthType):

  • Basic — базовая авторизация. Шифрование используется я на обеих сторонах, но клиент передает пароль не надежно зашифрованным, т. к не используется ключ шифрования. Это крупный недостаток этого метода. Применяется алгоритм шифрования Base64
  • Digest — аутентификация специальным кодом (дайджестом), который использует ключ, конкретно, имя пользователя, пароль, область, требующая аутентификацию, различную информацию о запросе и уникальный код данного запроса, который Apache присваивает каждому соединению. Это однонаправленный метод, и для того, что бы расшифровать это, стороннему человеку требуется слишком много информации об обеих сторонах. Но главный недостаток этого метода в том, что его не поддерживает ни один пользовательский браузер, хотя сейчас это уже, наверное, не так (данные на 2000 год). Этот метод обычно используется в специализированных системах
Читайте также:  Языковые пакеты интеграция все windows

Формат директивы: AuthName «String»

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

Формат директив: (AuthUserFile | AuthGroupFile) «String»

Внимание! Для работы этих директив необходим модуль Apache mod_auth, который подключается по умолчанию

Эти директивы определяют, соответственно, путь (абсолютный) к файлу, хранящему связки Имя:DES и путь (тоже абсолютный) к файлу, хранящему связки Группа:Имя Имя : Имя

Содержит информацию о допустимых именах пользователей и их паролях в формате Имя:DES, где DES — это название алгоритма шифрования. Файл можно создать стандартной консольной программой, входящей в состав Apache, htpasswd. Описание ее использования смотрите ниже

Эту директиву нужно указывать только, если вы указали значение для директивы Request(смотрите ниже) равном group

Этот файл содержит информацию о допустимых группах пользователях для входа. Формат файла: Группа:Имя Имя : Имя. Т.е только те пользователи, которые существуют и которые входят в группы, описанные в директиве Require(смотрите ниже), смогут войти

Значения: Require (user Имя Имя : Имя | group Группа Группа : Группа | valid-user

Эта директива определяет принцип аутентификации:

  • User — только пользователи, указанные следующими через пробел, и указавшие верный пароль, смогут войти
  • Group — только пользователи, входящие в группы, указанные следующие через пробел, и указавшие верный пароль, смогут войти. Указание директивы AuthGroupFile обязательно
  • Valid-user — любой пользователь, существующий в файле AuthUserFile, и указавший верный пароль, сможет войти

На этом директивы, необходимые для метода AuthType Basic, перечислены. Другие директивы, относящиеся к методу AuthType Digest, я перечислять не буду, т. к они имеют узконаправленное действие и в общих системах не используются

Утилита Apache htpasswd

Эта консольная программа создает файлы, указываемые в директиве AuthUserFile. Файл хранит связки Имя:Пароль для доступа к защищенной части сайта

Обычно программа поставляется вместе с Apache и находиться в папке bin ее корневой папки

Формат вызова утилиты:

Параметры командной строки

  • -с — создать новый файл. Если этот параметр не указан, и файл не существует, утилита выдаст ошибку и аварийно завершит работу. Внимание! Если файл уже существовал, он будет перезаписан
  • -d — утилита будет использовать алгоритм шифрования DES (в C это функция crypt()). По умолчанию используется во всех ОС, но не в Windows
  • -m — использовать алгоритм шифрования MD5, который является шифром по умолчанию в Windows
  • -p — сохранить пароль в чистом виде, без шифрования. Работает только в Windows
  • -s — утилита будет использовать алгоритм шифрования SHA
  • -b — в нормальном режиме, без этой опции, утилита получает пароль вводом в стандартный входной поток. При использовании этой опции, после пути к файлу паролей должен идти пароль, и утилита получит пароль из этой опции. Утилита не будет ждать пользовательского ввода, она сразу возвратит управление в оболочку. Пример: htpasswd -b .htpasswd smhtpass

Примеры паролирования

Здесь доступ разрешен по файлу .htpasswd для пользователей My, root, UUCP, hacker и guest. Тип авторизации Basic

Часть файла httpd.conf

Здесь доступ разрешен по тому же файлу с пользователями, но только с теми, кто входит в группы my или root, определенные в файле .htgroup

Для создания файла паролей для первого примера

Входим в shell и пишем такие команды

Заключение

На этом я закончу свое описание здесь средств защиты данных web-сервером Apache. Все пожелания или вопросы можете оставлять по нижеследующим координатам

На данное время (Июль 2006 года) я пишу Content Managing System(CMS) под PHP 4+, MySQL 3.23.xx+ и Apache 1.3+, всем желающим посмотреть или присоединиться — пишите мне сюда же

Читайте также:  Wudfhost exe что это за процесс windows

Все об AuthType или авторизация в Apache

Здесь я расскажу о возможностях Apache защищать содержимое сервера либо его частей.

Директивы Apache для контроля доступа

Контроль по IP

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

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

Значения: Order (allow,deny | deny,allow)

Директива Order указывает порядок, в котором будет производиться чтение из директив Allow и Deny

  • Allow,deny — сначала читаются директивы Allow. Если пользователя нет в этом списке, то он блокируется. Если же он есть, то далее считываются директивы Deny(процесс еще не закончен). Если же пользователь есть и там, то он блокируется. Если его там нет, то он пропускается. Т.е пользователь пропускается только при наличии только в списке Allow, но не в Deny
  • Deny,allow — сначала обрабатываются директивы Deny и отсеиваются те пользователи, которые есть в этом списке. Любые другие пропускаются. Т.е пользователь пропускается всегда, но если его нет в списке Deny

Формат директив: (Allow | Deny) from (IP | IPs | all) (IP | IPs | all) : (IP | IPs | all)

Директивы Allow и Deny определяют клиентов, которым разрешить или запретить доступ к серверу.

Директивы допускают использование:

  • Одиночного IP(IP) — обычный вид IP, например, 127.0.0.1
  • Группы IP(IPs) — группа IP, например, для доступа, только из локальной сети, 192.168.1.0/24
  • Любого IP(all) — обозначает любой IP

После слова from может идти любое количество указанных директив, разделенных пробелом

В этом файле указывается доступ только для клиентов из локальной сети или с IP 11.11.11.12

Часть файла httpd.conf

Так мы баним сайт для какого-нибудь одного IP

Контроль по имени пользователя или группе

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

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

Значения: AuthType (Basic | Digest)

Apache поддерживает 2 типа защиты содержания (директива AuthType):

  • Basic — базовая авторизация. Шифрование используется я на обеих сторонах, но клиент передает пароль не надежно зашифрованным, т. к не используется ключ шифрования. Это крупный недостаток этого метода. Применяется алгоритм шифрования Base64
  • Digest — аутентификация специальным кодом (дайджестом), который использует ключ, конкретно, имя пользователя, пароль, область, требующая аутентификацию, различную информацию о запросе и уникальный код данного запроса, который Apache присваивает каждому соединению. Это однонаправленный метод, и для того, что бы расшифровать это, стороннему человеку требуется слишком много информации об обеих сторонах. Но главный недостаток этого метода в том, что его не поддерживает ни один пользовательский браузер, хотя сейчас это уже, наверное, не так (данные на 2000 год). Этот метод обычно используется в специализированных системах

Формат директивы: AuthName «String»

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

Формат директив: (AuthUserFile | AuthGroupFile) «String»

Внимание! Для работы этих директив необходим модуль Apache mod_auth, который подключается по умолчанию

Эти директивы определяют, соответственно, путь (абсолютный) к файлу, хранящему связки Имя:DES и путь (тоже абсолютный) к файлу, хранящему связки Группа:Имя Имя : Имя

Читайте также:  Для установки windows 10 какие параметры должны быть у компьютера

Содержит информацию о допустимых именах пользователей и их паролях в формате Имя:DES, где DES — это название алгоритма шифрования. Файл можно создать стандартной консольной программой, входящей в состав Apache, htpasswd. Описание ее использования смотрите ниже

Эту директиву нужно указывать только, если вы указали значение для директивы Request(смотрите ниже) равном group

Этот файл содержит информацию о допустимых группах пользователях для входа. Формат файла: Группа:Имя Имя : Имя. Т.е только те пользователи, которые существуют и которые входят в группы, описанные в директиве Require(смотрите ниже), смогут войти

Значения: Require (user Имя Имя : Имя | group Группа Группа : Группа | valid-user

Эта директива определяет принцип аутентификации:

  • User — только пользователи, указанные следующими через пробел, и указавшие верный пароль, смогут войти
  • Group — только пользователи, входящие в группы, указанные следующие через пробел, и указавшие верный пароль, смогут войти. Указание директивы AuthGroupFile обязательно
  • Valid-user — любой пользователь, существующий в файле AuthUserFile, и указавший верный пароль, сможет войти

На этом директивы, необходимые для метода AuthType Basic, перечислены. Другие директивы, относящиеся к методу AuthType Digest, я перечислять не буду, т. к они имеют узконаправленное действие и в общих системах не используются

Утилита Apache htpasswd

Эта консольная программа создает файлы, указываемые в директиве AuthUserFile. Файл хранит связки Имя:Пароль для доступа к защищенной части сайта

Обычно программа поставляется вместе с Apache и находиться в папке bin ее корневой папки

Формат вызова утилиты:

Параметры командной строки

  • -с — создать новый файл. Если этот параметр не указан, и файл не существует, утилита выдаст ошибку и аварийно завершит работу. Внимание! Если файл уже существовал, он будет перезаписан
  • -d — утилита будет использовать алгоритм шифрования DES (в C это функция crypt()). По умолчанию используется во всех ОС, но не в Windows
  • -m — использовать алгоритм шифрования MD5, который является шифром по умолчанию в Windows
  • -p — сохранить пароль в чистом виде, без шифрования. Работает только в Windows
  • -s — утилита будет использовать алгоритм шифрования SHA
  • -b — в нормальном режиме, без этой опции, утилита получает пароль вводом в стандартный входной поток. При использовании этой опции, после пути к файлу паролей должен идти пароль, и утилита получит пароль из этой опции. Утилита не будет ждать пользовательского ввода, она сразу возвратит управление в оболочку. Пример: htpasswd -b .htpasswd smhtpass

Примеры паролирования

Здесь доступ разрешен по файлу .htpasswd для пользователей My, root, UUCP, hacker и guest. Тип авторизации Basic

Часть файла httpd.conf

Здесь доступ разрешен по тому же файлу с пользователями, но только с теми, кто входит в группы my или root, определенные в файле .htgroup

Для создания файла паролей для первого примера

Входим в shell и пишем такие команды

Заключение

На этом я закончу свое описание здесь средств защиты данных web-сервером Apache. Все пожелания или вопросы можете оставлять по нижеследующим координатам

На данное время (Июль 2006 года) я пишу Content Managing System(CMS) под PHP 4+, MySQL 3.23.xx+ и Apache 1.3+, всем желающим посмотреть или присоединиться — пишите мне сюда же

Оцените статью