Linux
Шрифт:
Для примера приведем небольшую секцию локальной конфигурации программы sendmail:
############
# local info #
############
Cwlocalhost
СР.
# UUCP relay host
DYucbvax.Berkeley.EDU
CPUUCP
# BITNET relay host
# DBmailhost.Berkeley.EDU
DBrelay.kiae.su
CPBITNET
# "Smart" relay host (may be null)
DSrelay.kiae.su
# who I send unqualified names to (null means deliver locally)
DR
# who gets all local email traffic ($R has precedence for unqualified names)
DH
# who I masquerade as (null for no masquerading)
DM
# class L: names that should be delivered locally, even if we have a relay
# class E: names that should be exposed as from this host, even if we masquerade
# CLroot
CEroot
# operators that cannot be in local usernames (i.e., network indicators)
CO @ % !
# a class with just dot (for identifying canonical names)
C..
# dequoting map Kdequote dequote
Тестирование отправки почты sendmailДля проверки правильности функционирования программы sendmail можно запустить ее с ключом -v (режим verbose). При этом режиме процесс обмена между транспортными почтовыми агентами выводится на консоль или записывается в файл. Таким образом можно исключить большую часть ошибок в настройке sendmail.
Тестирование обслуживания по протоколу SMTP Для проверки сервиса SMTP используют программу telnet, подключаемую к 25-му порту:telnet ivan.petrov 25
Если на компьютере установлен SMTP-сервер – в ответ получим строку приглашения протокола SMTP, после чего можно вводить команды SMTP:
MAIL FROM: user
250 user… Sender ok
RCPT TO: user
250 user… Recipient ok
DATA
354 Enter mail, end with"." on a line by itself
This is a test message!!!250 JAA24856 Message accepted for delivery
quit
221 ivan.petrov closing connection
Connection closed by foreign host.
You have new mail.
#
В
Команды и коды возврата протокола SMTP
Для тестирования работы SMTP-сервера необходимо знать команды протокола SMTP (табл. 18.1) и его коды возврата (табл. 18.2) и воспользоваться программой telnet.
Таблица 18.1. Команды протокола SMTPТаблица 18.2. Коды возврата протокола SMTP
Тестирование обслуживания по протоколу POP3 Аналогично тестированию обслуживания по протоколу SMTP с помощью программы telnet можно проверить функционирование и POP3-протокола. Для этого необходимо подключиться к нашему серверу по порту 110.
telnet ivan.petrov 110
user user
+OК Password required for user,
pass 12345623432
+OK user has 3 messages (3327 6 octets).
list
+OK 3 messages (3327 6 octets)
1 11276
2 11000
3 11000
.
dele 3
+OK Message 3 has been deleted.
quit
+OK
Connection closed by foreign host.Очень похоже на протокол SMTP. Подключились к порту 110. Производим «опознание» пользователя с помощью команд user и pass. Затем командой list узнаем количество сообщений в почтовом ящике и их размер. Командой dele отмечаем сообщение к удалению, которое произойдет по окончании сеанса. Команда Quit завершает сеанс работы с сервером. Все просто.
Команды протокола POP3
Для тестирования работы POP3-сервера необходимо знать его команды (табл. 18.3) и воспользоваться программой telnet.
Успешное выполнение команды заканчивается выводом сообщения "+ок", а неуспешное «-err» соответственно.
Таблица 18.3. Команды протокола POP3Рассмотрим теперь более современные интерфейсы подготовки почтовых сообщений bml и elm. Обе эти программы подготовки почты работают в режиме полноэкранных интерфейсов.
Почтовые клиенты
Сегодня существует несколько десятков почтовых клиентов – простейшие текстовые, сложные текстовые, графические и даже Web-клиенты. Трудно охватить все разнообразие, поэтому приведем примеры нескольких почтовых клиентов. Для настройки всех почтовых клиентов необходимо знать ряд параметров:
• логин пользователя;
• пароль пользователя;
• адрес SMTP-сервера;
• порт SMTP-сервера;
• адрес POP3-сервера;
• порт POP3-сервера
Или те же параметры IMАР-сервера.
Зная эти параметры и при правильных настройках сети на вашем компьютере не составляет труда настроить практически любого почтового клиента.
Одна из первых программ – почтовых клиентов. Не блещет красотой интерфейса (его просто нет), достаточно примитивна, зато не занимает много места и поэтому присутствует практически на любом хосте. Представление о программе mail можно получить из рис. 18.1.
Рис. 18.1. Почтовый клиент mail
Pine
Один из самых «навороченных» текстовых почтовых клиентов, который так же позволяет работать с сообщениями новостей (news). Удобный, приятный в использовании интерфейс. Внешний вид программы pine изображен на рис. 18.2.
Рис. 18.2. Почтовый клиент pine
Mozilla
Аналог Netscape Communicator. Достаточно устойчивая и надежная почтовая программа. Является частью программного комплекса Mozilla – Web-браузер, почтовый клиент, клиент чата. Почтовый клиент Mozilla представлен на рис. 18.3.
Рис. 18.3. Почтовый клиент Mozilla
Balsa
Стандартный почтовый клиент GNOME. Понятный и удобный интерфейс (рис. 18.4). Могут быть некоторые проблемы с русификацией.
Рис. 18.4. Почтовый клиент Balsa
Stuphead
Модификация почтового клиента, написанного японским программистом, сделанная компанией ALT Linux. Пока получается достаточно неплохо и с русским языком проблем нет (рис. 18.5).
Рис. 18.5. Почтовый клиент Stuphead
Evolution
Попытка программистов создать нечто подобное Microsoft Outlook – почтовый клиент (рис. 18.6), органайзер (рис. 18.7), дневник и записную книжку в одном комплекте. Получился довольно «увесистый» программный пакет.
Рис. 18.7. Почтовый клиент Evolution – планировщик встреч
Kmail
Очень хороший почтовый клиент (рис. 18.8). Хорошо понимает различные кодировки, удобный и понятный интерфейс. Является стандартным почтовым клиентом для KDE.
Рис. 18.8. Почтовый клиент Kmail
Ссылки
• www.citforum.ra/internet/servers/ – Павел Храмцов. Организация и администрирование почтовых и файловых серверов Internet. Центр Информационных Технологий.
• Соответствующие HOWTO (см. гл. 13):
– Linux Mail-Queue mini-HOWTO;
– Sendmail+ UUCP HOWTO;
– Sendmail address rewriting mini-HOWTO.Глава 19 Web-cepвep Apache
Для создания Web-сервера (HTTP-сервера) в мире Linux в основном используется бесплатный (лицензия GNU) Web-сервер Apache. По статистическим данным до недавнего времени более пятидесяти процентов Web-серверов в Сети были построены на базе сервера Apache.
Чем же привлекателен этот сервер? Во-первых, большое количество возможностей – использование CGI-скриптов, шифрования, доступ по паролю, перекодирование страниц "на лету", поддержка виртуальных хостов и многое другое. Во-вторых, малая требовательность к ресурсам и большая производительность. В-третьих, многоплатформенность – Apache есть для Linux, для различных клонов UNIX, для Windows. В-четвертых, он бесплатный и с открытым исходным кодом. Список можно продолжать. Конечно, есть и недостатки, к примеру, некоторые сложности с конфигурированием. Но в целом – этот сервер не зря получил столь большую популярность.
В качестве альтернативы для Linux-платформы в последнее время выдвинулся Web-сервер TUX, который использует особенности ядра Linux, что позволило резко увеличить количество обрабатываемых запросов за единицу времени. Однако у этого сервера есть несколько минусов, в том числе:
• платформозависимость;
• неустоявшийся код;
• мало дополнительных возможностей по сравнению с Apache.
Далее мы рассмотрим конфигурирование сервера. Существует так называемый "Русский Apache" – адаптированный для русскоязычной аудитории. Мы, конечно, коснемся этого вопроса, но в целом будем рассматривать стандартный Apache.
Конфигурация
Установка
rpm -I имя_пакета
С конфигурированием труднее. Мы рассмотрим только наиболее распространенные директивы и их параметры, поскольку полный перечень слишком большой. Если вы производите переконфигурирование при рабочем сервере Apache, вам необходимо заставить сервер перечитать конфигурационные файлы. Сервер перечитывает конфигурационные файлы при запуске или при получении сигнала – hup или – uSRi. Если сервер находится в рабочем состоянии, то при изменении конфигурации его рекомендуется перезапустить командой kin – usri, поскольку в этом случае текущие соединения не закрываются принудительно и завершаются обычным образом, а следующие клиенты работают уже с новыми конфигурационными файлами.
Конфигурация сервера задается в файлах httpd.conf, srm.conf, access.conf и. htaccess. Файл httpd.conf предназначен для общей конфигурации сервера, srm.conf содержит описание доступных ресурсов, a access.conf – права доступа к ресурсам. Однако в современных версиях сервера любая директива конфигурации может лежать в любом из этих файлов. Сейчас de-facto все директивы конфигурации содержатся в файле httpd.conf.
Файлы. htaccess могут находиться в каталогах и переопределять права доступа и другие параметры данных каталогов. Некоторые модули могут иметь свои отдельные файлы конфигурации (например, mod_charset требует файлы, хранящие таблицы перекодировки).
Используемые обозначения
Ниже показаны обозначения, используемые при описании параметров конфигурации сервера:
• S – директива действует на поведение сервера целиком;
• V – действует, если запрос касается данного виртуального хоста;
• D – определяет свойства только данного каталога;
• A – определяет свойства только данного каталога.
Права доступа и свойства объекта
Права доступа к данному каталогу и его свойства определяются следующими директивами.
• DA allow from {host}
Определяет, с каких хостов разрешен доступ к данному каталогу:
– all– для всех;
– доменное имя – с тех хостов, имя которых заканчивается этой строкой;
– полный IP-адрес;
– частичный IP-адрес —1,2 или 3 байта IP-адреса;
– a.b.c.d/e.f.g.h – сеть/сетевая маска;
– a.b.c.d/nnn – сеть/подсеть.
• DA allow from env=имя_переменной
Доступ разрешается, только если определена соответствующая переменная окружения.
• D AllowOverride {None | All | AuthConfig | Filelnfo | Indexes | Limit | Options}
Определяет, какие директивы из. htaccess в данном каталоге могут перекрывать конфигурацию сервера.
• D AuthName домен_авторизации
Определяет, какой домен авторизации клиент должен использовать при определении имени и пароля.
• DA deny from {host}
Определяет, с каких адресов запрещен доступ к данному каталогу:
– all– для всех;
– доменное имя – с тех хостов, имя которых заканчивается этой строкой;
– полный IP-адрес;
– частичный IP-адрес —1,2 или 3 байта IP-адреса;
– a.b.c.d/e.f.g.h – сеть/сетевая маска;
– a.b.c.d/nnn – сеть/подсеть.
• DA deny from env=имя_переменной
Доступ не разрешается если определена соответствующая переменна окружения.
• SV <Directory имя_каталога> … </Directory>
Внутри этой пары тэгов определяются права и свойства данного каталога. В качестве имен используется полный путь к каталогу.
• SV <DirectoryMatch регулярное_выражение> … </DirectoryMatch>
Внутри пары тэгов определяются права и свойства данного каталога. В качестве имени используется регулярное выражение.
• SV DocumentRoot путь
Определяет, где находится корневой каталог документов сервера или виртуального сервера.
• SVDA ErrorDocument error-code document
Определяет, какой документ выдавать в случае ошибки с указанным кодом.
• SVA <Files имя_файла> … </Files>
Внутри пары тэгов определяются права и свойства файлов. Может находиться внутри секции Directory или. htaccess.
• SVA <FilesMatch имя_файла> … </FilesMatch>
Внутри пары тэгов определяются права и свойства файлов, в качестве имен используется регулярное выражение. Может находиться внутри секции Directory или. htaccess.
• SVDA CLimit {метод}> … </Limit>
Эта пара тэгов для группы директив, управляющих доступом. Методы – GET, POST, PUT, DELETE, CONNECT или OPTIONS.
• SV <Location URL>.. </Location>
Пара тэгов для определения свойств и прав доступа для данного URL.
• SV <LocationMatch URL> … </LocationMatch>
Пара тэгов для определения свойств и прав доступа для данного URL (регулярное выражение).
• SVDA Options [+|-]option …
Определяет возможности сервера в данном каталоге:
– ALL – все кроме MultiView;
– ExecCGi – разрешается выполнение CGI;
– FoiiowSymLinks – разрешено ходить по символьным ссылкам;
– includes – использовать SSI (Server Side Include);
– includesnoexec – использовать SSI, кроме exec и include CGI;
– indexes – генерировать список содержимого каталога, если отсутствует файл index.html;
– Muitiviews – определять представление ресурса в зависимости от предпочтений клиента;
– SymLinksifOwnerMatch – следовать по символьным ссылкам, только если владелец целевого файла совпадает с владельцем ссылки.
• DA order option
Определяет очередность, в которой применяются директивы allow и deny:
– deny, allow – первой применяются директивы deny, затем allow (начальное состояние – доступ разрешен);
– allow, deny – первой применяются директивы allow, затем deny (начальное состояние – запрещено);
– mutual-failure – доступ только с тех хостов, которые перечислены в allow и не перечислены в deny.
• DA require entity-name entity entity…
Какой пользователь может иметь доступ к каталогу:
– user {userid} – только пользователи с данными именами;
– group {group-name} – только пользователи из данной группы;
– valid-user – любой аутентифицированный пользователь.
• DA satisfy [all|any]
Если для ограничения доступа используется логин/пароль и IP-адрес, то сервер будет требовать соответствия обоих критериев (ail) или любого из них (any). По умолчанию – all.
Общие характеристики сервера
Общие характеристики сервера определяются следующими директивами.
• SV ErrorLog filename | syslog: facility
Определяет, куда выводить сообщения об ошибках.
• SV Group группа
Определяет, с правами какой группы будет обрабатываться запрос.
• SVD HostNameLookups on | off | double
Указывает, определять ли имя клиента по его IP-адресу.
• SVDA cifDefine [!]parameter-name> … </IfDefine>
Условная конфигурация, в зависимости, определен параметр или нет.
• SVDA cifModule [!]module-name> … </IfModulee>
Условная конфигурация, в зависимости, включен модуль в состав сервера или нет.
• S Include имя_файла
Вставить содержимое файла в состав конфигурационного файла в данном месте.
• S KeepAlive on | off
Обслуживать несколько запросов, не прерывая TCP-соединения с клиентом.
• SV LogLevel emerg | alert | crit | error | warn | notice | info | debug
Определяет, что писать в журнал ошибок.
• S MaxClients число
Определяет максимальное количество одновременно обслуживаемых клиентов.
• S MaxKeepAliveRequests число
Определяет, максимальное количество запросов.
• S MaxRequestsPerChild число
Определяет максимальное количество одновременно обслуживаемых запросов одним процессом.
• S MaxSpareServers число
Определяет максимальное число процессов, не осуществляющих в данный момент соединения.
• S MinSpareServers число
Определяет минимальное число процессов, не осуществляющих в данный момент соединения.
• S Port номер_порта
Определяет, по какому порту производится соединение (по умолчанию – 80-й порт).
• SV RLimitCPU soft-limit max-resource-limit
Задает максимальное число секунд CPU для любого процесса. Оба параметра могут быть числом или словом max.
• SV RlimitMEM soft-limit max-resource-limit
Задает максимальное число байтов, которое может использовать каждый процесс. Оба параметра могут быть числом или словом max.
• SV RlimitNPROC soft-limit max-resource-limit
Задает максимальное число процессов, которое может запустить каждый пользователь. Оба параметра могут быть числом или словом max.
• SV ServerAdmin email-address
Электронный адрес администратора Web-cepвepa.
• SV ServerName имя
Полное доменное имя, используется для перенаправления.
• S ServerRoot полное-имя-каталога
Указывает место, где лежат все файлы сервера по умолчанию.
• SVDA ServerSignature Off | On | Email
Определяет, какую информацию включать в конце документов, генерируемых сервером:
– off – отсутствие информации;
– on – имя сервера и версия;
– EMail – имя сервера, версия и почтовый адрес администратора.
• S Server-Tokens Minimal | OS | Full
Определяет, что сервер сообщает о себе в заголовке server;
• S ServerType standalone | initd
Определяет тип сервера – постоянно находящийся в оперативной памяти или вызываемый демоном initd.
• S StartServers number
Определяет, сколько дочерних процессов запускать при начальном старте сервера.
• S TimeOut секунд
Количество секунд, определяющее тайм-аут.
• SVDA UseCanonicalName on|off
Используется при генерации URL, ссылающихся на этот же сервер:
– On – использовать ИМЯ, определенное В ServerName и Port;
– off – использовать параметры из запроса пользователя.
• SV User uid
Определяет, с правами какого пользователя будет работать сервер.