Администрирование почтовых и файловых серверов в Internet

Автор работы: Пользователь скрыл имя, 20 Октября 2011 в 19:58, курсовая работа

Краткое описание

Сеть Internet развивалась в первые свои годы как государственная. Это значит, что главным ее назначением был свободный обмен информацией. Доступность Internet из высших учебных заведений только способствовала этой тенденции. Если электронная почта - это основное средство коммуникаций, то основным способом обмена программным обеспечением и регламентными материалами в Internet стали FTP-архивы.

Содержание работы

Введение
2. Электронная почта в Internet
2.1. Принципы организации
2.2. Протокол SMTP
2.3. Протокол POP3 (Post Office Protocol)
2.4. Формат почтового сообщения (RFC-822)
2.5. Спецификация MIME (Multipurpose Internet Mail Extension)
3. Программное обеспечение почтового обмена
3.1. Программа Sendmail
3.1.1. Настройка программы sendmail
3.1.2. Тестирование обслуживания по протоколу SMTP
3.1.3. Тестирование по протоколу POP3
3.1.4. Протокол IMAP
3.1.5. Тестирование отправки почты программой Sendmail - флаг "-v"
3.1.6. Тестирование правил преобразования адресов

3.2. Доступ к ресурсам Internet через электронную почту
3.2.1. Доступ к ресурсам архивов FTP
3.2.2. Поиск ресурсов посредством Archie
4. Файловые архивы Internet
4.1. Протокол FTP (File Transfer Protocol)
4.2. Режимы обмена данными
4.3. Программное обеспечение доступа к FTP-архивам
4.3.1. Сервер протокола - программа ftpd
4.3.2. Программа обмена файлами - ftp
4.3.3. Поиск в FTP-архивах - программа Archie
Приложения
Приложение 1. Команды протокола SMTP
Приложение 2. Коды возврата SMTP

Содержимое работы - 1 файл

Администрирование почтовых и файловых серверов в Internet.docx

— 345.52 Кб (Скачать файл)

Формат команды  файла настроек sendmail не очень удобен для чтения. В целом его можно  определить следующим образом:

Рис. 3.2. Структура команды  файла настроек sendmail

Теперь разберем более подробно некоторые команды  и секции файла настроек sendmail. Лучше  всего это сделать на основе реального  файла. Начнем с секции описания локальных параметров:

      ##################

      #   local info   #

      ##################

      Cwlocalhost

      CP.

      # 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

Как видно из этого листинга, в данной секции описаны имя данной машины (Cwlocalhost), а также класс машин-шлюзов в  другие почтовые системы (CP....). При этом наращивание класса происходит по мере описания шлюза для каждого из видов почтовых служб. В конце  секции описаны символы, которые  не могут использоваться в качестве имен пользователей или доменов.

Следующая секция - определение макросов sendmail:

      ######################

      #   Special macros   #

      ######################

      # SMTP initial login message

      De$j Sendmail $v/$Z ready at $b

      # UNIX initial From header format

      DlFrom $g  $d

      # my name for error messages

      DnMAILER-DAEMON

      # delimiter (operator) characters

      Do.:%@!^/[]

      # format of a total name

      Dq$?x$x <$g>$|$g$.

      # Configuration version number

      DZ8.6.6

В данной секции описаны сообщения, которые выдает sendmail при взаимодействии с другими  транспортными агентами. Как видно  из этого описания, определение макроса  это не только присваивание значения, но и выполнение определенных действий. Наиболее интересное предложение из всех - предложение, определяющее значение макроса q:

      Dq$?x$x <$g>$|$g$.

Здесь описана  условная подстановка значения. Все  предложение можно описать следующей  фразой:

"Если  значение переменной x установлено, то: q = значение_x <значение_g>, иначе: q=значение_g".

