Как ограничить доступ к файлу на сервере
Защита от ботов, рассылающих спам, флуда и нежелательных посещений – одна из важнейших обязанностей любого администратора веб-ресурса. Для этого существует хорошее средство – запрет доступа по IP при помощи файла .htaccess. Разберем более подробно доступные варианты изменения уровня доступа.
Создание файла .htaccess
Сначала, создается файл .htaccess как простой документ текстового формата без расширения .txt. Его можно открыть в обычном блокноте Windows, но лучше воспользоваться более расширенным редактором, например – Notepad++.
Права на этот файл должны быть обозначены как – 644, а загрузка производиться посредством ASCII-режима. Если обнаружится, что созданный файл неработоспособен необходимо обратиться в техподдержку хостинга.
Многие бесплатные хостинги запрещают использование файла .htaccess без специального разрешения. Этот файл применим только к серверам Apache и не будет исполняться на серверах под управлением Windows.
Команды
Запретить доступ к сайту по IP при помощи файла .htaccess можно используя операторы allow и deny .
Основная директива, которая используется при ограничении доступности сайта – order . Ее синтаксис следующий:
Конструкция order deny,allow начинает код и показывает, какие параметры будут использованы для ограничения разрешений на просмотр.
- Оператор allow дает разрешение.
- Оператор deny запрещает.
В зависимости от того в каком порядке стоят операторы в коде меняется логика работы сервера.
- deny,allow сообщает серверу о закрытии доступа всем IP-адресам кроме разрешенных.
- allow,deny напротив открывает доступ для всех IP-адресов кроме запрещенных.
Стоит отметить, что на практике директива order используется не всегда, поскольку не является обязательной. При написании кода в файле .htaccess лучше придерживаться рекомендаций, отраженных в документации.
Ограничение доступа к сайту и его разделам
Место расположения файла .htaccess зависит от того, какой раздел сайта или его файл необходимо закрыть.
Полное закрытие сайта
Для того чтобы полностью закрыть сайт от посещений и возможности просмотра его содержимого в .htaccess вносится следующий код:
После этого ни с какого IP-адреса зайти на сайт будет невозможно. При такой попытке на стороне клиента выдается 403 ошибка, обозначающая запрет на просмотр.
Файл .htaccess для этой операции необходимо расположить в корне сайта.
Запрет доступа для целевого IP-адреса
Запрет для конкретных IP-адресов реализуется при помощи данного кода:
Файл .htaccess по-прежнему должен находится в корне сайта.
Разрешение только для конкретных IP-адресов
Сайт можно полностью закрыть, оставив разрешение только для конкретных IP-адресов. С этой целью в файле .htaccess, расположенном в корне сайта, прописываются следующие строки:
Разрешенные IP прописываются в коде через пробел.
Закрытие доступа по маске
В определенных ситуациях ограничение необходимо сделать по маске. Для выполнения этой операции используется код:
Усиление защиты административной части сайта
Помимо прочего, запрет доступа для определенных IP-адресов к разделам сайта помогает повысить безопасность административной части. Для этого, разрешение на доступ дается только определенным IP-адресам с использованием имени хоста. Для решения этой задачи создается данный код:
Ограничение доступа к целевой папке
Запрет доступа к папке реализуется очень просто. Достаточно загрузить в целевую папку, которую необходимо закрыть файл .htaccess и прописать в нем всего одну строку:
Ограничение доступа к определенному файлу на сайте
Нередко возникают ситуации, при которых необходимо закрыть возможность просмотра не сайта или папки, а только определенного файла или группы файлов. Для этого используются директивы – files и filesmatch . Они несколько похожи на мета-теги, используемые для разметки HTML-кода.
Также требуется заключение директив в знаки <> , а также использование открывающей и закрывающей код конструкции.
«Пустой» код выглядит следующим образом:
Внутри этой конструкции прописываются необходимые условия. Как пример приведем ограничение просмотра для архива example.zip :
Для ограничения просмотра группы файлов используется директива filesmatch и регулярные выражения, позволяющие создать необходимую маску. Пример ограничения доступности архивных и графических файлов выглядит следующим образом:
Запретить доступ к одному файлу по IP при помощи .htaccess сделать нельзя. Для решения этой задачи понадобится использовать возможности административных панелей хостинга и самого сайта.
Права доступа позволяют определить, какие действия могут совершать пользователи с теми или иными файлами и директориями.
Пользователи делятся на три категории:
- владелец (владельцем является владелец аккаунта; дополнительные FTP-пользователи также получают права владельца в рамках предоставленного им доступа);
- группа пользователей, в которую входит владелец (в рамках хостинга эта категория не актуальна; по умолчанию на нее распространяются те же права, как для категории "остальные");
- остальные (прочие пользователи, которые заходят на ваш сайт).
Права доступа включают в себя право на чтение (r), запись (w) и исполнение (x) и могут записываться двумя способами: буквами или цифрами.
Соответствие буквенной и цифровой записи в таблице ниже:
Цифровая запись | Буквенная запись | Права |
---|---|---|
0 | --- | Отсутствие прав |
1 | --x | Исполнение |
2 | -w- | Запись |
3 | -wx | Запись и исполнение |
4 | r-- | Чтение |
5 | r-x | Чтение и исполнение |
6 | rw- | Чтение и запись |
7 | rwx | Чтение, запись и исполнение |
Права записываются последовательно: сначала для владельца, затем для группы, затем для остальных пользователей. Например, запись 755 (или rwx r-x r-x) означает, что владельцу даны права на чтение, запись и исполнение (7 / rwx), всем остальным - на чтение и исполнение (5 / r-x).
Права назначаются как файлам, так и директориям, при этом есть определенные отличия в том, какие возможности дает то или иное право доступа:
Просмотр содержимого (т.е. можно получить список объектов в каталоге) - например, командами cat, ls
Примеры наиболее распространенных комбинаций для прав доступа:
Владелец может просматривать и изменять содержимое, у остальных нет доступа к объекту
Просмотреть назначенные права можно командой ls -l. Права для файлов в выводе будут отмечены флагом -, для директории - флагом d, например:
Настройка прав доступа
Настроить права доступа к файлам и директориям вы можете тремя способами:
- с помощью файлового менеджера панели управления;
- при SSH-подключении;
- через FTP-клиент.
Через файловый менеджер
Для настройки прав доступа к файлу или каталогу с помощью файлового менеджера необходимо проделать следующие действия:
- Перейдите в раздел "Файловый менеджер" панели управления.
- Выделите файл или директорию (указать права для нескольких файлов/директорий невозможно).
- Выберите пункт меню "Файл" - "Права доступа".
- Укажите необходимые права, после чего сохраните изменения.
По SSH
Права задаются при помощи команды chmod. Удобнее всего использовать цифровую запись. Перед правами укажите ноль.
Установить права 644 на файл test.txt:
Установить права 777 на каталог dir:
В отдельных случаях может быть полезна опция -R, она позволяет назначать права рекурсивно.
Например, чтобы указать права 755 всем объектам в текущем каталоге (включая подкаталоги), можно использовать:
администратор сервера может управлять доступом к любым папкам сервера (таким как общие папки при доступе к панели запуска, удаленному Веб-доступ, моему серверному приложению для Windows Phone или моему серверному приложению для Windows 8) на сервере с помощью задач на вкладке « папки сервера » панели мониторинга, что позволяет пользователям менять уровни доступа к различным файлам.
В следующих разделах приводятся сведения, которые помогут вам, как создавать папки сервера и управлять ими.
Управление папками сервера с помощью панели мониторинга
Windows Server Essentials позволяет выполнять общие задачи администрирования с помощью панели мониторинга. На странице Папки сервера панели мониторинга представлены следующие сведения.
Список папок сервера, где отображаются:
объем свободного пространства, которое будет доступно в папке;
краткое описание всех задач, которые выполняются с папкой; поле Состояние пусто, если папка исправна и никакие задачи не выполняются;
область сведений, где может быть представлена дополнительная информация о выбранной папке;
область задач, которая включает в себя набор административных задач, связанных с папкой.
В следующей таблице описаны различные задачи папок сервера, доступные на панели мониторинга Windows Server Essentials. Большинство задач зависят от папки и отображаются только при выборе папки в списке.
Задачи для папок сервера на панели мониторинга
Имя задачи | Описание |
---|---|
Открыть папку | Отображение содержимого выбранной папки в проводнике (в предыдущих версиях Windows — проводник Windows). |
Удалить папку | Позволяет удалить папку, созданную пользователем. Эта задача недоступна для папок по умолчанию, которые создаются при установке сервера. |
Переместить папку | Открывает мастер, который позволяет переместить папку сервера в новое расположение. |
Остановить общий доступ к папке | Прекращение общего доступа к выбранной папке, при этом папка не удаляется. Если к папке не предоставляется общий доступ, она не отображается на панели мониторинга. Эта задача недоступна для папок по умолчанию, которые создаются при установке сервера. |
Просмотр свойств папки | Отображение свойств выбранной папки. Вы можете: |
-Изменить имена папок, созданных пользователем.
-Изменить описание для выбранной папки.
— Просмотр размера папки.
— Открыть выбранную папку в проводнике.
— Укажите разрешения на доступ к учетной записи пользователя для выбранной папки.
-Скрыть выбранную папку из удаленных Веб-доступ и приложений веб-служб.
Управление доступом к папкам сервера
Windows Server Essentials позволяет сохранить файлы, расположенные на клиентских компьютерах, в центральном расположении с помощью папок сервера. Хранение файлов в папках сервера гарантирует, что файлы всегда будут безопасно доступны с каждого клиента.
Используя папки сервера для хранения файлов, вы сможете:
создавать резервную копию папки сервера с помощью службы резервного копирования и восстановления сервера для защиты от сбоев сервера;
получать доступ к файлам, которые хранятся в папке сервера, из любого расположения с помощью браузера (удаленный веб-доступ) или с помощью приложений My Server для Windows Phone и Windows 8;
получать доступ к папке сервера с любого клиентского компьютера.
Вы можете управлять доступом к любым папкам сервера с помощью задач на вкладке Папки сервера панели мониторинга. В следующей таблице перечислены папки сервера, создаваемые по умолчанию при установке Windows Server Essentials или при включении потоковой передачи мультимедиа на сервере.
Сведения о том, как скрыть или задать разрешения для папок сервера или изменить свойства папки сервера, см. в следующих разделах:
Скрыть папки сервера
Сетевой администратор может скрыть любую папку сервера, после чего они не будут отображаться на веб-сайте удаленного веб-доступа или в приложениях веб-служб (таких как My Server).
Для выполнения этой процедуры необходимо быть сетевым администратором.
Скрытие папок сервера с веб-сайта в удаленного веб-доступа
Откройте панель мониторинга Windows Server Essentials.
В представлении списка выберите папку сервера, свойства которой требуется просмотреть или изменить.
В области <> задачи Серверфолдер щелкните Просмотр свойств папки.
В > свойствах<имя_папки щелкните общий доступ, выберите Скрыть эту папку от удаленного веб-доступ и приложений веб-службы, а затем нажмите кнопку Применить.
Задание разрешений для папок сервера
Для любой папки сервера, добавленной на сервер с помощью панели мониторинга, можно выбрать три разных параметра доступа:
Чтение и запись
Выберите этот параметр, чтобы разрешить этому пользователю создание, изменение и удаление всех файлов в папке сервера.
Только для чтения
Выберите этот параметр, чтобы разрешить этому пользователю только чтение файлов в папке сервера. Пользователи с доступом только для чтения не могут создавать, изменять или удалять файлы в папке сервера.
Нет доступа
Выберите этот параметр, если требуется запретить доступ к файлам в папке сервера этому пользователю.
Разрешения, которые отображаются в диалоговом окне свойств папки, представляют только пользователей, которыми управляет панель мониторинга. В них не входят разрешения пользователей, например групп или учетных записей служб, или разрешения, которые можно установить для папки с помощью других стандартных средств, а также пользователей, которые не были добавлены через панель мониторинга.
Для выполнения этой процедуры необходимо быть сетевым администратором.
Установка разрешений для папки сервера
Откройте панель мониторинга Windows Server Essentials.
В представлении списка выберите папку сервера, свойства которой требуется просмотреть или изменить.
В области <> задачи Серверфолдер щелкните Просмотр свойств папки.
В > свойствах<имя_папки щелкните общий доступ и выберите соответствующий уровень доступа пользователя для перечисленных учетных записей пользователей, а затем нажмите кнопку Применить.
По умолчанию при добавлении учетной записи пользователя в сети для нее создается вложенная папка в папке Пользователи на сервере. Доступ к этой вложенной папке может получить только пользователь или администратор с компьютера, подключенного сети. Разрешения задаются для каждой вложенной папки в папке Пользователи, поэтому для папки Пользователи нет общих разрешений доступа.
Разрешения общего доступа для папок сервера Архивы журналов файлов, Перенаправление папок и Пользователи не могут быть изменены. Следовательно, в окнах свойств этих папок сервера вкладка Общий доступ отсутствует.
Просмотр или изменение свойств папки сервера
Вы можете изменить имя папки сервера, ее описание и определить, у каких учетных записей есть доступ к ней, с помощью задачи Просмотреть свойства папки на вкладке Папки сервера панели мониторинга.
в Windows server essentials и Windows Server 2012 R2 с установленной ролью Windows Server essentials можно также изменить квоту папки.
Просмотр и изменение свойств папки
Откройте панель мониторинга Windows Server Essentials.
В представлении списка выберите папку сервера, свойства которой требуется просмотреть или изменить.
В области <> задачи Серверфолдер щелкните Просмотр свойств папки.
В > свойствах<имя_папки на вкладке Общие просмотрите или измените имя и описание папки сервера.
Добавление или перемещение папки сервера
Вы можете добавить дополнительные папки сервера для хранения файлов на сервере, в дополнение к папкам сервера по умолчанию, которые создаются во время установки. Папки сервера можно добавить на основном или рядовом сервере под управлением Windows Server Essentials.
При необходимости вы можете переместить папку сервера, которая находится на основном сервере под управлением Windows Server Essentials и отображается на вкладке Папки сервера панели мониторинга, на другой жесткий диск с помощью мастера перемещения папки. Папку сервера можно переместить в другое расположение на жестком диске, если:
На жестком диске недостаточно места для хранения данных.
Вы хотите изменить место хранения по умолчанию. Для более быстрой операции переместите папку сервера, когда она не содержит данных.
Требуется удалить существующий жесткий диск без потери папок, расположенных на нем.
Перед перемещением папки необходимо убедиться в следующем:
Создана резервная копия сервера.
Все операции резервного копирования клиента остановлены, если планируется переместить папку архивации клиентских компьютеров. При перемещении папки архивации клиентских компьютеров сервер не сможет создать резервную копию всех клиентских компьютеров до завершения перемещения папки.
Сервер не выполняет каких-либо важных системных операций. Рекомендуется завершить все выполняемые обновления или операции резервного копирования, перед началом перемещения папки, иначе процесс займет больше времени.
Ни один из файлов в перемещаемой папке не используется. Вы не сможете получить доступ к папке сервера при ее перемещении.
Перемещение папки из файловой системы NTFS в ReFS не поддерживается, если файлы в папках сервера реализуют следующие технологии:
Поскольку количество способов скрыть файл и вообще запретить много, то яне берусь рассказать о всех способах! И чтобы не запутаться в перипетиях запрещений доступа к файлам сделаем навигацию по странице!
Подробно о запрещении доступа к файлам.
08.02.2021 Контент полностью обновлен!
Как запретить доступ ко всем файлам -> deny from all
Для того, чтобы запретить вообще ко всем файлам на сайте, нам понадобится файл .htaccess, в котором прописываем такую строчку:Пример запрета на доступ ко всем файлам htaccess
Естественно, что все файлы мы не будем закрывать, мы сделаем папку в которую поместим файл .htaccess с выше приведенной строкой и поместим туда файл, test.phpНажмите по ссылке,чтобы посмотреть, результат.
В зависимости от настроек вы увидите:
Если запрет доступа был не настроен, то скорее всего увидите:
Пример запрета на доступ ко всем файлам htaccess
Если данная ошибка была настроена, то вы увидите:
Пример запрета на доступ ко всем файлам htaccess
Далее рассмотрим, как такой запрет работает!
Запретить доступ к файлам с определенным разрешением htaccess
Для того чтобы закрыть доступ в папке к любому файлу с любым разрешения, например cfg или файл конфиг dat
Делаем такую запись в файле htaccess:
Пример - Как запретить доступ к файлам с определенным разрешением
Выше приведенный файл разместим в папке и создадим там три файла, к двум файлам, которые прописан запрет на просмотр и третий, к разрешению которого ничего не применено!
Вы можете нажать и смотреть результат применения правил запрета(здесь используется единая точка входа).
Пример 2 - запрет доступа к файлам, единая точка входа не включена.
Поскольку на поддомене, в данной точке, просмотр папки не запрещен, то вы можете эту папку с таким же файлом htaccess посмотреть и если вы зашли в эту папку, то файлов запрещенными расширениями - вы не сможете увидеть! :
Вывод о запрете доступа к файлам.
единая точка входа - никак не влияет на запреты просмотра файлов через htaccess
Как запретить доступ к одному файлу htaccess
К примеру у вас есть один файл users.txt и к нему нужно запретить доступ.
Делаем такую запись:
Пример - "Как запретить доступ к одному файлу htaccess".
Для того, чтобы продемонстрировать работу выше приведенной записи в htaccess для запрета лишь определенного файла -> сделаем отдельную папку, в которую поместим файл htaccess с выше приведенным правилом!
Первый файл, к которому выше запретили доступ через htaccess :
В эту же папку поместим файл с таким дже разрешением, но изменим название на "examples_1.dat"
Как видим, заперт на просмотр верхнего файла действует в этой папке, но никак не влияет на соседние файлы!
Запрет доступа к файлам на поддомене:
Проделаем аналогичные действия на поддомене. Просто скопируем папку со всем содержимым, вы сможете её посмотреть.Аналогичные файлы, аналогичный запрет на доступ к файлам:
Здесь - смысла вывод делать - он такой же. что был выше пунктом.
Как запретить доступ к одному файлу НЕ htaccess
Сделаем запрет доступа к файлу без htaccess. Подойдет только для фацлов, в которых может выполняться php
Например файлы "html":
Вариант 1.
В самом верху пишем условие:
И давайте посмотрим, как этот код выглядит на странице.
Вы наверное поняли, что мы видим разные две страницы, по одному адресу:
Вариант 2.
Если требуется запретить доступ к файлу. можно использовать константу, не обязательно там выводить каку-то информацию, можно сразу сделать переадресацию.На той странице, на которую страницу будут инклудится(include) все другие страницы, создаём константу: define('название константы', 'значение константы');
На всех других страницах проверяем существует ли такая константа "defined('название константы') or 'действие. ');":
Читайте также: