Настройка сервера · 5 min read · Sep 27, 2025
Идеальный SpamSnake - Ubuntu Jaunty Jackalope
Идеальный SpamSnake - Ubuntu Jaunty Jackalope
Автор: Мохаммед Алли
Postfix с байесовской фильтрацией и анти-бэкскаттером (получатели реле), Apache, Mysql, Dnsmasq, MailScanner (Spamassassin, ClamAV, Pyzor, Razor, DCC-Client), MailWatch, SPF проверки, FuzzyOcr, PDF/XLS/фишинг Sanesecurity сигнатуры, Postfix-GLD (серый список по желанию), Logwatch статистическая отчетность (по желанию), Исходящий отказ с alterMIME (по желанию), FireHOL (Iptables Firewall)
Версия 2.5
Этот учебник показывает, как настроить сервер на базе Ubuntu Jaunty Jackalope в качестве спам-фильтра в режиме шлюза. В конце вы получите шлюз SpamSnake, который будет пересылать чистые электронные письма вашему MTA. Вы также сможете просматривать вашу входящую очередь, обучать ваш SpamSnake и выполнять несколько более сложных операций через MailWatch.
Я не могу гарантировать, что это будет работать для вас так же, как работает для меня.
Я буду использовать следующее программное обеспечение:
- Веб-сервер: Apache 2 с PHP 5
- Сервер баз данных: MySQL 5.0
- Почтовый сервер: Postfix
- Кэширующий DNS-сервер: Dnsmasq
- MailScanner: MailScanner v4.76
- MailWatch: MailWatch v1.0.4
Благодарности команде HowtoForge и разработчикам MailScanner, MailWatch, ClamAV, Apache, Mysql и Postfix.
Установите базовую систему, используя минимальный вариант.
1. Получите права root
Включите вход в систему под root, выполнив следующее и задав пароль для root. Затем вы сможете войти в систему как root:
sudo passwd root2. Установите vim-nox (по желанию)
Я буду использовать vi в качестве текстового редактора в этом учебнике. Программа vi по умолчанию имеет странное поведение на Ubuntu и Debian; чтобы это исправить, мы установим vim-nox:
aptitude install vim-nox(Это не обязательно, если вы используете другой текстовый редактор, такой как joe или nano.)
3. Настройте сеть
Поскольку установщик Ubuntu настроил нашу систему на получение сетевых настроек через DHCP, нам нужно изменить это, так как сервер должен иметь статический IP-адрес. Отредактируйте /etc/network/interfaces и настройте его под ваши нужды (в этом примере я буду использовать IP-адрес 192.168.0.100):
vi /etc/network/interfaces# Этот файл описывает сетевые интерфейсы, доступные на вашей системе
# и как их активировать. Для получения дополнительной информации смотрите interfaces(5).
# Интерфейс обратной связи
auto lo
iface lo inet loopback
# Основной сетевой интерфейс
auto eth0
iface eth0 inet static
address 192.168.0.100
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1Затем перезапустите вашу сеть:
/etc/init.d/networking restartЗатем отредактируйте /etc/hosts. Сделайте его таким:
127.0.0.1 localhost.localdomain localhost
192.168.0.100 server1.example.com server1
# Следующие строки желательны для хостов, поддерживающих IPv6
::1 localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhostsТеперь выполните:
echo server1.example.com > /etc/hostname
/etc/init.d/hostname.sh startПосле этого выполните:
hostname
hostname -fОба должны показать server1.example.com теперь.
4. Обновите вашу установку Linux
Отредактируйте /etc/apt/sources.list. Закомментируйте или удалите установочный CD из файла и убедитесь, что репозитории universe и multiverse включены. Он должен выглядеть так:
#
# deb cdrom:[Ubuntu-Server 9.04 _Jaunty Jackalope_ - Release amd64 (20090421.1)]/ jaunty main restricted
#deb cdrom:[Ubuntu-Server 9.04 _Jaunty Jackalope_ - Release amd64 (20090421.1)]/ jaunty main restricted
# Смотрите http://help.ubuntu.com/community/UpgradeNotes, чтобы узнать, как обновиться до
# более новых версий дистрибутива.
deb http://de.archive.ubuntu.com/ubuntu/ jaunty main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty main restricted
## Основные обновления исправлений ошибок, выпущенные после окончательного релиза
## дистрибутива.
deb http://de.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty-updates main restricted
## Обратите внимание. Программное обеспечение из этого репозитория полностью
## НЕ ПОДДЕРЖИВАЕТСЯ командой Ubuntu. Также, пожалуйста, обратите внимание, что программное обеспечение в universe
## НЕ будет получать никаких
## обзоров или обновлений от команды безопасности Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ jaunty universe
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty universe
deb http://de.archive.ubuntu.com/ubuntu/ jaunty-updates universe
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty-updates universe
## Обратите внимание. Программное обеспечение из этого репозитория полностью
## НЕ ПОДДЕРЖИВАЕТСЯ командой Ubuntu и может не находиться под свободной лицензией. Пожалуйста, убедитесь в своих
## правах на использование программного обеспечения. Также, пожалуйста, обратите внимание, что программное обеспечение в
## multiverse НЕ будет получать никаких обзоров или обновлений от команды безопасности Ubuntu.
deb http://de.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty multiverse
deb http://de.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty-updates multiverse
## Раскомментируйте следующие две строки, чтобы добавить программное обеспечение из репозитория 'backports'
## Обратите внимание. Программное обеспечение из этого репозитория может не быть протестировано так
## тщательно, как то, что содержится в основном релизе, хотя оно включает
## более новые версии некоторых приложений, которые могут предоставить полезные функции.
## Также, пожалуйста, обратите внимание, что программное обеспечение в backports
## НЕ будет получать никаких обзоров или обновлений от команды безопасности Ubuntu.
# deb http://de.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
# deb-src http://de.archive.ubuntu.com/ubuntu/ jaunty-backports main restricted universe multiverse
## Раскомментируйте следующие две строки, чтобы добавить программное обеспечение из репозитория
## 'партнер' Canonical.
## Это программное обеспечение не является частью Ubuntu, но предлагается Canonical и
## соответствующими поставщиками как услуга для пользователей Ubuntu.
# deb http://archive.canonical.com/ubuntu jaunty partner
# deb-src http://archive.canonical.com/ubuntu jaunty partner
deb http://security.ubuntu.com/ubuntu jaunty-security main restricted
deb-src http://security.ubuntu.com/ubuntu jaunty-security main restricted
deb http://security.ubuntu.com/ubuntu jaunty-security universe
deb-src http://security.ubuntu.com/ubuntu jaunty-security universe
deb http://security.ubuntu.com/ubuntu jaunty-security multiverse
deb-src http://security.ubuntu.com/ubuntu jaunty-security multiverseЗатем выполните следующее, чтобы обновить базу данных пакетов apt:
aptitude updateВыполните следующее, чтобы установить последние обновления:
aptitude safe-upgradeЕсли вы увидите, что новая версия ядра устанавливается в рамках обновлений, вам следует перезагрузить систему после этого:
5. Измените оболочку по умолчанию
/bin/sh является символической ссылкой на /bin/dash, однако нам нужна /bin/bash, а не /bin/dash. Поэтому мы делаем следующее:
dpkg-reconfigure dashУстановить dash как /bin/sh? <– Нет
6. Отключите AppArmor
AppArmor - это расширение безопасности (аналог SELinux), которое должно обеспечивать расширенную безопасность. На мой взгляд, вам не нужно это для настройки безопасной системы, и оно обычно вызывает больше проблем, чем преимуществ (подумайте об этом после того, как вы провели неделю, устраняя неполадки, потому что какая-то служба не работала так, как ожидалось, а затем вы выясняете, что все было в порядке, только AppArmor вызывало проблему). Поэтому я отключаю его (это обязательно, если вы хотите установить ISPConfig позже).
Мы можем отключить его следующим образом:
/etc/init.d/apparmor stop
update-rc.d -f apparmor remove
aptitude remove apparmor apparmor-utils7. Установите несколько программ
Теперь мы установим несколько пакетов, которые понадобятся позже:
aptitude install binutils cpp fetchmail flex gcc libarchive-zip-perl libc6-dev libcompress-zlib-perl libdb4.6-dev libpcre3 libpopt-dev lynx m4 make ncftp nmap openssl perl perl-modules unzip zip zlib1g-dev autoconf automake1.9 libtool bison autotools-dev g++ build-essential unrar8. Синхронизируйте системные часы
Хорошая идея - синхронизировать системные часы с сервером NTP (протокол сетевого времени) через интернет. Просто выполните:
apt-get install ntp ntpdate9. Кэширование Dnsmasq
apt-get install dnsmasqОтредактируйте /etc/dnsmasq.conf и заставьте Dnsmasq слушать на localhost:
listen-address=127.0.0.1 Отредактируйте /etc/resolv.conf и добавьте следующее в начало списка:
nameserver 127.0.0.1 Get new posts in your inbox
No spam. Unsubscribe anytime.