Віртуальні користувачі і домени, поштовий сервер на основі Postfix, Courier, MySQL і SquirrelMail (Ubuntu 8,04 LTS).
У цьому посібнику описана установка поштового сервера Postfix, в який використовує віртуальних користувачів і віртуальні домени (тобто всі облікові записи та найменування доменів зберігаються в базі даних MySQL). Також показана установка і настройка Courier (Courier-POP3, Courier-IMAP), з можливістю аутентифікації Postfix з використанням бази даних MySQL.
В результаті Postfix буде підтримувати SMTP-AUTH, TLS і quota (за замовчуванням підтримка квот не вбудована в Postfix і я покажу як необхідно застосувати patch до Postfix). Паролі будуть зберігається в базі даних в зашифрованому вигляді (в більшості посібників я виявив, що паролі зберігаються в НЕ зашифрованому вигляді в текстових файлах, які створюють загрозу безпеці). Крім цього в даному керівництві розглянута установка і настройка Amavisd, SpamAssassin і ClamAV це дає можливість сканувати повідомлення на наявність вірусів і спаму. Я також покажу як встановити веб інтерфейс до пошти SquirrelMail для того щоб користувачі могли отримувати, відправляти пошту змінювати свої паролі.
Цей документ призначений для використання в якості практичного керівництва в ньому не розкриті теоретичні основи. Вони представлені в безлічі інших документах в Інтернет.
Цей документ поставляється без гарантій будь-якого роду! Я хочу сказати, що це не єдиний спосіб створення такої системи. Є багато способів досягнення цієї мети, але це такий, який я прийняв. Я не видають ніяких гарантій, що це буде працювати у Вас!
Це можна зробити за допомогою команд:
А потім перевіримо работоспособоность нового ім'я командою:
Якщо у відповідь ми бачимо:
то ми все зробили правильно.
Переконайтеся, що ви зайшли як привілейований користувач,
тому що в цьому посібнику необхідно виконувати всі кроки від його імені.
Дуже важливим є, щоб ви зробили символічне посилання / bin / sh на / bin / bash.
і ще відключіть AppArmor:
Для установки Postfix, Courier, Saslauthd, MySQL і phpMyAdmin, нам просто необхідно виконати:
aptitude install postfix postfix-mysql postfix-doc mysql-client mysql-server courier-authdaemon courier-authlib-mysql courier-pop courier-pop-ssl courier-imap courier-imap-ssl postfix-tls libsasl2-2 libsasl2-modules libsasl2- modules-sql sasl2-bin libpam-mysql openssl phpmyadmin apache2 libapache2-mod-php5 php5 php5-mysql libpam-smbpass telnet
Вам буде задано кілька запитань на які необхідно відповісти:
New password for the MySQL "root" user: <-- Ваш_пароль_на_суперпользователя_MySQL Repeat password for the MySQL "root" user: <-- Повторите_Ваш_пароль_на_суперпользователя_MySQL Create directories for web-based administration? <-- No General type of mail configuration: <-- Internet Site System mail name: <-- srvX.lab6.nntc SSL certificate required <-- Ok Web server to reconfigure automatically: <-- apache2
Спочатку створимо базу даних з назвою mail:
Потім ми перейдемо в оболонку MySQL:
В оболонці MySQL шкаралупи, ми створимо користувача mail_admin з паролем mail_admin_password (замініть на свої) які матиме наступні привілеї SELECT, INSERT, UPDATE, DELETE на базу даних mail. Цей користувач буде використовуватися Postfix і Courier для підключення до поштової базі:
Зараз використовуючи оболонку MySQL, ми створимо таблиці необхідні Postfix і Courier:
Як ви вже напевно помітили ми покинули оболонку MySQL і вставив командну оболонку Linux.
Таблиця domains буде зберігати найменування віртуальних доменів для яких Postfix буде отримувати листи.
Таблиця forwardings буде містити псевдоніми поштових скриньок, наприклад поштові повідомлення спрямовані на [email protected] будт перенаправлені на [email protected].
Таблиця transport необов'язкового характеру, вона для просунутих користувачів. Дозволяє перенаправляти пошту окремих користувачів, доменів або всю пошту на інший поштовий сервер.
Переконайтеся що /etc/mysql/my.cnf містить наступні рядки:
Якщо ви змінили /etc/mysql/my.cnf, будь ласка перезапустіть MySQL:
щоб переконається, що MySQL прослуховує 127.0.0.1 (srvX.lab6.nntc):
Зараз давайте створимо шість необхідних нам файлів:
Потім змінимо права доступу і група для цих файлів:
Створюємо нового користувача і групу з назвою vmail з домашньою директорією / home / vmail. де будуть знаходиться поштові скриньки:
Зараз ми налаштуємо Postfix. Не забувайте замінювати srvX.lab6.nntc на своє ім'я хоста (наприклад srv1.lab6.nntc), інакше ваш поштовий сервер Postfix не зможе коректно працювати!
Створимо сертифікат SSL необхідний для TLS:
Змінюємо права доступу на smtpd.key:
Спочатку виконаємо наступну команду:
Потім змінимо / etc / default / saslauthd. Встановивши параметр START в yes і замінимо рядок OPTIONS = "- c -m / var / run / saslauthd" на OPTIONS = "- c -m / var / spool / postfix / var / run / saslauthd -r":
Створюємо файл /etc/pam.d/smtp. І додаємо в нього два рядки (обов'язково використовуйте коректні значення пов'язані з вашої базі даних):
Створюємо файл /etc/postfix/sasl/smtpd.conf. Він повинен бути подібного виду:
Додаємо користувача postfix в групу sasl (це дасть Postfix права доступу до saslauthd):
Перезапускаємо Postfix і Saslauthd:
Зазначимо Courier, щоб він проводив аутентифікацію використовуючи нашу базу даних MySQL. Редагуємо / etc / courier / authdaemonrc і змінюємо значення authmodulelist:
Зробимо резервну копію файлу / etc / courier / authmysqlrc і очистимо його вміст:
Відкриємо / etc / courier / authmysqlrc і вставимо в нього наступні рядки:
щоб переконається, що наш сервер POP3 коректно працює. Ми повинні побачити + OK Hello. (Введіть quit для повернення в оболонку Linux).
Після зміни / etc / aliases, ви повинні запустити команду
і перезапустити Postfix:
Для установки amavisd-new, spamassassin і clamav, виконаємо наступну команду:
Налаштуємо amavisd-new. Файли знаходяться в директорії /etc/amavis/conf.d. Ознайомитеся з ними. Більшість з налаштувань в цих файлах відмінно виставлені, але все ж ми змінимо три файли:
Файл повинен бути схожий на цей:
Останнім відредагуємо /etc/amavis/conf.d/50-user додавши посередині параметр $ pax = 'pax'; :
Після цього додамо користувача clamav в групу amavis і презапустім amavisd-new і ClamAV:
Налаштуємо Postfix так щоб він отримував всю вхідну пошту через amavisd-new:
Додамо наступні рядки в /etc/postfix/master.cf:
переконаємося, що Postfix (master) прослуховує 25 (smtp) і 10025 порт, а amavisd-new розташований на 10024:
Razor, Pyzor і DCC це спам фільтри, які використовуються спільно для фільтрації в мережі. Встановимо Razor і Pyzor
DCC не міститься в репозиторії Ubuntu 8.04, тому ми його встановимо так:
Скажімо SpamAssassin використовувати ці три програми. Відредагуємо /etc/spamassassin/local.cf додавши кілька рядків в нього:
Можна перевірити настройки SpamAssassin виконавши:
Висновок не повинен містити ніяких помилок.
Оновимо набір правил для SpamAssassin наступним чином:
Додамо в cron завдання, щоб набір правил оновлювався регулярно. запустимо
Це дозволить оновлювати набір правил кожен 2 день о 4 годині 23 хвилини.
Для того щоб отримувати повідомлення про перевищення квоти поштових скриньок користувачів зробимо так:
Відкриємо для редагування файл / usr / local / sbin / quota_notify відредагуємо змінні зверху. В кінці файлу знаходяться два рядки де ви повинні додати% для підпису:
щоб задати завдання cron на виконання скрипта
Щоб подивитися чи слухає Postfix порти SMTP-AUTH і TLS, виконаємо
Після встановлення підключення з вашим поштовим сервером Postfix введемо наступне:
Якщо ми побачимо наступні рядки
тоді все нормально:
для того щоб повернуться в оболонку Linux.
Для заповнення бази даних будемо використовувати оболонку MySQL:
Принаймні нам необхідно додати записи в таблиці domains і users:
Якщо необхідно вставити дані в інші дві таблиці, зробимо так:
Вийдемо з оболонки MySQL набравши
При спробі отримання пошти з нового поштового ящика (через POP3 / IMAP) ви отримаєте повідомлення про те, що поштовий каталог не існує. Поштовий каталог створюється автоматично, коли приходить перший лист, тому найкраще відправляти лист вітання після створення нової поштової скриньки.
Встановимо пакет mailx:
Для відправлення листа вітання на [email protected], ми зробимо так:
Вам буде запропоновано ввести тему, введіть її (наприклад, ласкаво просимо!), Натисніть ENTER і в наступних рядках напишіть ваше повідомлення. Коли закінчимо набирати повідомлення необхідно набрати CTRL + D і ще раз ENTER:
SquirrelMail це веб інтерфейс, який дозволяє користувачеві отримувати і відправляти пошту використовуючи браузер. У цій частині покажемо як встановити та дозволимо в наших налаштуваннях користувачам змінювати свій пароль використовуючи інтерфейс SquirrelMail.
Щоб встановити SquirrelMail виконаємо:
Скопіюємо конфігураційний файл Apache, який входить в пакет SquirrelMail, в каталог /etc/apache2/conf.d перезапустити Apache:
Squirrelmail відразу встановлюється з безліччю плагінів, але серед нех немає необхідного для нас плагіна дозволяє змінювати пароль. Встановимо його в ручну (попередньо встановивши встановивши все необхідне для його роботи:
У підсумку ми повинні отримати файл такого змісту: