Apache Версия 2.0 Сервера HTTP
установление подлинности - любой процесс, которым Вы проверяете, что кто - то - то, кто они утверждают, что они. Разрешение - любой процесс, которым кому - то разрешают быть, где они хотят пойти, или иметь информацию, которую они хотят иметь.
Связанные Модули | Связанные Директивы |
---|---|
если Вы будете иметь информацию относительно вашего вебсайта, который является чувствительным или намеченным для только маленькой группы людей, то методы в этой статье помогут Вам удостоверяться, что люди, которые видят те страницы, - люди, что Вы хотели видеть их.
эта статья покрывает "стандартный" способ защитить части вашего вебсайта, который большинство из Вас собирается использовать.
директивы, обсужденные в этой статье будут должны пойти любой в вашем главном файле конфигурации сервера (типично в a
<Directory>
секция), или во в-справочник файлах конфигурации (
.htaccess
файлы).
если Вы планируете использовать
.htaccess
файлы, Вы будете должны иметь конфигурацию сервера, которая разрешает помещать опознавательные директивы в эти файлы. Это сделано с
AllowOverride
директива, которая определяет, какие директивы, если таковые вообще имеются, могут быть помещены во в-справочник файлы конфигурации.
так как мы говорим здесь об установлении подлинности, Вы будете нуждаться
AllowOverride
директива как следующее:
AllowOverride AuthConfig
или, если Вы будете только собираться помещать директивы непосредственно в ваш главный файл конфигурации сервера, то Вы будете конечно должны иметь, пишут разрешение тому файлу.
и Вы будете должны знать немного о директивной структуре вашего сервера, чтобы знать, где некоторые файлы сохранены. Это не должно быть ужасно трудным, и я буду пробовать ясно дать понять это, когда мы приезжаем в тот пункт.
вот - основы пароля, защищая справочник на вашем сервере.
Вы будете должны создать файл пароля. Этот файл должен быть помещен куда-нибудь не доступный от сети. Это - то, так, чтобы люди не могли загрузить файл пароля. Например, если из ваших документов служат
/usr/local/apache/htdocs
Вы могли бы хотеть вставить файл (ы) пароля
/usr/local/apache/passwd
.
чтобы создавать файл, используйте
htpasswd
полезность, которая шла с Apache. Это будет расположено в
bin
справочник того, везде, где Вы устанавливали Apacheа. Чтобы создавать файл, напечатайте:
htpasswd -c /usr/local/apache/passwd/passwords rbowen
htpasswd
спросит у Вас пароль, и затем попросит, чтобы Вы напечатали это снова, чтобы подтвердить это:
# htpasswd -c /usr/local/apache/passwd/passwords rbowen
New password: mypassword
Re-type new password: mypassword
Adding password for user rbowen
если
htpasswd
не находится в вашей дорожке, конечно Вы должны будете напечатать полную дорожку к файлу, чтобы заставить это бежать. На моем сервере, это расположено в
/usr/local/apache/bin/htpasswd
Затем, Вы будете должны формировать сервер, чтобы просить пароль и говорить сервер, каким пользователям разрешают доступ. Вы можете сделать это любой, редактируя
httpd.conf
файл или использование
.htaccess
файл. Например, если Вы желаете защитить справочник
/usr/local/apache/htdocs/secret
, Вы можете использовать следующие директивы, любой поместил в файле
/usr/local/apache/htdocs/secret/.htaccess
, или помещенный в
httpd.conf
в <Directory /usr/local/apache/apache/htdocs/secret> секция.
AuthType Basic
AuthName "Restricted Files"
AuthUserFile /usr/local/apache/passwd/passwords
Require user rbowen
давайте исследовать каждую из тех директив индивидуально.
AuthType
директива выбирает тот метод, который используется, чтобы подтвердить подлинность пользователя. Самый общий метод
Basic
, и это - метод, осуществленный
mod_auth
. важно знать, однако, что Базовая аутентификация посылает пароль от клиента к незашифрованному браузеру. Этот метод не должен поэтому использоваться для очень уязвимых данных. Апач поддерживает один другой опознавательный метод:
AuthType Digest
. этот метод осуществлен
mod_auth_digest
и намного более безопасно. Только новые версии клиентов, как известно, поддерживают установление подлинности Обзора.
AuthName
директива устанавливает
царство
использоваться в установлении подлинности. Царство служит двум главным функциям. Сначала, клиент часто представляет эту информацию пользователю как часть диалогового окна пароля. Во вторых, это используется клиентом, чтобы определить, какой пароль посылать данный подтверждал подлинность области.
Так, например, как только клиент подтвердил подлинность в
"Restricted Files"
область, это автоматически повторит тот же самый пароль для любой области на том же самом сервере, который отмечен с
"Restricted Files"
царство. Поэтому, Вы можете препятствовать пользователю быть побужденным не раз для пароля, позволяя многократным ограниченным областям разделить то же самое царство. Конечно, для соображений безопасности, клиент будет всегда должен спросить снова относительно пароля всякий раз, когда hostname сервера изменяется.
AuthUserFile
директива устанавливает дорожку к файлу пароля, с которым мы только создали
htpasswd
. если Вы имеете большое количество пользователей, это может весьма не спешить перерывать простой файл текста, чтобы подтвердить подлинность пользователя на каждом запросе. Апач также имеет способность хранить пользовательскую информацию в быстрых файлах базы данных.
mod_auth_dbm
модуль обеспечивает
AuthDBMUserFile
директива. Эти файлы могут быть созданы и управляться с
dbmmanage
программа. Много других типов опознавательных вариантов доступны от модулей третьего лица в
Apache Modules Database
.
наконец,
Require
директива обеспечивает часть разрешения процесса, устанавливая пользователя, которому позволяют получить доступ к этой области сервера. В следующей секции, мы обсуждаем различные способы использовать
Require
директива.
директивы выше только позволенный один человек (определенно кто - то с именем пользователя
rbowen
) в справочник. В большинстве случаев, Вы будете хотеть впустить больше чем одного человека. Это - то, где
AuthGroupFile
входит.
если Вы хотите впустить больше чем одного человека, то Вы будете должны создать файл группы, который связывает названия группы со списком пользователей в той группе. Формат этого файла довольно прост, и Вы можете создать это с вашим любимым редактором. Содержание файла будет похожо на это:
GroupName: rbowen dpitts sungo rshersey
это - только список членов группы в длинной линии, отделенной местами.
чтобы добавлять пользователя к вашему уже существующему файлу пароля, напечатайте:
htpasswd /usr/local/apache/passwd/passwords dpitts
Вы получите тот же самый ответ как прежде, но это будет приложено к существующему файлу, вместо того, чтобы создать новый файл. (Это-
-c
это заставляет это создать новый файл пароля).
теперь, Вы должны изменить ваш
.htaccess
файл, чтобы быть похожий на следующее:
AuthType Basic
AuthName "By Invitation Only"
AuthUserFile /usr/local/apache/passwd/passwords
AuthGroupFile /usr/local/apache/passwd/groups
Require group GroupName
теперь, любой, который перечислен в группе
GroupName
, и имеет вход в
password
файл, будет впущен, если они напечатают правильный пароль.
есть другой путь позволить многократным пользователям в этом, является менее определенным. Вместо того, чтобы создавать файл группы, Вы можете только использовать следующую директиву:
Require valid-user
Используя это, а не
Require user rbowen
линия позволит, что любой в этом перечислен в файле пароля, и кто правильно входит в их пароль. Вы можете даже подражать поведению группы здесь, только держа отдельный файл пароля для каждой группы. Преимущество этого подхода состоит в том, что Apache только должен проверить один файл, а не два. Неудобство - то, что Вы должны поддержать связку файлов пароля, и не забыть ссылаться на правильный в
AuthUserFile
директива.
из-за пути, которым определена Базовая аутентификация, ваше имя пользователя и пароль должны быть проверены каждый раз, Вы просите документ от сервера. Это - то, даже если Вы перезаряжаете ту же самую страницу, и для каждого изображения на странице (если они прибывают от защищенного справочника). Поскольку Вы можете вообразить, это замедляет вещи вниз немного. Количество, что это замедляет вещи, пропорционально размеру файла пароля, потому что это должно открыть тот файл, и спуститься по списку пользователей, пока это не добирается до вашего названия. И это должно сделать этот каждый раз, страница загружена.
последствие этого - то, что есть практический предел тому, сколько пользователей Вы можете вставить один файл пароля. Этот предел изменится в зависимости от работы вашей специфической машины сервера, но Вы можете ожидать видеть замедление, как только Вы добираетесь выше нескольких сотен записей, и можете желать рассмотреть различный опознавательный метод тогда.
установление подлинности именем пользователя и паролем - только часть истории. Часто Вы хотите впустить людей, основанных на чем - то другом чем, кто они. Кое-что типа того, откуда они прибывают.
Allow
и
Deny
директивы позволяют Вам позволять и отрицать доступ, основанный на названии хозяина, или принимать гостей за адресом, машины, прося документ.
Order
директива идет взявшись за руки с этими двумя, и говорит Apacheа в который заказ применить фильтры.
использование этих директив:
Allow from
address
где адрес является IP адресом (или частичный IP адрес) или полностью компетентное название области (или частичное название области); Вы можете обеспечить многократные адреса или названия области, если желательно.
например, если Вы имеете кого - то spamming ваша доска для сообщений, и Вы хотите не пустить их, Вы могли сделать следующее:
Deny from 10.252.46.165
посетители, приезжающие от того адреса не будут в состоянии видеть содержание, покрытое в соответствии с этой директивой. Если, взамен, Вы имеете название машины, а не IP адрес, Вы можете использовать это.
Deny from
host.example.com
и, если Вы хотели бы блокировать доступ от всей области, Вы можете определить только часть имени: адреса или области
Deny from
192.168.205
Deny from
phishers.example.com
moreidiots.example
Deny from ke
Используя
Order
позволит Вам убеждаться, что Вы фактически ограничиваете вещи группой, которую Вы хотите впустить, объединяясь a
Deny
и
Allow
директива:
Order deny,allow
Deny from all
Allow from
dev.example.com
внесение в список только
Allow
директива не сделала бы то, что Вы хотите, потому что это позволит людям от того хозяина в, в дополнение к впущению каждого. То, что Вы хотите, должно позволить
только
те люди в.
Вы должны также прочитать документацию для
mod_auth
и
mod_access
которые содержат еще немного информации о как это все работы.