Содержание
Введение
Catchall («принять всё») — это тип почтовой конфигурации, при которой все письма, отправленные на любой адрес вашего домена, перенаправляются в один почтовый ящик. Это особенно полезно при работе с инструментами автоматизации SEO, такими как GSA Search Engine Ranker и Xrumer, которые требуют большого количества электронных адресов для регистрации на различных сайтах.
В этом руководстве мы пошагово разберем процесс настройки собственного catchall почтового сервера на базе Ubuntu 20.04 с использованием Postfix и Dovecot. Вы получите работающий почтовый сервер, который будет:
- Принимать письма, отправленные на любой адрес вашего домена
- Поддерживать протоколы POP3 и IMAP для доступа к почте
- Работать с SSL/TLS для безопасных соединений
- Корректно взаимодействовать с GSA и Xrumer
Примечание: Это руководство предполагает базовые знания Linux и работы с командной строкой.
Системные требования
Для успешной установки catchall почты вам потребуется:
- Сервер с Ubuntu 20.04 (LTS)
- Минимум 1 ГБ оперативной памяти
- Минимум 10 ГБ дискового пространства
- Доступ к серверу с правами root или sudo
- Зарегистрированный домен
- Доступ к управлению DNS-записями домена (например, через Cloudflare)
Убедитесь, что на вашем сервере открыты следующие порты:
Порт | Протокол | Описание |
---|---|---|
25 | TCP | SMTP (для приема почты) |
110 | TCP | POP3 (для доступа к почте) |
143 | TCP | IMAP (для доступа к почте) |
993 | TCP | IMAPS (IMAP с SSL) |
995 | TCP | POP3S (POP3 с SSL) |
Ручная установка
Если вы предпочитаете контролировать каждый шаг установки, воспользуйтесь следующей пошаговой инструкцией:
Обновление системы и установка необходимых пакетов
Сначала обновите списки пакетов и установите необходимое программное обеспечение:
sudo apt update
sudo apt upgrade -y
sudo apt install -y postfix dovecot-core dovecot-imapd dovecot-pop3d net-tools
При установке Postfix вам будет предложено выбрать тип настройки. Выберите Internet Site и введите полное доменное имя (FQDN) вашего сервера, например mail.yourdomain.com
.
Создание пользователя для catchall почты
Создайте нового пользователя, который будет получать всю входящую почту:
sudo useradd -m -s /bin/bash catchall
sudo passwd catchall
Введите надежный пароль для этого пользователя. Запомните его — он потребуется для настройки почтовых клиентов и GSA/Xrumer.
Настройка Postfix
Отредактируйте основной файл конфигурации Postfix:
sudo nano /etc/postfix/main.cf
Замените содержимое файла следующей конфигурацией (не забудьте заменить yourdomain.com на ваш домен):
# Основные настройки Postfix
myhostname = mail.yourdomain.com
myorigin = /etc/mailname
mydestination = $myhostname, localhost.$mydomain, localhost, yourdomain.com
home_mailbox = Maildir/
virtual_alias_maps = hash:/etc/postfix/virtual
inet_interfaces = all
inet_protocols = ipv4
smtpd_tls_security_level = may
smtpd_tls_auth_only = no
smtp_tls_security_level = may
smtp_tls_note_starttls_offer = yes
# Безопасность - предотвращение открытого релея
smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
smtpd_recipient_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
Затем создайте файл виртуальных алиасов для catchall:
sudo nano /etc/postfix/virtual
Добавьте следующую строку (замените yourdomain.com на ваш домен):
@yourdomain.com catchall
После сохранения файла, обновите карту виртуальных адресов:
sudo postmap /etc/postfix/virtual
Настройка Dovecot
Теперь настроим Dovecot для использования формата Maildir и включим IMAP и POP3 протоколы:
Настройка основной конфигурации:
sudo nano /etc/dovecot/dovecot.conf
Убедитесь, что в файле есть следующие строки:
protocols = imap pop3
listen = *
Настройте формат почтового ящика:
sudo nano /etc/dovecot/conf.d/10-mail.conf
Найдите строку с mail_location = maildir:~/Maildir
Настройте аутентификацию:
sudo nano /etc/dovecot/conf.d/10-auth.conf
Найдите строку с disable_plaintext_auth
и измените ее на:
disable_plaintext_auth = no
Настройте порты для IMAP и POP3:
sudo nano /etc/dovecot/conf.d/10-master.conf
Убедитесь, что секции для IMAP и POP3 выглядят следующим образом:
service imap-login {
inet_listener imap {
port = 143
}
inet_listener imaps {
port = 993
ssl = yes
}
}
service pop3-login {
inet_listener pop3 {
port = 110
}
inet_listener pop3s {
port = 995
ssl = yes
}
}
Создание структуры Maildir
Создайте каталог Maildir для пользователя catchall:
sudo mkdir -p /home/catchall/Maildir/{new,cur,tmp}
sudo chown -R catchall:catchall /home/catchall/Maildir
sudo chmod -R 700 /home/catchall/Maildir
Перезапуск служб
Перезапустите Postfix и Dovecot для применения настроек:
sudo systemctl restart postfix
sudo systemctl restart dovecot
Проверьте статус служб, чтобы убедиться, что они работают без ошибок:
sudo systemctl status postfix
sudo systemctl status dovecot
Проверка открытых портов
Убедитесь, что необходимые порты открыты и слушаются соответствующими службами:
sudo ss -tulpn | grep -E ':110|:143|:993|:995|:25'
Вы должны увидеть, что Postfix слушает порт 25, а Dovecot слушает порты 110, 143, 993 и 995.
Настройка файрвола (если используется)
Если вы используете UFW, разрешите необходимые порты:
sudo ufw allow 25/tcp
sudo ufw allow 110/tcp
sudo ufw allow 143/tcp
sudo ufw allow 993/tcp
sudo ufw allow 995/tcp
Настройка Cloudflare
Для корректной работы почтового сервера необходимо правильно настроить DNS-записи. Если вы используете Cloudflare для управления доменом, выполните следующие шаги:
Вход в панель управления Cloudflare
Авторизуйтесь в панели управления Cloudflare и выберите ваш домен.
Создание A-записи для почтового сервера
Перейдите во вкладку DNS и добавьте новую A-запись:
- Тип: A
- Имя: mail
- IPv4-адрес: IP-адрес вашего сервера
- TTL: Auto
- Proxy status: DNS only (серое облако)
Важно: Всегда отключайте прокси Cloudflare (выбирайте "DNS only") для почтовых серверов. Почтовый трафик не должен проходить через прокси Cloudflare.
Добавление MX-записи
Добавьте MX-запись для вашего домена:
- Тип: MX
- Имя: @ (корневой домен)
- Приоритет: 10
- Значение: mail.yourdomain.com
- TTL: Auto
Добавление SPF-записи (рекомендуется)
SPF-запись поможет защитить ваш домен от подделки и повысит доставляемость писем:
- Тип: TXT
- Имя: @
- Содержимое: v=spf1 ip4:YOUR_SERVER_IP mx ~all
- TTL: Auto
Не забудьте заменить YOUR_SERVER_IP на фактический IP-адрес вашего сервера.
Проверка DNS-записей
После внесения изменений подождите несколько минут для обновления DNS-записей. Затем проверьте их с помощью командной строки:
dig MX yourdomain.com
dig A mail.yourdomain.com
Вы должны увидеть созданные вами записи в ответе.
Примечание: Распространение DNS-записей может занять до 24 часов, но обычно происходит в течение нескольких минут.
Автоматическая установка
Для упрощения процесса настройки catchall почты мы создали автоматический установочный скрипт, который выполнит все необходимые шаги.
Скачивание скрипта
Подключитесь к своему серверу и скачайте скрипт установки:
cd ~
wget -O catchall-installer.sh https://catchallmail.ru/download/catchall-installer.sh
Или создайте файл и вставьте в него код скрипта из раздела ниже:
nano catchall-installer.sh
Сделайте скрипт исполняемым
chmod +x catchall-installer.sh
Запустите скрипт
sudo ./catchall-installer.sh
Следуйте инструкциям скрипта. Вам потребуется ввести:
- Ваш домен (например, yourdomain.com)
- Имя пользователя для catchall (по умолчанию: catchall)
- Пароль для пользователя
Проверка установки
После завершения установки проверьте логи на наличие ошибок:
sudo tail -f /var/log/mail.log
Проверьте, что все службы запущены и работают корректно:
sudo systemctl status postfix
sudo systemctl status dovecot
Скрипт автоматической установки
Копируйте следующий код в файл catchall-installer.sh
:
#!/bin/bash
# Скрипт для настройки catchall почты на Ubuntu 20.04 для GSA/Xrumer
# Автор: Claude
# Дата: 30 апреля 2025
# Цвета для вывода
GREEN='\033[0;32m'
RED='\033[0;31m'
YELLOW='\033[0;33m'
NC='\033[0m' # No Color
# Функция для вывода статуса
print_status() {
echo -e "${GREEN}[+] $1${NC}"
}
print_error() {
echo -e "${RED}[!] $1${NC}"
}
print_warning() {
echo -e "${YELLOW}[*] $1${NC}"
}
# Проверка прав суперпользователя
if [ "$EUID" -ne 0 ]; then
print_error "Запустите скрипт с правами суперпользователя (sudo)!"
exit 1
fi
# Проверка наличия Ubuntu 20.04
if [[ $(lsb_release -rs) != "20.04" ]]; then
print_warning "Скрипт разработан для Ubuntu 20.04. Ваша версия: $(lsb_release -rs)"
read -p "Продолжить установку? (y/n): " choice
if [[ "$choice" != "y" && "$choice" != "Y" ]]; then
exit 1
fi
fi
# Запрос домена и пароля
read -p "Введите ваш домен (например, example.com): " DOMAIN
read -p "Введите имя пользователя для catchall (по умолчанию: catchall): " CATCHALL_USER
CATCHALL_USER=${CATCHALL_USER:-catchall}
read -s -p "Введите пароль для пользователя $CATCHALL_USER: " CATCHALL_PASSWORD
echo ""
read -s -p "Повторите пароль: " CATCHALL_PASSWORD_CONFIRM
echo ""
# Проверка паролей
if [[ "$CATCHALL_PASSWORD" != "$CATCHALL_PASSWORD_CONFIRM" ]]; then
print_error "Пароли не совпадают!"
exit 1
fi
# Функция для добавления пользователя
add_user() {
if id "$CATCHALL_USER" &>/dev/null; then
print_warning "Пользователь $CATCHALL_USER уже существует"
else
print_status "Создание пользователя $CATCHALL_USER"
useradd -m -s /bin/bash "$CATCHALL_USER"
echo "$CATCHALL_USER:$CATCHALL_PASSWORD" | chpasswd
fi
}
# Обновление системы
update_system() {
print_status "Обновление списка пакетов"
apt update
print_status "Установка необходимых инструментов"
apt install -y net-tools wget curl nano ssl-cert
}
# Установка и настройка Postfix
install_postfix() {
print_status "Установка Postfix"
# Предварительная настройка для автоматической установки
debconf-set-selections <<< "postfix postfix/mailname string mail.$DOMAIN"
debconf-set-selections <<< "postfix postfix/main_mailer_type string 'Internet Site'"
apt install -y postfix
print_status "Настройка Postfix для catchall почты"
# Создание резервной копии конфигурации
cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
# Настройка конфигурации Postfix
cat > /etc/postfix/main.cf < /etc/postfix/virtual
postmap /etc/postfix/virtual
# Перезапуск Postfix
systemctl restart postfix
}
# Установка и настройка Dovecot
install_dovecot() {
print_status "Установка Dovecot"
apt install -y dovecot-core dovecot-imapd dovecot-pop3d
print_status "Настройка Dovecot"
# Создание резервных копий конфигурации
cp /etc/dovecot/dovecot.conf /etc/dovecot/dovecot.conf.bak
cp /etc/dovecot/conf.d/10-mail.conf /etc/dovecot/conf.d/10-mail.conf.bak
cp /etc/dovecot/conf.d/10-auth.conf /etc/dovecot/conf.d/10-auth.conf.bak
cp /etc/dovecot/conf.d/10-master.conf /etc/dovecot/conf.d/10-master.conf.bak
# Настройка основного конфига Dovecot
cat > /etc/dovecot/dovecot.conf < /etc/dovecot/conf.d/10-master.conf < /dev/null; then
ss -tulpn | grep -E ':110|:143|:993|:995|:25'
else
netstat -tulpn | grep -E ':110|:143|:993|:995|:25'
fi
}
# Настройка брандмауэра (если он используется)
configure_firewall() {
if command -v ufw &> /dev/null && ufw status | grep -q "active"; then
print_status "Настройка UFW для почтовых портов"
ufw allow 25/tcp # SMTP
ufw allow 110/tcp # POP3
ufw allow 143/tcp # IMAP
ufw allow 993/tcp # IMAPS
ufw allow 995/tcp # POP3S
print_status "Правила UFW добавлены"
else
print_warning "UFW не активен или не установлен. Пропускаем настройку брандмауэра."
fi
}
# Отправка тестового письма
send_test_email() {
if command -v mail &> /dev/null; then
print_status "Отправка тестового письма"
echo "Это тестовое письмо для проверки catchall" | mail -s "Тестовое письмо catchall" test@$DOMAIN
print_status "Тестовое письмо отправлено на test@$DOMAIN"
else
print_warning "Утилита mail не установлена. Устанавливаем..."
apt install -y mailutils
echo "Это тестовое письмо для проверки catchall" | mail -s "Тестовое письмо catchall" test@$DOMAIN
print_status "Тестовое письмо отправлено на test@$DOMAIN"
fi
}
# Главная функция установки
main() {
print_status "Начало установки catchall почты для $DOMAIN"
update_system
add_user
install_postfix
install_dovecot
create_maildir
configure_firewall
check_services
check_ports
send_test_email
print_status "==============================================="
print_status "Установка и настройка catchall почты завершена!"
print_status "==============================================="
print_status "Данные для подключения:"
print_status "Домен: $DOMAIN"
print_status "Пользователь: $CATCHALL_USER"
print_status "POP3: mail.$DOMAIN:110"
print_status "IMAP: mail.$DOMAIN:143"
print_status "Безопасное подключение: Доступно на портах 993 (IMAPS) и 995 (POP3S)"
print_status "==============================================="
print_status "Проверьте логи на наличие ошибок:"
print_status "sudo tail -f /var/log/mail.log"
print_status "==============================================="
}
# Запуск основной функции
main
Настройка Xrumer
После успешной настройки catchall почты, вы можете использовать её в Xrumer для регистрации на форумах и других сайтах.
Добавление почтового ящика в Xrumer
Откройте Xrumer и перейдите в раздел "Настройки" → "Почтовые ящики" → "Добавить".
Указание параметров подключения
Заполните форму следующими данными:
- Протокол: Выберите POP3
- Сервер: mail.yourdomain.com
- Порт: 110 (или 995 для SSL)
- Имя пользователя: catchall
- Пароль: Ваш пароль
- SSL: По желанию
Настройка адресов для регистрации
В Xrumer, в разделе "База почтовых адресов", добавьте шаблоны адресов:
random_name@yourdomain.com
username[1-999]@yourdomain.com
name.surname@yourdomain.com
Все письма, отправленные на эти адреса, будут приходить в ваш catchall ящик.
Совет: Периодически проверяйте почту вручную, особенно если Xrumer не может автоматически обработать некоторые подтверждения регистрации.
Настройка GSA
GSA Search Engine Ranker также может использовать ваш catchall почтовый ящик для регистрации на площадках.
Добавление почтового аккаунта в GSA
Откройте GSA Search Engine Ranker и перейдите в "Tools" → "Options" → "Email Verification".
Настройка POP3 доступа
Нажмите на кнопку "Add" и введите следующие данные:
- Email: catchall@yourdomain.com (или любой другой адрес на вашем домене)
- Server Type: POP3
- Server: mail.yourdomain.com
- Port: 110 (или 995 для SSL)
- SSL: По желанию
- Username: catchall
- Password: Ваш пароль
Настройка генерации адресов
В настройках GSA, в разделе "Email Generator", добавьте ваш домен и настройте шаблоны генерации адресов.
Проверьте опцию "Verify mail accounts" для автоматической проверки доступности созданных аккаунтов.
Тестирование проверки почты
Запустите тестовую проверку через "Tools" → "Test Email Verification" и убедитесь, что GSA может успешно подключиться к вашему почтовому серверу.
Важно: GSA может иногда не распознавать некоторые типы писем подтверждения. В таких случаях может потребоваться ручная проверка и настройка фильтров.
Устранение проблем
Возможно, вы столкнетесь с некоторыми проблемами при настройке или использовании catchall почты. Вот решения для наиболее распространенных случаев:
Не приходят письма
- Проверьте логи Postfix:
sudo tail -f /var/log/mail.log
- Проверьте DNS-записи: Убедитесь, что MX-запись правильно настроена и указывает на ваш сервер
- Проверьте файрвол: Убедитесь, что порт 25 открыт для входящих соединений
- Проверьте спам-фильтры: Некоторые ISP блокируют порт 25
Проблемы с подключением по POP3/IMAP
- Проверьте логи Dovecot:
sudo tail -f /var/log/dovecot.log
- Проверьте права доступа:
ls -la /home/catchall/Maildir
- Проверьте настройки SSL/TLS: Некоторые клиенты требуют особых настроек для SSL
Ошибки аутентификации
- Сбросьте пароль:
sudo passwd catchall
- Проверьте формат логина: Используйте полное имя пользователя (например, catchall@yourdomain.com)
Письма отправляются, но не доставляются
- Проверьте SPF-записи: Неправильные SPF-записи могут приводить к отклонению писем
- Проверьте репутацию IP: Ваш IP может быть в черных списках
- Настройте DKIM: Добавление DKIM может улучшить доставляемость
Медленная работа или высокая нагрузка
- Проверьте ресурсы сервера:
top
илиhtop
- Настройте ограничения Postfix: Измените параметры в
/etc/postfix/main.cf
- Оптимизируйте Dovecot: Настройте кэширование и лимиты соединений
Совет: Периодически делайте резервные копии конфигурации и данных почтового сервера. Это поможет быстро восстановить работу в случае сбоев.