То же самое  можно записать и по-другому:

      if(x!=NULL)

       {

        strcpy(q,x);

        strcat(q," <");

        strcat(q,g);

        strcat(q,">");

        {

      else

       {

        strcpy(q,g);

        }

В данном случае $? соответствует оператору if, $| - else, а $. - конец условного оператора.

Следующая секция - это определение опций:

      ###############

      #   Options   #

      ###############

      # strip message body to

      7 bits on input?

      #O7False

      # Insist that the BIND

      name server be running to resolve names

      OI

      # deliver MIME-encapsulated

      error messages?

      OjTrue

В данном случае приведен только фрагмент этой секции. Большинство параметров общие для всех установок sendmail. Указанные же в листинге параметры являются принципиальными с точки зрения режимов работы sendmail. Первый параметр определяет тот факт, что по почте можно пересылать семибитовую информацию. Согласно RFC-822 информация должна быть семибитовая, но для передачи кириллицы это значит использовать кодирование, что абсолютно не приемлемо. Поэтому данный параметр должен быть закоментарен. В системах, где используется сервер доменных имен, опция I (OI) должна быть установлена, чтобы не было ошибок при идентификации доменов. Последний параметр не является принципиальным, но для целей более понятного представления его следует установить. Если почтовый клиент не поддерживает MIME, то данный параметр следует закоментарить.

Следующие две секции определяют уровень сообщений об ошибках и доверенных пользователей:

      ###########################

      #   Message precedence

      #

      ###########################

      Pfirst-class=0

      Pspecial-delivery=100

      Plist=-30

      Pbulk=-60

      Pjunk=-100

      #####################

      #   Trusted users   #

      #####################

      Troot

      Tdaemon

      Tuucp

За этими двумя  секциями следует секция описания полей заголовка почтового сообщения, который генерируется программой sendmail:

      #########################

      #   Format of headers

      #

      #########################

      H?P?Return-Path: $g

      HReceived: $?sfrom $s

      $.$?_($?s$|from $.$_) $.by $j ($v/$Z)$?r with $r$. id $i$?u for

      $u$.; $b

      H?D?Resent-Date: $a

      H?D?Date: $a

      H?F?Resent-From: $q

      H?F?From: $q

      H?x?Full-Name: $x

      HSubject:

      # HPosted-Date: $a

      # H?l?Received-Date: $b

      H?M?Resent-Message-Id:

      <$t.$i@$j>

      H?M?Message-Id: <$t.$i@$j>

Формат команд данной секции определяет какие поля включаются в заголовок, а какие не включаются. Данная секция тесно связана с секцией определения программ рассылки почты. Если после H нет знака вопроса, то поле включается в заголовок сообщения для любой программы рассылки, если после H символ "?" присутствует, то в строке аргументов программы рассылки данный флаг должен быть определен для того, чтобы данное поле было включено в заголовок. Как следует из приведенного выше описания, всегда включаются только поля Received и Subject. Все перечисленные поля не являются обязательными полями заголовка.

Следующая секция - правила преобразования адресов. Но прежде чем обсуждать ее содержание следует сказать как и когда sendmail эти адреса преобразовывает.

Прежде всего необходимо рассмотреть схему преобразования (рисунок 3.3).

Рис. 3.3. Правила

При получении  почтового сообщения адреса, указанные  в полях To, From, Cc, преобразуются в  соответствии с правилами преобразования.

      ######################################################################

      ######################################################################

      #####

      #####   REWRITING RULES

      #####

      ######################################################################

      ######################################################################

      ###########################################

      ###  Rulset 3 - Name Canonicalization   ###

      ###########################################

      S3

      # handle null input (translate to <@> special case)

      R$@   $@ <@>

      # basic textual canonicalization -- note RFC733 heuristic here

      R$*<$*>$*<$*>$* $2$3<$4>$5   strip multiple <> <>

      R$*<$*<$+>$*>$* <$3>$5    2-level <> nesting

      R$*<>$*   $@ <@>   MAIL FROM:<> case

      R$*<$+>$*  $2   basic RFC821/822 parsing

      # handle list:; syntax as special case

      R$*:;$*   $@ $1 :; <@>

      # make sure <@a,@b,@c:user@d> syntax is easy to parse -- undone later

      R@ $+ , $+  @ $1 : $2 change all "," to ":"

      # localize and dispose of route-based addresses

      R@ $+ : $+  $@ $>96 < @$1 > : $2  handle <route-addr>

      # find focus for list syntax

      R $+ : $* ; @ $+ $@ $>96 $1 : $2 ; < @ $3 > list syntax

      R $+ : $* ;  $@ $1 : $2;   list syntax

      # find focus for @ syntax addresses

      R$+ @ $+  $: $1 < @ $2 >   focus on domain

      R$+ < $+ @ $+ >  $1 $2 < @ $3 >   move gaze right

      R$+ < @ $+ >  $@ $>96 $1 < @ $2 >  already canonical

      # do some sanity checking

      R$* < @ $* : $* > $* $1 < @ $2 $3 > $4  nix colons in addrs 

      # convert old-style addresses to a domain-based address

      R$- ! $+  $@ $>96 $2 < @ $1 .UUCP > resolve uucp names

      R$+ . $- ! $+  $@ $>96 $3 < @ $1 . $2 >  domain uucps

      R$+ ! $+  $@ $>96 $2 < @ $1 .UUCP > uucp subdomains

      # if we have % signs, take the rightmost one

      R$* % $*  $1 @ $2    First make them all @s.

      R$* @ $* @ $*  $1 % $2 @ $3   Undo all but the last.

      R$* @ $*  $@ $>96 $1 < @ $2 >  Insert < > and finish

      # else we must be a local name

      ################################################

      ###  Ruleset 96 - bottom half of ruleset 3   ###

      ################################################

      #  At this point, everything should be in a "local_part<@domain>extra" format.

      S96

      # handle special cases for local names

      R$* < @ localhost > $*  $: $1 < @ $j . > $2  no domain at all

      R$* < @ localhost . $m > $* $: $1 < @ $j . > $2  local domain

      R$* < @ localhost . UUCP > $* $: $1 < @ $j . > $2  .UUCP domain

      R$* < @ [ $+ ] > $*  $: $1 < @@ [ $2 ] > $3  mark [a.b.c.d]

      R$* < @@ $=w > $*  $: $1 < @ $j . > $3  self-literal

      R$* < @@ $+ > $*  $@ $1 < @ $2 > $3  canon IP addr

      # pass UUCP addresses straight through

      R$* < @ $+ . UUCP > $*  $@ $1 < @ $2 . UUCP . > $3

      # pass to name server to make hostname canonical

      R$* < @ $* $~P > $*  $: $1 < @ $[ $2 $3 $] > $4

      # local host aliases and pseudo-domains are always canonical

      R$* < @ $=w > $*  $: $1 < @ $2 . > $3

      R$* < @ $* $=P > $*  $: $1 < @ $2 $3 . > $4

      R$* < @ $* . . > $*  $1 < @ $2 . > $3

      # if this is the local hostname, make sure we treat is as canonical

      R$* < @ $j > $*   $: $1 < @ $j . > $2

      ##################################################

      ###  Ruleset 4 - Final Output Post-rewriting   ###

      ##################################################

      S4

      R$*<@>   $@ $1   handle <> and list:;

      # strip trailing dot off possibly canonical name

      R$* < @ $+ . > $* $1 < @ $2 > $3

      # externalize local domain info

      R$* < $+ > $*  $1 $2 $3   defocus

Информация о работе Администрирование почтовых и файловых серверов в Internet