|
||||||||||||
Настройка сетиИтак, с работой сети в Linux Мефодий немного познакомился, однако то, как эту сеть использовать для личных нужд, понятнее не стало. Предже всего: как приучить имеющийся компьютер пользоваться имеющейся локальной сетью? Настройка вручнуюПервая мысль — настроить сетевые интерфейсы вручную. Это довольно просто, если знать полагающиеся при настройке данные: IP-адрес самого компьютера, IP-адрес маршрутизатора по умолчанию и адрес сервера доменных имён. Задать IP-адреса интерфейсам Мефодий заметил, что две записи в таблице маршрутизации уже были до
выполнения команды Тем не менее служба доменных имён пока не работает: необходимо заполнить файл
Последнюю команду присоветовал Гуревич. Дело в том, что подсистему,
работающую с DNS, нередко «сажают в песочницу», то есть переносят в отдельный
каталог, в котором выполняется Настройка при установке или загрузке системыМефодий очень обрадовался заработавшей сети и немедленно принялся сочинять
простейший стартовый сценарий, который выполнял бы все нужные команды
автоматически. Выяснилось, что такой сценарий уже есть в любом дистрибутиве
Linux, хотя называться он может по-разному, как правило,
Безусловно, ни список сетевых интерфейсов, ни параметры их настройки не
указаны в самом стартовом сценарии, как то хотел сделать Мефодий. Всевозможные
сетевые настройки хранятся в За сеть непоседствено отвечают файл
Как правило, пользователю вообще не обязательно редактировать эти файлы. С каждым дистрибутивом поставляется программа-конфигуратор, которая позволяет «настроить сеть», не вспоминая, какие данные, в каком формате и куда нужно записывать. Обычно такая программа оформляется в стиле мастера, «кудесника», задающего только вопросы по существу, с её помощью и формируются более или менее подходящие конфигурационные файлы. Результатов работы мастера в большинстве случаев бывает достаточно, а в тех случаях, когда его искусственный интеллект пасует, администратор применяет свой естественный интеллект и редактор Vim. С другой стороны, изменить несколько значений в трёх конфигурационных файлах не так уж сложно. Когда настройщик действительно необходим — это во время установки системы на компьютер или непосредственно после неё. Настраивать приходится сразу всё в системе, так что любая экономия времени при этом существенна. В некоторых дистрибутивах используется схема Автоматическая настройкаПрограмма-настройщик регулярно предлагала Мефодию «настроить сеть автоматически». В режиме автоматической настройки практически не запрашивается данных у пользователя. Это значит, что данные система должна брать откуда-то ещё, видимо, со специального сервера в локальной сети. Запрашивать сетевые настройки с сервера вместо того, чтобы хранить их на каждом компьютере, довольно удобно. В самом деле: один сервер, один администратор, один файл с общими настройками. Более того, можно вообще не хранить персональных настроек для каждого компьютера в сети, а ограничиться настройками групповыми, лишь бы IP-адреса внутри группы различались. Одним из первых был разработан протокол RARP (reverse ARP), который, как следует из названия, занимается преобразованием, обратным ARP: по интерфейсному адресу компьютер узнаёт у сервера сетевой. В ethernet-сетях для этого посылается широковещательный ethernet-фрейм типа «RARP-запрос», который означает «Вот мой MAC-адрес. Кто-нибудь, дайте мне IP!». На что специальная программа-сервер отвечает RARP-ответом «Вот тебе IP!» — фреймом, содержащим IP-адрес, который сервер нашёл в своей таблице. Если в сети нет ни одного RARP-сервера или ни в одном из них не зарегистрирован интерфейсный адрес компьютера-клиента, тот останется без IP. Похожую схему использует и протокол BOOTP, применяющийся для сетевой загрузки компьютеров. Предполагается, что, получив IP-адрес, клиент заберёт с сервера (по протоколу TFTP, trivial FTP) некий файл, загрузит его в память и передаст управление. Поэтому в BOOTP передаётся не только IP-адрес клиента, но и IP-адреса TFTP-сервера и маршрутизатора по умолчанию и имя файла-загрузчика. В современных сетях чаще всего используется протокол DHCP
(Dynamic Host Configure
Protocol, протокол динамической настройки сетевых абонентов).
Он имеет очень широкие возможности: с сервера можно получить IP-адрес, сетевую
маску и широковещательный адрес, имя домена, адреса маршрутизатора и серверов
доменных имён, а также великое множество других параметров, вплоть до не
предусмотренных в DHCP явно, так что их тип задаётся обычным числом, а
интерпретация значения целиком определяется клиентом. Урезанную часть DHCP
поддерживают «умные» сетевые устройства (те, что снабжены BootROM, т. е. ПЗУ с
загрузочной программой). Но полностью обрабатывать все поля DHCP умеет
специальный демон-клиент. В Linux этот демон называется Так что всё, что Мефодий делал вручную или вписывал в настроечный файл, можно
получить «за просто так», если в сети работает DHCP-сервер:
Наконец, чтобы избавиться и от этой ручной работы, можно перенастроить
Настройка соединений «точка–точка»Если компьютер стоит дома, далеко не всегда есть возможность подключиться к локальной сети, непосредственно граничащей с Internet. Для передачи небольших сообщений чаще всего используется временное подключение посредством телефонной линии. На обеих сторонах линии устанавливается модем — устройство, преобразующее один формат сигнала в другой. На российских телефонных линиях обычно использутся аналоговые модемы, способные обмениваться данными по довольно низкокачественным линиям с большой долей помех и относительно неискажённой передачей сигнала только в диапазоне слышимых звуковых частот. За низкое качество канала приходится расплачиваться низкой скоростью передачи данных: на таких модемах она до сих пор не превышает (после отбрасывания служебной информации, ошибок и прочего) трёх-четырёх килобайтов в секунду, а в действительности бывает раза в два меньше. Соединение между двумя устройствами, вообще говоря, не сетевыми, а только способными передавать данные, описывается несколькими протоколами. Самый распространённый из них — PPP (Point-to-Point Protocol, протокол «точка–точка») — решает задачи, возникающие в силу особенностей соединений «точка–точка». Во-первых, само участвующее в соединении устройство почти никогда не представлено в виде сетевого интерфейса, потому что не обладает нужными для организации сети свойствами. Это значит, что какая-то часть системы (скорее всего, демон) будет разговаривать с устройством на понятном ему языке, а с пользовательскими утилитами взаимодействовать посредством специально организованного виртуального сетевого интерфейса. Во-вторых, нет необходимости поддерживать часть интерфейсного
протокола: абонента на среде передачи данных два, никакой идентификации не
требуется, потому что каждый может отличить себя от не-себя. Так, виртуальный
сетевой интерфейс В-третьих, оттого, что соединение не постоянное, а среда за время, пока абоненты не были связаны, могла измениться до неузнаваемости, обеим сторонам приходится при каждом дозвоне идентифицировать себя. Обычно идентифицируется только сторона, которой предоставляется доступ в сеть, но проверять, до правильного ли места мы дозвонились, тоже не мешает. При установлении соединения «точка–точка» процедуры идентификации проходят после того, как появляется возможность передавать данные, но до всякой сетевой настройки. Мало того, данные по настройке сети (аналогичные тем, что используются в DHCP) также передаются на этом этапе взаимодействия по протоколу PPP. В силу того, что дозвон нужен пользователям самого разного уровня знаний, для
PPP написано множество программ-«звонилок», использующих графическую подсистему,
со звуками и прочими не относящимися к делу украшениями. Пример такой
программы — Что совсем уже просто для пользователя, так это утилита Установить PPP-соединение можно поверх любой среды передачи данных,
в том числе и поверх локальной сети. В этом случае Межсетевой экранВ Linux существует мощный механизм анализа сетевых и транспортных пакетов,
позволяющий избавляться от нежелательной сетевой активности, манипулировать
потоками данных и даже преобразовывать служебную информацию в них. Обычно такие
средства носят название «firewall» («fire wall» — противопожарная стена,
брандмауэр), общепринятый русский термин — межсетевой
экран. В более старых версиях межсетевого экрана Linux использовался
вариант межсетевого экрана Суть Между каждыми из этих действий системы помещается модуль межсетевого экрана,
именуемый цепочкой. Цепочка обрабатывает пакет, исследуя,
изменяя и даже, возможно, уничтожая его. Если пакет уцелел, она передаёт его
дальше по конвейеру. В этой стройной схеме есть два исключения. Во-первых, ядро
Linux даёт доступ к исходящему пакету только после принятия решения о
его маршрутизации, поэтому связка «взять — маршрутизировать» остаётся
необработанной, а цепочка, обрабатывющая исходящие пакеты (она называется
В варианте Из сказанного выше следует, что действия Для просмотра правил во всех таблицах всех цепочек ФильтрацияМефодйий озаботился судьбой «календарного сервера», изобретённого им на
прошлой лекции. Как уже было замечено, он запустил этот сервис на порту 26000,
используемом популярной сетевой компьютерной игрой, что может помешать игрокам.
Поэтому Мефодий решил запретить обращение к 26000-му порту отовсюду, кроме самой
машины, то есть со всех интерфейсов, кроме Подмена адресовЕсли в некоторой сети используются адреса из описанного стандартом RFC1918
внутреннего диапазона (например, из сети Допустим, абоненты с адресом На помощь приходит знание TCP! Как известно, TCP-соединение идентифицируется шестью параметрами: IP-адресами отправителя и получателя, портами на отправителе и получателе и номерами последовательности (SEQN) входящего и исходящего потока данных. В нашей схеме межсетевой экран обязательно заменяет IP-адреса одним, поэтому у двух принятых пакетов они совпадают. А вот с четырьмя оставшимися параметрами он волен поступать, как заблагорассудится: в любом случае каждому из сеансов должны соответствовать разные SEQN и разные номера исходящих портов. Осталось только держать в памяти таблицу соответствия TCP-соединений из внутренней сети TCP-соединениям во внешнюю сеть. Этот механизм носит название «преобразование сетевых адресов»
(Network Adress Translation,
NAT). Следует помнить, что чем больше транспортных соединений отслеживается
межсетевым экраном, тем больше требуется оперативной памяти ядру Linux и тем
медленнее работает процедура сопоставления проходящих пакетов таблице. Впрочем,
мощности современных компьютеров позволяют без каких-либо затруднений
обслуживать преобразование адресов для сети с пропускной способностью 100Мбит/с
и даже выше. В Преобразование адресов работает не только для TCP-соединений, но и для многих
других протоколов, где возможно отследить либо настоящего адресата на внутренней
сети, либо идентификатор сеанса связи. Например, ICMP-пакет команды
Конечно, фильтрацией и маскарадом функции Сетевые службыЭта часть лекции — обзорная. Поскольку, с одной стророны, толковое и последовательное объяснение устройства многочисленных сетевых служб Linux требует, по крайней мере, отдельного курса лекций, а с другой стороны — хорошей теоретической и практической подготовки слушателя. Так что придётся ограничиться поверхностным описанием наиболее востребованных для личного или домашнего пользования сервисов. Стоит заранее отметить, что описываемые задачи, как правило, могут решаться несколькими путями с помощью различных демонов или утилит, по-разному выполняющих одну и ту же работу. У администратора Linux всегда есть свобода выбора! HTTPМефодий, конечно, знает, что Internet, как глобальная сеть компьютров служит хранилищем глобальной сети документов под общим название WWW (World Wide Web, «Всемирная Паутина»). Связь между документами в Паутине обеспечивается за счёт особого — гипертекстового — формата этих документов. Большинство из них написаны на специальном языке гипертекстовой разметки, htm (HyperText Markup Language) или его диаклектах и расширениях. Гипертекст может содержать ссылки на любые другие документы в Паутине. Формат такой ссылки описывается стандартом URL (Universal Resource Locator, всеобщий указатель ресурсов). Всемирность сети htm-документов образовалась за счёт удобства доступа к ним: огромное число абонентов Internet предоставляют возможность просмотра этих документов по специальному протоколу HTTP (HyperText Transfer Protocol), и ещё болшее число (фактически, каждый компьютер) запускают клиентские программы-навигаторы (или «броузеры», от англ. «browse», «просматривать»), позволяющие легко «переходить по ссылке», т. е. начинать просмотр документа, на который в выбранном месте ссылался исходный. Сами документы при этом принято называть WWW-страницами, или просто страницами. Apache — HTTP-сервер, обладающий самым большим набором возможностей.
Учитывая организованный в нём механизм подключаемых модулей
(plug-ins), создавать которые может любой грамотный программист, описать умения
Apache полностью, видимо, невозможно. Документация по одним только стандартным
его возможностям занимает более 50 тысяч строк. Конфигурационные файлы Apache
хранятся в
Пользователь, набравший в броузере
« Если настройку каталога Важное свойство WWW-серверов — поддержка т. н. динамических WWW-страниц.
Динамическая WWW-страница не хранится на диске в том виде, в котором её получает
пользователь. Она создаётся — возможно, на основании какого-то
шаблона — напросредственно после запроса со стороны броузера. Никаких
особенных расширений протокола HTTP при этом можно не вводить, просто сервер
получает запрос на WWW-страницу, которой не соответствует ни один файл. Зато
HTTP-адрес (точнее говоря, URL) этой страницы распознаётся сервером как
динамический и передаётся на обработку выделенной для этого программе. Программа
генерирует текст в формате htm, который и передаётся пользователю в качестве
запрошенной страницы. В примере для этого используется каталог
Как и многие другие прикладные протоколы, HTTP был и остаётся текстовым. При
желании можно выучить команды HTTP и получать странички с серверов с помощью
Несмотря на то, что Apache решает практически любые задачи, связанные с
организацией WWW-страниц, есть, конечно, и области, где его применение
нежелательно или невозможно. Если, например, задача WWW-сервера — отдавать
десяток-другой статически оформленных страниц небольшому числу клиентов,
запускать для этого Apache — как стрелять из пушки по воробьям. Лучше
воспользоваться сервером FTPВ Linux существует несколько вариантов службы, предоставляющей доступ к
файлам по протоколу FTP (File Transfer
Protocol). Как правило, они отличаются друг от друга сложностью
настроек, ориентированных на разные категории абонентов, подключающихся к
серверу. Если выбор предоставляемых в открытый доступ данных велик, будет велик
и наплыв желающих эти данные получить («скачать»), так что возникает
естественное желание этот наплыв ограничить. При этом, допустим, компьютеры из
локльной сети могут неограниченно пользоваться файловыми ресурсами сервера,
соединений из того же города или в пределах страны должно быть не более двух
десятков одновременно, а соединений из-за границы — не более пяти. Такие
ухищрения бывают нужны нечасто, но и они поддерживаются большинством
FTP-демонов, вроде FTP — по-своему очень удобный протокол: он разделяет поток команд и поток собственно данных. Дело в том, что команды FTP обычно очень короткие, и серверу выгоднее обрабатывать их как можно быстрее, чтобы подолгу не держать ради них (часто — ради одной команды) открытое TCP-соединение. А вот файлы, передаваемые с помощтю FTP обычно большие, поэтому задержка при передаче в несколько долей секунды, и даже в пару секунд, не так существенна, зато играет роль пропускная способность канала. Было бы удобно, если бы для передачи команд использовался «быстрый, но тонкий» канал (т. е. среда передачи данных с малым временем отклика и небольшой пропускной способностью, например, наземное оптоволокно), а для передачи данных — «медленный, но толстый» (например, спутниковая магистраль). Для того, чтобы эти каналы было проще различить, данные в FTP пересылаются по инициативе сервера, что означает, что именно сервер подключается к клиенту, а не наоборот. Делается это так: клиент подключается к 20-му порту сервера (управляющий порт FTP) и передаёт ему команду: «Хочу такой-то файл. Буду ждать твоего ответа на таком-то (временно выделенном) порту». Сервер подключается со своего 21-го порта (порт данных FTP) к порту на клиенте, указанном в команде, и пересылает содержимое запрошенного файла, после чего связь по данным разрывается и клиент перестаёт обрабатывать подключения к порту. Трудности начинаются, когда FTP-кленит находится за межсетевым экраном. Далеко не каждый администратор согласится открывать доступ из любого места Internet к любому абоненту внутренней сети по любому порту (пускай даже и с порта 21)! Да это и не всегда просто, учитывая подмену адресов. Для того, чтобы FTP работал через межсетевой экран, придумали протокол Passive FTP. В нём оба сеанса связи — и по командам, и по данным — устанавливает клиент. При этом происходит такой диалог. Клиент: «Хочу такой-то файл. Но пассивно». Сервер: «А. Тогда забирай его у меня с такого-то порта». Клиент подключается к порту сервера и получает оттуда содержимое файла. Если со стороны сервера тоже находится бдительный администратор, он может не разрешить подключаться любому абоненту Internet к любому порту сервера. Тогда не будет работать как раз Passive FTP. Если и со стороны клиента, и со стороны сервера есть по бдительному системному администратору, никакой вариант FTP не поможет. Ещё один недостаток протокола FTP: в силу двухканальной природы его трудно «затолкать» в SSL-соединение. Поэтому идентификация пользователя, если таковой имеется, в большинстве случаев идёт открытым текстом. Мефодий тут же вспомнил про своего приятеля, который сначала завёл себе где-то в Сети бесплатную WWW-страницу, файлы на которую надо было передавать по FTP, а потом отказался от этой затеи: с утомительным постоянством кто-то под завязку набивал эту страничку сомнительного вида архивами и программами. Несмотря на то, что для FTP подходит другой механизм шифрования, называемый TLS, далеко не все FTP-клиенты его поддерживают, и он оказывается не востребован на серверах. Поэтому рекомендуется использовать службу FTP только для огранизации архивов публичного доступа. Терминальный доступТекстовый интерфейс позволяет пользователю Linux работать на компьютере
удалённо с помощью терминального клиента. Весьма удобно, находясь
далеко от компьютера, управлять им самым естественным способом, с помощью
командной строки. Препятствий этому немного: объём передаваемых по сети данных
крайне невелик, ко времени отклика в полсекунды вполне можно привыкнуть, а если
оно меньше десятой доли секунды, то задержка и вовсе не мешает. Что необходимо
соблюдать строго, так это шифрование учётных записей при подключении к
удалённому компьютеру, а на самом деле, и самого сеанса терминальной связи, так
как в ним вполне может «засветиться» пароль: например, пользователь
заходит на удалённый компьютер и выполняет команду Как уже говорилось в этих лекциях, сначала для терминального доступа
использовался протокол TELNET и соответствующая пара клиент-сервер
Упрощённо метод «асимметричных ключей» можно описать так. Используется алгоритм, при котором специальным образом выбранный пароль для шифрования данных не совпадает с соответствующим ему паролем для их расшифровки. Более того, зная любой один из этих паролей, никак нельзя предугадать другой. Некто, желая, чтобы передаваемые ему данные нельзя было подсмотреть, раздаёт всем желающим шифрующий пароль со словами: «будете писать мне — шифруйте этим», т. е. делает этот пароль открытым. Дешифрующий пароль он хранит в строгой тайне, никому не открывая. В результате зашифровать данные его паролем может любой, а расшифровать (что и значит — подглядеть) — может только он. Цель достигнута. Тот же принцип используется для создания т. н. электронной подписи, помогающей иднтифициорвать данные, то есть определить их автора. На этот раз открытым делается дешифрующий ключ (конечно, не тот, о котором только что шла речь, а ещё один). Тогда любой, получив письмо и расшифровав его, может быть уверен, что это письмо написал этот автор — потому что шифрующим ключом не владеет больше никто. Здесь уместно сделать два замечания. Во-первых, алгоритмы шифрования с асимметричными ключами весьма ресурсоёмки, поэтому в Secure Shell (и упомянутом ранее SSL) они используются только на начальном этапе установления соединения. Обмен данными шифруется симметричным ключом, но, поскольку сам этот ключ был защищён асимметричным, соединение считается надёжным. Во-вторых этот кажущийся надёжным алгоритм имеет серьёзный изъян, с которым, впрочем, нетрудно справиться. Опасность таится в самом начале: как, получив от товарища открытый ключ, удостовериться, что этот ключ действительно ему принадлежит? А вдруг на пути от товарища ключ был перехвачен злоумышленником, и до нас дошёл уже его, злоумышленника, открытый ключ? Мы легкомысленно шифруем наши данные этим ключом, злоумышленник переватывает их на обратном пути, просматривает их (только он и может это сделать, так как подсунул нам свой шифрующий пароль), и обманывает таким же манером товарища, притворяясь на этот раз нами. Такая уязвимость называется «man-in-the-middle» (дословно «человек-посередине»), всоего рода «испорченный телефон». Есть два способа борьбы с ней. Первый: не доверять никаким открытым ключам, кроме тех, которые получил лично от товарища. Если с товарищем вы незнакомы, можете попросить у него удостоверение личности: а вдруг он всё-таки злоумышленник? Второй способ: получить от товарища открытый ключ несколькими независимыми путями. В этом случае подойдёт т. н. «отпечаток пальца» (fingerprint) — получаемая из ключа контрольная сумма такого размера, что подделать её ещё невозможно, но уже нетрудно сравнить с этой же контрольной суммой, размещённой на WWW-странице или присланной по электронной почте. Пересылка почтыЕщё один немаловажный сервис, отлично поддерживаемый в Linux, — пересылка электронной почты. Протокол SMTP (Simple Mail Transfer Protocol), задающий порядок пересылки почты, впервые был описан и помещён в RFC в самом начале 80-х годов. С тех пор он неоднократно модифицировался, однако в основе своей остался прежним: SMTP — это протокол передачи текстовых сообщений, снабжённых вспомогательными заголовками, часть из которых предназначена для почтового сервера, передающего сообщения, а часть — для почтового клиента, с помощью которого пользователь просматривает эти сообщения.
В качестве адреса в электронном письме обычно используется сочетание
Иногда необходимо, чтобы сервер принимал письма, не предназначенные для зарегистрированных на нём пользователей. Эти письма немедленно помещаются в очередь на отправку, и пересылаются дальше. Такой режим работы сервера называется «relay» (пересыльщик). Когда-то все почтовые сервера работали в режиме «open relay», т. е. соглашались пересылать почту откуда угодно куда угодно. К сожалению, этим немедленно стали пользоваться желающие подзаработать массовой рассылкой рекламы (т. е. «спамом»). Поэтому открытые пересыльшики сегодня запрещены RFC. Однако как минимум в трёх случаях сервер имеет право работать пересыльщиком: если он пересылает почту от абонента обслуживаемой сети, если письмо адресовано в обслуживаемый домен или его поддомен, и если письмо исходит непосредственно от почтового клиента пользователя, который предварительно каким-нибудь способом идентифицировался в системе (например, с помощью разработанного для этого расширения SMTPAUTH). Во всех трёх случаях ответственность за возможные злоупотребления почтовым сервисом возглагается на администратора сервера, так как он имеет возможность отыскать провинившегося пользователя. В Linux существует несколько различных почтовых серверов. Во-первых,
Sendmail, корифей почтового дела, возникший вместе с SMTP. Возможности этого
сервера весьма велики, однако воспользоваться ими в полной мере можно только
после того, как научшься понимать и исправлять содержимое
конфигурационного файла Другой вариант почтового сервера, Postfix, весьма гибок в настройке,
прекрасно подходит для почтовых серверов размера предприятия, и, в отличие от
Sendmail, более прозрачно спроектирован и написан. Он поддерживает все хитрости,
необходимые современной почтовой службе: виртуальных пользователей, виртуальные
домены, подключаемые антивирусы, средства борьбы со спамом и т. п. Настройка его
хорошо документирована, в том числе и с помощью комментариев в конфигурационном
файле (как правило, Стоит упомянуть ещё как минимум три почтовых службы: QMail — по мнению многих, этот демон наиболее защищён и от атак со стороны, и от возможных и несуществующих ошибок в собственных исходных текстах; Exim — как наиболее гибкий в настройках (в том числе и пока не реализованных); и ZMailer, предназначенный для работы на больших и очень больших серверах, выполняющих, в-основном, работу по пересылке. Доступ к почтовым ящикамЭлектронная почта нужна далеко не только тем, кто имеет терминальный доступ Linux-машине. Доступ к почтовому ящику на сервере не должен зависеть от того, есть ли у данного пользователя право запускать на этом сервере какие-то программы. Для этого необходимо организовать специальную службу, предоставляющую пользователю только возможность манипулировать сообщениями в своём ящике с помощью программы-клиента. Самые популярные протоколы доступа к ящикам — POP3 (Post Office Protocol версии 3) и IMAP4 (Internet Message Access Protocol версии 4). POP3 — довольно простой протокол, в нём определён единственный почтовый ящик пользователя, где тот может посмотреть список заголовков сообщений, прочитать (скачать) некоторые из них и удлалить некоторые из них. Такой протокол удобен, когда пользователь хранит всю переписку на своём компьютере, а удалённый почтовый ящик служит исключительно для приёма входящей почты. Протокол IMAP4 гораздо сложнее: в нём разрешено заводить несколько ящиков на сервере, в том числе и вложенных подобно каталогам. Каждый их этих ящиков может обладать особыми свойствами: может быть входящим (тогда пользователь уведомляется о новых поступлениях в этот ящик), мусорной корзиной (сообщения из которой удаляются после того, как устареют), и даже быть исходящим (в такой ящик пользователь складывает новые письма, а сервер их через некоторое время отсылает, удаляя оттуда). IMAP4 подходит для ситуации, когда пользователь не имеет возможности хранить свою переписку и/или обрабатывать её с одного и того же компьютера, поэтому хранит её в ящиках на сервере. IMAP4 используют и в качестве «движка» т. н. WEB-почты, этого заменителя почтовых клиентов для торопливых. В большинстве случаев с помощью одного и того же почтового клиента можно и просматривать электронные письма в ящиках, и создавать новые письма, и отсылать их. Это сделано для удобства пользователя, однако стоит понимать, что общее у этих трёх действий — только формат сообщения. Строго говоря, при доступе к почтовому ящику совершенно неважно, каким путём там оказалось письмо, а при пересылке почты никак не определяет, каким способом пользователь будет её читать. Что касается написания письма — чьё же это дело, как не текстового редактора? Как водится, в Linux есть несколько IMAP/POP-серверов. Наиболее мощный из
них — Cyrus (его авторы участвовали в расзработке протокола IMAP4), в нём
поддерживается больше всего дополнений и расширений IMAP, которые бывает удобно
использовать, наиболее простой — UW-IMAP, разрабатываемый в университете
штата Вашингтон. UW-IMAP вообще не имеет конфигурационного файла: пользователи,
пароли, входящие почтовые ящики и домашние каталоги для личных почтовых ящиков
берутся системные (при этом вместо командного интерпретатора почтовому
пользователью можно выдать Протоколы POP3 и IMAP4, как и многие другие, — текстовые. Как и в большинстве других протоколов, это порождает проблему передачи пароля в открытом виде. Решается она так же, как и для других протоколов — «заворачиванием» всего сеанса в SSL (порту 110–POP3 соответствует порт 995–POP3S, а порту 143–IMAP4 — 993–IMAPS), либо использование внутрисеансового шифрования с помощью TLS. Кроме того, в протоколе POP3 есть и собственное расширение, APOP, решающее ту же задачу. Здесь Мфодий опять вспомнил своего незадачливого приятеля: чтобы не сильно задумываться, тот всегда испльзовал один и тот же пароль, в том числе и для доступа к почте по протоколу POP3 безо всяких SSL/TLS/APOP... Увы, и эта беззаботность ему даром не прошла: однажды его учётной записью кто-то воспользовался для отсылки почты с помощью SMTPAUTH. Конечно же, это оказался спам, и приятель ещё долго расхлёбывал неприятности. 1Конечно, сами файлы при этом должны быть исполняемыми. 2Точнее, потенциальной ненадёжностью, так как все перечисленные службы, конечно, тоже работают исправно. |
||||||||||||
Новости сайта Антивирус |
Дизайн: Alex