108.3 Урок 1
Сертифікат: |
LPIC-1 |
---|---|
Версія: |
5.0 |
Розділ: |
108 Основні системні служби |
Тема: |
108.3 Основи Mail Transfer Agent (MTA). |
Урок: |
1 з 1 |
Вступ
В Unix-подібних операційних системах, таких як Linux, кожен користувач має свою власну папку вхідні: спеціальне місце у файловій системі, яке недоступне для інших користувачів без root-прав і зберігає особисті повідомлення електронної пошти користувача. Нові вхідні повідомлення додаються до папки «Вхідні» користувача за допомогою Mail Transfer Agent (MTA). MTA — це програма, що працює як системна служба, яка збирає повідомлення, надіслані іншими локальними обліковими записами, а також повідомлення, отримані з мережі, надіслані з облікових записів віддалених користувачів.
Цей же MTA також відповідає за надсилання повідомлень у мережу, якщо адреса призначення відноситься до віддаленого облікового запису. Це робиться за допомогою розташування файлової системи як електронної скриньки вихідних повідомлень для всіх користувачів системи: щойно користувач розміщує нове повідомлення в папці вихідних повідомлень, MTA ідентифікує цільовий мережевий вузол за доменним іменем, указаним адресою електронної пошти призначення, частина після знака @
, і тоді він спробує передати повідомлення до віддаленого MTA за допомогою Simple Mail Transfer Protocol (SMTP). SMTP розроблено з урахуванням ненадійних мереж, тому він намагатиметься встановити альтернативні маршрути доставки, якщо основний вузол призначення пошти недоступний.
Локальний і віддалений MTA
Традиційні облікові записи користувачів на машинах, підключених до мережі, разом складають найпростіший сценарій обміну електронною поштою, де кожен вузол мережі запускає власний демон MTA. Для надсилання та отримання повідомлень електронної пошти не потрібне інше програмне забезпечення, окрім MTA. Однак на практиці більш поширеним є використання віддаленого облікового запису електронної пошти без активної локальної служби MTA (тобто натомість для доступу до віддаленого облікового запису використовується клієнтська програма електронної пошти).
На відміну від локальних облікових записів, обліковий запис віддаленої електронної пошти, також званий віддаленою поштовою скринькою, вимагає автентифікації користувача, щоб надати доступ до поштової скриньки користувача та до віддаленого MTA (у цьому випадку назвемо його просто SMTP-сервер). У той час як користувач, який взаємодіє з локальною папкою «Вхідні» та MTA, вже ідентифікований системою, віддалена система повинна перевірити особу користувача перед обробкою його повідомлень через IMAP або POP3.
Note
|
Зараз найпоширенішим способом надсилання та отримання електронної пошти є обліковий запис, розміщений на віддаленому сервері, наприклад, централізований сервер електронної пошти компанії, на якому розміщені облікові записи всіх співробітників, або особиста служба електронної пошти, наприклад Gmail Google. Замість того, щоб збирати локально доставлені повідомлення, клієнтська програма електронної пошти підключатиметься до віддаленої поштової скриньки та отримуватиме повідомлення звідти. Для отримання повідомлень із віддаленого сервера зазвичай використовуються протоколи POP3 та IMAP, але також можуть використовуватися інші нестандартні власні протоколи. |
Коли демон MTA працює в локальній системі, локальні користувачі можуть надсилати електронні листи іншим локальним користувачам або користувачам на віддаленій машині, за умови, що в їхній системі також є служба MTA, яка приймає мережеві підключення. TCP-порт 25 є стандартним портом для зв’язку SMTP, але можуть використовуватися й інші порти залежно від схеми автентифікації, яка використовується, та/або схеми шифрування (якщо така є).
Залишаючи осторонь топології, що передбачають доступ до віддалених поштових скриньок, мережа обміну електронною поштою між звичайними обліковими записами користувачів Linux може бути реалізована, якщо всі вузли мережі мають активний MTA, який здатний виконувати наступні завдання:
-
Вести чергу вихідних повідомлень для надсилання. Для кожного повідомлення в черзі локальний MTA оцінюватиме MTA призначення за адресою одержувача.
-
Спілкуватися з віддаленими демонами MTA за допомогою SMTP. Локальний MTA повинен мати можливість використовувати простий протокол передачі пошти (SMTP) через стек TCP/IP для отримання, надсилання та перенаправлення повідомлень від/до інших віддалених демонов MTA.
-
Підтримувати окрему папку «Вхідні» для кожного локального облікового запису. MTA зазвичай зберігає повідомлення у форматі mbox: один текстовий файл, що містить усі повідомлення електронної пошти послідовно.
Зазвичай адреси електронної пошти вказують доменне ім’я як місцезнаходження, наприклад, lpi.org
в info@lpi.org
. У цьому випадку MTA відправника надсилатиме запит до служби DNS щодо відповідного запису MX. Запис DNS MX містить IP-адресу MTA, що обробляє електронну пошту для цього домену. Якщо той самий домен має більше ніж один запис MX, указаний у DNS, MTA має спробувати зв’язатися з ними відповідно до їхніх пріоритетів. Якщо адреса одержувача не вказує ім’я домену або домен не має запису MX, то частина після символу @
розглядатиметься як хост цільового MTA.
Аспекти безпеки повинні бути враховані, якщо хости MTA будуть видимі для хостів в Інтернеті. Наприклад, невідомий користувач може використати локальний MTA, щоб видати себе за іншого користувача та надіслати потенційно шкідливі електронні листи. MTA, який сліпо передає електронну пошту, відомий як відкритий ретранслятор, коли його можна використовувати як посередника для потенційного маскування справжнього відправника повідомлення. Щоб запобігти таким зловживанням, рекомендується приймати з’єднання лише з авторизованих доменів і застосовувати безпечну схему автентифікації.
До того ж, існує багато різних реалізацій MTA для Linux, кожна з яких зосереджена на певних аспектах, таких як сумісність, продуктивність, безпека тощо. Тим не менш, усі MTA дотримуватимуться однакових основних принципів і надаватимуть подібні функції.
MTA для Linux
Традиційним MTA, доступним для систем Linux, є Sendmail, дуже гнучкий MTA загального призначення, який використовується багатьма Unix-подібними операційними системами. Іншими поширеними MTA є Postfix, qmail і Exim. Основною причиною вибору альтернативного MTA є полегшення впровадження розширених функцій, оскільки налаштування користувацьких серверів електронної пошти в Sendmail може бути складним завданням. Крім того, кожен дистрибутив може мати свій бажаний MTA із попередньо визначеними параметрами, які відповідають найбільш поширеним налаштуванням. Усі MTA призначені для заміни Sendmail, тому всі програми, сумісні з Sendmail, повинні працювати незалежно від того, який MTA використовується.
Якщо MTA працює, але не приймає мережеві підключення, він зможе доставляти повідомлення електронної пошти лише на локальній машині. Для MTA sendmail
файл /etc/mail/sendmail.mc
слід змінити, щоб приймати нелокальні підключення. Для цього запис
DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, Name=MTA')dnl
потрібно змінити на правильну мережеву адресу та перезапустити службу. Деякі дистрибутиви Linux, наприклад Debian, можуть пропонувати інструменти конфігурації, які допомагають запустити сервер електронної пошти з попередньо визначеним набором функцій, які часто використовуються.
Tip
|
Через проблеми безпеки більшість дистрибутивів Linux не встановлюють MTA за замовчуванням. Щоб перевірити приклади, наведені в цьому уроці, переконайтеся, що на кожній машині запущений MTA і що вони приймають з’єднання через TCP-порт 25. З метою безпеки ці системи не повинні піддаватися впливу вхідних з’єднань із загальнодоступного Інтернету під час тестування. |
Коли MTA запущено та приймає з’єднання з мережею, нові повідомлення електронної пошти передаються йому за допомогою команд SMTP, які надсилаються через з’єднання TCP. Команда nc
, мережева утиліта, яка читає та записує загальні дані в мережі, може використовуватися для надсилання команд SMTP безпосередньо до MTA. Якщо команда nc
недоступна, її буде встановлено з пакетом ncat або nmap-ncat, залежно від системи керування пакунками, яка використовується. Написання команд SMTP безпосередньо в MTA допоможе вам краще зрозуміти протокол та інші загальні концепції електронної пошти, але це також може допомогти діагностувати проблеми в процесі доставки електронної пошти.
Якщо, наприклад, користувач emma
на хості lab1.campus
хоче надіслати повідомлення користувачеві dave
на хості lab2.campus
, тоді вона може використати команду nc
для прямого підключення до MTA lab2.campus
, припускаючи, що він прослуховує TCP-порт 25:
$ nc lab2.campus 25 220 lab2.campus ESMTP Sendmail 8.15.2/8.15.2; Sat, 16 Nov 2019 00:16:07 GMT HELO lab1.campus 250 lab2.campus Hello lab1.campus [10.0.3.134], pleased to meet you MAIL FROM: emma@lab1.campus 250 2.1.0 emma@lab1.campus... Sender ok RCPT TO: dave@lab2.campus 250 2.1.5 dave@lab2.campus... Recipient ok DATA 354 Enter mail, end with "." on a line by itself Subject: Recipient MTA Test Hi Dave, this is a test for your MTA. . 250 2.0.0 xAG0G7Y0000595 Message accepted for delivery QUIT 221 2.0.0 lab2.campus closing connection
Після встановлення з’єднання віддалений MTA ідентифікує себе та готовий приймати команди SMTP. Перша команда SMTP у прикладі, HELO lab1.campus
, вказує lab1.campus
як ініціатор обміну. Наступні дві команди, MAIL FROM: emma@lab1.campus
і RCPT TO: dave@lab2.campus
, вказують відправника та одержувача. Правильне повідомлення електронної пошти починається після команди DATA
і закінчується крапкою в окремому рядку. Щоб додати поле subject
до електронного листа, воно має бути в першому рядку після команди DATA
, як показано в прикладі. Коли subject-поле використовується, має бути порожній рядок, який відокремлює його від вмісту електронної пошти. Команда QUIT
завершує з’єднання з MTA на хості lab2.campus
.
На хості lab2.campus
користувач dave
отримає повідомлення, подібне до You have new mail in /var/spool/mail/dave
, як тільки він увійде в сеанс оболонки. Цей файл міститиме необроблене повідомлення електронної пошти, надіслане emma
, а також заголовки, додані MTA:
$ cat /var/spool/mail/dave From emma@lab1.campus Sat Nov 16 00:19:13 2019 Return-Path: <emma@lab1.campus> Received: from lab1.campus (lab1.campus [10.0.3.134]) by lab2.campus (8.15.2/8.15.2) with SMTP id xAG0G7Y0000595 for dave@lab2.campus; Sat, 16 Nov 2019 00:17:06 GMT Date: Sat, 16 Nov 2019 00:16:07 GMT From: emma@lab1.campus Message-Id: <201911160017.xAG0G7Y0000595@lab2.campus> Subject: Recipient MTA Test Hi Dave, this is a test for your MTA.
Заголовок Received:
показує, що повідомлення від lab1.campus
було отримано безпосередньо lab2.campus
. За замовчуванням MTA прийматимуть повідомлення лише для локальних одержувачів. Якщо користувач emma
намагатиметься надіслати електронний лист користувачеві henry
на хості lab3.campus
, але використовуючи MTA lab2.campus
замість належного MTA lab3.campus
, може виникнути така помилка:
$ nc lab2.campus 25 220 lab2.campus ESMTP Sendmail 8.15.2/8.15.2; Sat, 16 Nov 2019 00:31:44 GMT HELO lab1.campus 250 lab2.campus Hello lab1.campus [10.0.3.134], pleased to meet you MAIL FROM: emma@lab1.campus 250 2.1.0 emma@lab1.campus... Sender ok RCPT TO: henry@lab3.campus 550 5.7.1 henry@lab3.campus... Relaying denied
Номери відповіді SMTP, що починаються з 5, як повідомлення Relaying denied
, вказують на помилку. Існують законні ситуації, коли ретрансляція бажана, наприклад, коли хости, які надсилають і отримують електронні листи, не підключені весь час: проміжний MTA можна налаштувати для прийому електронних листів, призначених іншим хостам, діючи як relay SMTP-сервер, який може пересилати повідомлення між MTA .
Можливість маршрутизації трафіку електронної пошти через проміжні SMTP-сервери перешкоджає спробам підключитися безпосередньо до хоста, указаного електронною адресою одержувача, як показано в попередніх прикладах. Крім того, адреси електронної пошти часто мають доменне ім’я як місце розташування (після @
), тому фактичне ім’я відповідного хосту MTA має бути отримано через DNS. Тому, якщо використовуються віддалені поштові скриньки, рекомендується делегувати завдання визначення відповідного вузла призначення локальному MTA або віддаленому серверу SMTP.
Sendmail надає команду sendmail
для виконання багатьох операцій, пов’язаних з електронною поштою, включно з допомогою у створенні нових повідомлень. Він також вимагає від користувача вводити заголовки електронної пошти вручну, але більш зручним способом, ніж безпосередньо використовувати команди SMTP. Отже, більш адекватним способом для користувача emma@lab1.campus
надіслати повідомлення електронної пошти на dave@lab2.campus
буде:
$ sendmail dave@lab2.campus From: emma@lab1.campus To: dave@lab2.campus Subject: Sender MTA Test Hi Dave, this is a test for my MTA. .
Знову ж таки, крапка в рядку сама по собі завершує повідомлення. Повідомлення має бути негайно надіслано одержувачу, хіба що локальний MTA не зможе зв’язатися з віддаленим MTA. Команда mailq
, якщо її виконує root, покаже всі недоставлені повідомлення. Якщо, наприклад, MTA на lab2.campus
не відповів, тоді команда mailq
виведе недоставлене повідомлення та причину збою:
# mailq /var/spool/mqueue (1 request) -----Q-ID----- --Size-- -----Q-Time----- ------------Sender/Recipient----------- xAIK3D9S000453 36 Mon Nov 18 20:03 <emma@lab1.campus> (Deferred: Connection refused by lab2.campus.) <dave@lab2.campus> Total requests: 1
Типовим розташуванням для черги вихідних повідомлень є /var/spool/mqueue/
, але різні MTA можуть використовувати різні розташування в каталозі /var/spool/
. Postfix, наприклад, створить дерево каталогів у /var/spool/postfix/
для керування чергою. Команда mailq
еквівалентна sendmail -bp
, і вони повинні бути присутні незалежно від MTA, встановленого в системі. Щоб забезпечити зворотну сумісність, більшість MTA надають ці традиційні команди адміністрування пошти.
Якщо основний хост призначення електронної пошти (коли він надається із запису MX DNS для домену) недоступний, MTA спробує зв’язатися з записами з нижчим пріоритетом (якщо такі вказані). У випадку таких налаштувань, MTA може періодично перевіряти доступність віддалених хостів і виконувати нову спробу доставки. Якщо використовується MTA, сумісний із Sendmail, нова спроба буде виконана негайно за допомогою команди sendmail -q
.
Sendmail зберігатиме вхідні повідомлення у файлі, названому на ім’я відповідного власника папки «Вхідні», наприклад /var/spool/mail/dave
. Інші MTA, наприклад Postfix, можуть зберігати вхідні повідомлення електронної пошти в таких місцях, як /var/mail/dave
, але вміст файлу той самий. У наведеному прикладі команда sendmail
була використана на хості відправника для створення повідомлення, тому заголовки необроблених повідомлень показують, що електронний лист пройшов додаткові кроки, перш ніж досягнути кінцевого адресата:
$ cat /var/spool/mail/dave From emma@lab1.campus Mon Nov 18 20:07:39 2019 Return-Path: <emma@lab1.campus> Received: from lab1.campus (lab1.campus [10.0.3.134]) by lab2.campus (8.15.2/8.15.2) with ESMTPS id xAIK7clC000432 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for <dave@lab2.campus>; Mon, 18 Nov 2019 20:07:38 GMT Received: from lab1.campus (localhost [127.0.0.1]) by lab1.campus (8.15.2/8.15.2) with ESMTPS id xAIK3D9S000453 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT) for <dave@lab2.campus>; Mon, 18 Nov 2019 20:03:13 GMT Received: (from emma@localhost) by lab1.campus (8.15.2/8.15.2/Submit) id xAIK0doL000449 for dave@lab2.campus; Mon, 18 Nov 2019 20:00:39 GMT Date: Mon, 18 Nov 2019 20:00:39 GMT Message-Id: <201911182000.xAIK0doL000449@lab1.campus> From: emma@lab1.campus To: dave@lab2.campus Subject: Sender MTA Test Hi Dave, this is a test for my MTA.
Знизу вгору рядки, що починаються з Received:
, показують маршрут повідомлення. Повідомлення було надіслано користувачем emma
за допомогою команди sendmail dave@lab2.campus
, запущеної на lab1.campus
, як зазначено в першому заголовку Received:
. Потім, все ще на lab1.campus
, MTA використовує ESMTPS — надмножину SMTP, яка додає розширення шифрування — для надсилання повідомлення до MTA на lab2.campus
, як зазначено в останньому (верхньому) заголовку Received:
.
MTA завершує свою роботу після того, як повідомлення буде збережено в папці «Вхідні» користувача. Звичайним є виконання певного типу фільтрації електронної пошти, наприклад блокування спаму або застосування визначених користувачем правил фільтрації. Ці завдання виконуються сторонніми додатками, які працюють разом з MTA. MTA може, наприклад, викликати утиліту SpamAssassin, щоб позначати підозрілі повідомлення за допомогою функцій аналізу тексту.
Хоча це можливо, незручно читати файл поштової скриньки безпосередньо. Натомість рекомендовано використовувати програму-клієнт електронної пошти (наприклад, Thunderbird, Evolution або KMail), яка аналізуватиме файл і відповідним чином керуватиме повідомленнями. Такі програми також пропонують додаткові функції, наприклад, ярлики для типових дій, підкаталоги вхідних повідомлень тощо.
Команда mail
і поштові агенти користувача (MUA)
Можна написати повідомлення електронної пошти безпосередньо в необробленому форматі, але набагато практичніше використовувати клієнтську програму, також відому як MUA (Mail User Agent), щоб пришвидшити процес і уникнути помилок. MUA піклується про роботу «під капотом», тобто клієнт електронної пошти представляє та впорядковує отримані повідомлення та забезпечує правильний зв’язок із MTA після того, як користувач створює електронний лист.
Існує багато різних типів поштових агентів користувача. Настільні програми, такі як Mozilla Thunderbird і Evolution від Gnome, підтримують як локальні, так і віддалені облікові записи електронної пошти. Навіть інтерфейси Webmail можна розглядати як тип MUA, оскільки вони є посередниками у взаємодії між користувачем і базовим MTA. Однак клієнти електронної пошти не обмежуються графічними інтерфейсами: клієнти електронної пошти консолі широко використовуються для доступу до поштових скриньок, не інтегрованих із графічним інтерфейсом, і для автоматизації завдань, пов’язаних з електронною поштою, у сценаріях оболонки.
Спочатку команда Unix mail
була призначена лише для обміну повідомленнями між локальними користувачами системи (перша команда mail
датується першою редакцією Unix, випущеною в 1971 році). Коли мережевий обмін електронною поштою став більш помітним, для роботи з новою системою доставки були створені інші програми, які поступово замінили стару програму mail
.
Зараз найбільш часто використовувану команду mail
надає пакет mailx, який сумісний з усіма сучасними функціями електронної пошти. У більшості дистрибутивів Linux команда mail
є лише символьним посиланням на команду mailx
. Інші реалізації, такі як пакунок GNU Mailutils, в основному забезпечують ті самі функції, що й mailx
. Однак між ними є невеликі відмінності, особливо щодо параметрів командного рядка.
Незалежно від реалізації, усі сучасні варіації команди mail
працюють у двох режимах: звичайний режим і режим надсилання. Якщо адреса електронної пошти вказана як аргумент команди mail
, вона перейде в режим надсилання, інакше вона перейде в звичайний режим (читання). У звичайному режимі отримані повідомлення перераховуються з числовим індексом для кожного, тому користувач може звертатися до них окремо під час введення команд в інтерактивному рядку. Команда print 1
може бути використана, наприклад, для відображення вмісту повідомлення номер 1. Інтерактивні команди можна скорочувати, тому такі команди, як print
, delete
або reply
, можна замінити на p
, d
або r
відповідно. Команда mail
завжди розглядатиме останнє отримане або останнє переглянуте повідомлення, якщо номер індексу повідомлення пропущено. Команда quit
або q
призведе до виходу з програми.
Режим надсилання особливо корисний для надсилання автоматизованих повідомлень електронної пошти. Його можна використовувати, наприклад, для надсилання електронного листа системному адміністратору, якщо сценарій запланованого технічного обслуговування не виконує своє завдання. У режимі надсилання mail
використовуватиме вміст зі стандартного введення як тіло повідомлення:
$ mail -s "Maintenance fail" henry@lab3.campus <<<"The maintenance script failed at `date`"
У цьому прикладі було додано опцію -s
, щоб додати поле теми до повідомлення. Тіло повідомлення надавалося перенаправленням Hereline на стандартний вхід, але вміст файлу або вихід команди також можна було передати в stdin програми. Якщо перенаправлення до стандартного вводу не забезпечує жодного вмісту, то програма чекатиме, поки користувач введе тіло повідомлення. У цьому випадку натискання клавіші Ctrl+D завершить повідомлення. Команда mail
негайно завершить роботу після додавання повідомлення до черги вихідних.
Налаштування доставки
За замовчуванням облікові записи електронної пошти в системі Linux пов’язані зі стандартними системними обліковими записами. Наприклад, якщо користувач Carol має ім’я для входу carol
на хості lab2.campus
, то її електронна адреса буде carol@lab2.campus
. Цей зв’язок «один-до-одного» між системними обліковими записами та поштовими скриньками можна розширити за допомогою стандартних методів, наданих у більшості дистрибутивів Linux, зокрема механізму маршрутизації електронної пошти, який забезпечується файлом /etc/aliases
.
Псевдонім електронної пошти – це “віртуальний” одержувач електронної пошти, чиї отримані повідомлення перенаправляються до наявних локальних поштових скриньок або до інших типів місць зберігання чи обробки повідомлень. Псевдоніми корисні, наприклад, для розміщення повідомлень, надісланих на postmaster@lab2.campus
, у поштову скриньку Carol, яка є звичайною локальною поштовою скринькою в системі lab2.campus
. Для цього слід додати рядок postmaster: carol
до файлу /etc/aliases
у lab2.campus
. Після зміни файлу /etc/aliases
слід виконати команду newaliases
, щоб оновити базу даних псевдонімів MTA і зробити зміни дійсними. Команди sendmail -bi
або sendmail -I
також можна використовувати для оновлення бази даних псевдонімів.
Псевдоніми визначаються по одному на рядок у форматі <alias>: <destination>
. Окрім звичайних локальних поштових скриньок, позначених відповідним іменем користувача, доступні інші типи адресатів:
-
Повний шлях (починається з
/
) до файлу. Повідомлення, надіслані на відповідний псевдонім, будуть додані до файлу. -
Команда для обробки повідомлення.
<destination>
має починатися з вертикальної лінії, а якщо команда містить спеціальні символи (наприклад, пробіли), її потрібно взяти в подвійні лапки. Наприклад, псевдонімsubscribe: |subscribe.sh
уlab2.campus
пересилатиме всі повідомлення, надіслані наsubscribe@lab2.campus
, на стандартний вхід командиsubscribe.sh
. Якщо sendmail працює в обмеженому режимі оболонки, дозволені команди або посилання на них мають бути в/etc/smrsh/
. -
Включений файл. Один псевдонім може мати кілька адресатів (розділених комами), тому може бути практичніше зберігати їх у зовнішньому файлі. Ключове слово
:include:
має вказувати шлях до файлу, як у:include:/var/local/destinations
-
Зовнішня адреса. Псевдоніми також можуть пересилати повідомлення на зовнішні адреси електронної пошти.
-
Інший псевдонім.
Непривілейований локальний користувач може визначати псевдоніми для своєї електронної пошти, редагуючи файл .forward
у своєму домашньому каталозі. Оскільки псевдоніми можуть впливати лише на їх власну поштову скриньку, необхідна лише частина <destination>
. Щоб пересилати всі вхідні електронні листи на зовнішню адресу, наприклад, користувач dave
у lab2.campus
може створити такий файл ~/.forward
:
$ cat ~/.forward emma@lab1.campus
Він пересилатиме всі повідомлення електронної пошти, надіслані на dave@lab2.campus
, на emma@lab1.campus
. Як і у випадку з файлом /etc/aliases
, до .forward
можна додати інші правила переспрямування, по одному на рядок. Тим не менш, файл .forward
має бути доступний для запису лише його власнику, і немає необхідності виконувати команду newaliases
після його зміни. Файли, які починаються з крапки, не відображаються у переліку звичайних файлів, через що користувач може не знати про активні псевдоніми. Тому під час діагностики проблем із доставкою електронної пошти важливо перевірити, чи файл існує.
Вправи до посібника
-
Без додаткових опцій чи аргументів команда
mail henry@lab3.campus
переходить у режим введення, щоб користувач міг набрати повідомлення дляhenry@lab3.campus
. Після завершення повідомлення, натискання яких клавіш закриє режим введення та відправить електронний лист? -
Яку команду може виконати користувач root, щоб отримати список недоставлених повідомлень, які створені в локальній системі?
-
Як непривілейований користувач може використовувати стандартний метод MTA для автоматичного пересилання всієї своєї вхідної пошти на адресу
dave@lab2.campus
?
Дослідницькі вправи
-
Використовуючи команду
mail
, надануmailx
, яка команда надішле повідомлення наemma@lab1.campus
з файломlogs.tar.gz
як вкладення та результатом командиuname -a
як тіло електронної пошти? -
Адміністратор служби електронної пошти хоче відстежувати передачу електронної пошти через мережу, але він не хоче захаращувати свою поштову скриньку тестовими повідомленнями. Як цей адміністратор міг налаштувати загальносистемний псевдонім електронної пошти, щоб перенаправляти всі електронні листи, надіслані користувачеві
test
, у файл/dev/null
? -
Яку команду, окрім
newaliases
, можна використати для оновлення бази даних псевдонімів після додавання нового псевдоніма до/etc/aliases
?
Підсумки
Цей урок розповідав про роль і використання агентів передачі пошти в системах Linux. MTA забезпечує стандартний метод зв’язку між обліковими записами користувачів і може поєднуватися з іншим програмним забезпеченням для надання додаткових функцій. На уроці розглядалися такі теми:
-
Поняття про технології, пов’язані з електронною поштою, поштові скриньки та протоколи.
-
Як Linux MTA обмінюються повідомленнями через мережу.
-
Консольні клієнти електронної пошти та MUA (агенти користувача пошти).
-
Псевдоніми та переадресація локальної електронної пошти.
Розглянуті технології, команди та процедури:
-
SMTP і пов’язані протоколи.
-
MTA доступні для Linux: Sendmail, Postfix, qmail, Exim.
-
Команди MTA і MUA:
sendmail
іmail
. -
Адміністративні файли та команди:
mailq
,/etc/aliases
,nevaliases
,~/.forward
.
Відповіді до вправ посібника
-
Без додаткових опцій чи аргументів команда
mail henry@lab3.campus
переходить у режим введення, щоб користувач міг набрати повідомлення дляhenry@lab3.campus
. Після завершення повідомлення, натискання яких клавіш закриє режим введення та відправить електронний лист?Натискання Ctrl+D призведе до закриття програми та відправлення електронного листа.
-
Яку команду може виконати користувач root, щоб отримати список недоставлених повідомлень, які створені в локальній системі?
Команду
mailq
абоsendmail -bp
. -
Як непривілейований користувач може використовувати стандартний метод MTA для автоматичного пересилання всієї своєї вхідної пошти на адресу
dave@lab2.campus
?Користувач повинен додати
dave@lab2.campus
до~/.forward
.
Відповіді до дослідницьких вправ
-
Використовуючи команду
mail
, надануmailx
, яка команда надішле повідомлення наemma@lab1.campus
з файломlogs.tar.gz
як вкладення та результатом командиuname -a
як тіло електронної пошти?uname -a | mail -a logs.tar.gz emma@lab1.campus
-
Адміністратор служби електронної пошти хоче відстежувати передачу електронної пошти через мережу, але він не хоче захаращувати свою поштову скриньку тестовими повідомленнями. Як цей адміністратор міг налаштувати загальносистемний псевдонім електронної пошти, щоб перенаправляти всі електронні листи, надіслані користувачеві
test
, у файл/dev/null
?Рядок
test: /dev/null
у/etc/aliases
перенаправлятиме всі повідомлення, надіслані до локальної поштової скринькиtest
, до файлу/dev/null
. -
Яку команду, окрім
newaliases
, можна використати для оновлення бази даних псевдонімів після додавання нового псевдоніма до/etc/aliases
?Команду
sendmail -bi
абоsendmail -I
.