Шрифт:
Интервал:
Закладка:
<VirtualHost ftp.library.com>
ServerName "Online library"
MaxClients 15
MaxLoginAttempts 1
DeferWelcome on
<Limit LOGIN>
Allow from 192.168.1
Deny from all
</Limit>
<Limit WRITE>
AllowUser libadmin
DenyAll
</Limit>
<Anonymous /var/ftp/library/books>
User library
Group library
AnonRequirePassword on
</Anonymous>
<Anonymous /var/ftp/library>
User ftp
Group ftp
UserAlias anonymous ftp
</Anonymous>
</VirtualHost>
В примере 15.12 также конфигурируются две анонимных учетных записи — library и ftp. Причем учетная запись library требует ввода пароля при регистрации. Пароль должен совпадать с паролем того пользователя, который запустил демон. Доступ к виртуальному серверу разрешен только для подсети 192.168.1.0. Записывать данные на сервер может только пользователь libadmin.
15.5. Защита FTP
Очень полезной, особенно, при организации виртуальных узлов, является конфигурационная директива DefaultRoot, позволяющая указать каталог, который представлялся бы пользователям как корневой. Например, значение DefaultRoot "~" настраивает сервер так, чтобы корневым каталогом каждого пользователя был его собственный домашний каталог.
А что делать, если нам нужно, чтобы пользователи видели все дерево файловой системы? Например, чтобы каждый мог посмотреть, в каком каталоге находится та или иная программа. В этом случае целесообразно ограничить действия над файлами в корневом каталоге (точнее, во всех каталогах, кроме домашнего каталога пользователя). Делается это так:
<Directory /*>
<LIMIT WRITE READ STOR>
DenyAll
</LIMIT>
</Directory>
Пример файла конфигурации с использованием директивы DefaultRoot приведен ниже (листинг 15.13):
Листинг 15.13. Пример использования директивы Default Root (/etc/proftpd.conf)
ServerName "My ProFTPD server"
ServerType standalone
DefaultServer on
# Корневым для пользователя будет его домашний каталог
DefaultRoot "~"
# Используем стандартный порт
Port 21
Umask 022
MaxInstances 30
# Пользователь и группа, обслуживающие сервер
User nobody
Group nobody
# Параметры корневого каталога. Блочная директива Directory
<Directory /*>
# Директива, определяющая параметр AllowOverwrite
AllowOverwrite on
</Directory>
# Чтобы избежать атаки на отказ, нужно установить
# максимальное число клиентов, а также максимальное
# число неудачных попыток регистрации;
MaxClients 10
MaxLoginAttempts 2
# Иногда для взлома злоумышленник пытается использовать
# а качестве оболочки какую-нибудь программу, например,
# "оболочку" rm -R /.
# Обычно эта брешь в защите закрыта, но все же желательно
# требовать использования только законных оболочек:
RequireValidShell on
Глава 16
HTTP-сервер Apache
Эта глава посвящена популярному HTTP-серверу Apache. Этот сервер возник из веб-сервера NCSA, разработанного в Национальном центре разработок суперкомпьютеров Иллинойского университета. В 1994 году из проекта NCSA ушел главный разработчик, оставив многих последователей самостоятельно разбираться в своем сервере. Со временем начали появляться исправления и дополнения к серверу NCSA — заплатки (патчи). А в апреле 1995 года вышла первая версия сервера Apache, основанного на версии 1.3 сервера NCSA, которая просто вобрала в себя все известные на тот момент исправления NCSA. Отсюда появилось и само название Apache — «А PatCHy». Позже Apache стал самостоятельной разработкой, и сейчас он поддерживается группой программистов-добровольцев Apache Group.
Сервер Apache разрабатывался для ОС Linux и UNIX, но со временем были выпущены его версии и для ОС Windows и OS/2.
Хочу также отметить, что, кроме Apache, для ОС Linux существуют и другие веб-серверы: Red Hat Secure Server, Apache-SSL, Netscape Enterprise Server и т.д.
16.1. Установка Apache
В зависимости от дистрибутива, пакет, из которого устанавливается веб-сервер Apache, может называться apache или httpd, а пакет с документацией — apache-docs или httpd-manual соответственно. В первом случае вам понадобится установить еще пакет apache-common, содержащий необходимые файлы для запуска сервера.
После установки сервер конфигурируется для запуска в режиме standalone, то есть он будет постоянно находиться в памяти. Я не рекомендую изменять этот режим. Для запуска и останова сервера Apache вы можете воспользоваться командами:
# /etc/rc.d/init.d/httpd start
# /etc/rc.d/init.d/httpd stop
После успешной установки сервера отредактируйте файл /etc/httpd/conf/httpd.conf. В нем исправьте всего одну директиву — ServerName. Значением ее должно быть имя, зарегистрированное в службе DNS вашей сети. После этого запустите сервер. Откройте любой браузер и попробуйте обратиться к серверу с локального компьютера (netscape http://localhost), а потом с другого компьютера вашей сети (netscape http://server.firma.ru). Если в обоих случаях вы увидите приветствие сервера (рис. 16.1), значит, ваш сервер Apache нормально работает и можно приступать к его дальнейшему конфигурированию. Если в первом случае у вас произошла ошибка, значит, искать ее нужно на локальном уровне. При этом если сеть нормально работает, то, скорее всего, вы просто забыли запустить сервер. Появление ошибки во втором случае может быть связано с неправильной установкой директивы ServerName (например, назначенное вами имя веб-сервера не прописано в службе DNS).
Рис. 16.1. Приветствие сервера Apache
16.2. Настройка Apache. Файлы конфигурации
После установки Apache следует отредактировать следующие файлы:
♦ /etc/httpd/conf/httpd.conf — основной файл конфигурации. Для Apache 2.x. этот файл может также называться httpd2.conf;
♦ /etc/logrotate.d/apache или /etc/logrotate.d/httpd (в версии 2.0) — файл ротации журналов;
♦ /etc/sysconfig/httpd — системный файл конфигурации;
♦ /etc/init.d/httpd — файл инициализации Apache,
Для старых версий Apache (до версии 1.3) характерно наличие файлов srm.conf и access.conf. Обычно эти файлы находятся в каталоге /etc/httpd/conf. В файле srm.conf задаются параметры документов, которые размещены на сервере. Файл access.conf содержит параметры доступа к серверу. Начиная с версии 1.3 рекомендуется все директивы, которые раньше находились в файлах srm.conf и access.conf, помещать в файл httpd.conf.
Файл httpd.conf — это основной файл конфигурации сервера. В нем содержится техническое описание работы сервера. Начиная с версии 1.3 появилось несколько дополнительных конфигурационных файлов: apache-mime.types, vhosts/vhosts.conf, vhosts/VirtualHomepages.conf, vhosts/DynamicVHosts.conf. В файле apache-mime.types содержатся типы MIME, поддерживаемые сервером Apache. Файлы vhosts.conf, VirtualHomePages.conf, DynamicVHosts.conf относятся к конфигурированию виртуальных веб-серверов, о которых речь пойдет немного позже.
ПримечаниеMIME (Multipurpose Internet Mail Extensions) — многоцелевое расширение электронной почты в сети Интернет. Используется не только при работе с электронной почтой, но и служит для описания различных типов данных, например, текстовых, графических. Описание типа MIME включает в себя наименование типа, подтипа и расширение (например, text/plain txt).
16.3. Основные настройки. Файл httpd.conf (httpd2.conf)
Как уже отмечалось ранее, этот файл содержит практически все директивы, необходимые для работы сервера. Директивы конфигурационного файла сервера Apache можно условно разделить на такие группы:
1. Общие. К общим директивам относятся глобальные директивы, влияющие на работу всего веб-сервера. Это директивы ServerName, ServerType, Port, User и Group, ServerAdmin, ServerRoot, PidFile, DocumentRoot, UserDir.
2. Директивы протоколирования: ErrorLog, TransferLog, HostnameLookups.
3. Директивы ограничения доступа: AllowOverride, Options, Limit.
4. Директивы управления производительностью: StartServers, MaxSpareServers, MinSpareServers, а также директива CacheNegotiatedDocs.
5. Директивы обеспечения постоянного соединения с клиентом: Timeout, KeepAlive, KeepAliveTimeout.
6. Директивы настройки отображения каталога. Оформить отображение каталогов можно с помощью директив настройки отображения каталогов; DirectoryIndex, FancyIndexing и AddIconByType.
- Операционная система UNIX - Андрей Робачевский - Программное обеспечение
- Разработка приложений в среде Linux. Второе издание - Майкл Джонсон - Программное обеспечение
- Искусство программирования для Unix - Эрик Реймонд - Программное обеспечение
- Linux - Алексей Стахнов - Программное обеспечение
- Fedora 8 Руководство пользователя - Денис Колисниченко - Программное обеспечение
- Недокументированные и малоизвестные возможности Windows XP - Роман Клименко - Программное обеспечение
- Изучаем Windows Vista. Начали! - Дмитрий Донцов - Программное обеспечение
- Windows Vista - Виталий Леонтьев - Программное обеспечение
- Архитектура операционной системы UNIX - Морис Бах - Программное обеспечение
- Windows Vista. Трюки и эффекты - Юрий Зозуля - Программное обеспечение