Подробный гайд: как предотвратить уход почты в спящий режим на Astra Linux
Ваш вопрос может касаться нескольких сценариев. Ниже приведены решения для каждого из них.
Сценарий 1: Почтовый клиент (Thunderbird, Evolution) теряет соединение при простое
Проблема
Почтовые клиенты могут терять IMAP/SMTP-соединение, когда система переходит в режим энергосбережения или когда сетевое соединение «засыпает».
Решение
1. Настройка keepalive для сетевого стека
Откройте /etc/sysctl.conf и добавьте:
# Keepalive для поддержания активных соединений
net.ipv4.tcp_keepalive_time = 60
net.ipv4.tcp_keepalive_intvl = 10
net.ipv4.tcp_keepalive_probes = 6
net.ipv4.tcp_keepalive_idle = 30
Примените настройки:
sudo sysctl -p
2. Настройка почтового клиента
Для Thunderbird:
- В адресной строке введите
about:config
2. Найдите и измените параметры:
mail.server.default.check_new_mail = true
mail.server.default.check_time = 1
mail.imap.idle_response_timeout = 29
3. Отключите спящий режим для Thunderbird через systemd:
# Создайте override-файл для пользователя
mkdir -p ~/.config/systemd/user/thunderbird.service.d/
cat > ~/.config/systemd/user/thunderbird.service.d/no-sleep.conf << 'EOF'
[Service]
Environment="SYSTEMD_INHIBIT=1"
EOF
systemctl --user daemon-reexec
Для Evolution:
- Включите IMAP IDLE: Правка → Настройки → Учётные записи → Ваш аккаунт → Приём почты → Использовать IMAP IDLE
- Уменьшите интервал проверки: Проверять новые сообщения каждые: 1 минута
3. Запрет спящего режима для процесса почты
Используйте systemd-inhibit для предотвращения сна во время работы клиента:
# Запуск Thunderbird с ингибитором сна
systemd-inhibit --what=idle:sleep --who="Thunderbird Mail" --why="Поддержание почтового соединения" \
/usr/bin/thunderbird
Сценарий 2: Почтовые службы (Postfix, Dovecot) останавливаются при сне системы
Проблема
Службы могут быть остановлены при переходе системы в режим suspend/hibernate.
Решение
1. Запрет перехода системы в спящий режим (если сервер должен работать 24/7)
# Маскировка целей сна в systemd
sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target
Проверка статуса:
systemctl list-unit-files | grep -E 'sleep|suspend|hibernate'
2. Настройка служб для игнорирования событий сна
Для Dovecot (/etc/systemd/system/dovecot.service.d/no-sleep.conf):
[Service]
# Запрет остановки службы при сне
IgnoreOnIsolate=true
# Перезапуск после пробуждения
ExecStartPost=/bin/sleep 5
ExecStartPost=/usr/bin/systemctl restart dovecot
Для Postfix аналогично:
sudo mkdir -p /etc/systemd/system/postfix.service.d/
sudo tee /etc/systemd/system/postfix.service.d/no-sleep.conf << 'EOF'
[Service]
IgnoreOnIsolate=true
EOF
sudo systemctl daemon-reload
3. Настройка keepalive в Dovecot
В /etc/dovecot/conf.d/20-imap.conf:
# Поддержание долгоживущих IMAP-соединений
imap_idle_notify_interval = 2 mins
mail_max_userip_connections = 50
login_trusted_networks = 0.0.0.0/0
В /etc/dovecot/conf.d/10-master.conf:
service imap-login {
inet_listener imap {
port = 143
# Keepalive для клиентов
tcp_keepalive = yes
}
}
Перезапустите службы:
sudo systemctl restart dovecot postfix
Сценарий 3: Мобильные устройства Astra Linux (режим "Мобильный")
Если вы используете Astra Linux в мобильном режиме, настройте энергосбережение через графический интерфейс:
- Откройте Настройки → Энергосбережение
2. В разделе Питание от батареи:
- Установите «Перейти в режим сна через» → Никогда
- Отключите автоматическое отключение экрана
3. Для почтовых приложений:
- Добавьте их в исключения энергосбережения
- Включите фоновую синхронизацию
Важно:
- В Astra Linux Special Edition с включённым МРД (мандатным управлением) некоторые настройки могут быть заблокированы политиками безопасности. Согласуйте изменения с администратором ИБ.
Дополнительные рекомендации
1. Мониторинг активности сети
Установите powertop для диагностики энергопотребления:
sudo apt install powertop
sudo powertop --auto-tune
sudo powertop --html
2. Использование TLP для тонкой настройки
Если в вашей версии Astra Linux доступен tlp:
sudo apt install tlp tlp-rdw
sudo systemctl enable tlp
sudo systemctl start tlp
В /etc/default/tlp добавьте исключения для почтовых портов:
# Не отключать WiFi при работе от батареи, если используется почта
WIFI_PWR_ON_BAT=off
# Разрешить пробуждение по сети для почтового сервера
WOL_DISABLE=N
3. Настройка таймаутов SSH/сетевых соединений
Для предотвращения разрыва соединений при простое:
# /etc/ssh/sshd_config
ClientAliveInterval 60
ClientAliveCountMax 3
# /etc/ssh/ssh_config (для клиента)
ServerAliveInterval 60
ServerAliveCountMax 3
Проверка работоспособности
1. Тест IMAP IDLE:
openssl s_client -connect mail.yourdomain.ru:993 -quiet
a login "user@domain" "password"
a select INBOX
# Оставьте соединение открытым на 30+ минут — оно не должно разорваться
2. Проверка активности служб:
systemctl status dovecot postfix --no-pager
journalctl -u dovecot -u postfix -f
3. Тест на «засыпание»:
# Запустите в фоне и оставьте на час
watch -n 60 'date; netstat -tn | grep ESTABLISHED | grep -E ":(143|993|25|587)"'
Примечание:
- Если вы используете Astra Linux Special Edition с сертифицированными СКЗИ, любые изменения в конфигурации должны проходить процедуру аттестации. Рекомендуется тестировать настройки на изолированном стенде перед внедрением в продуктивную среду.