Postfix垃圾邮件过滤器使用Ubuntu Dapper,MailScanner,SpamAssassin,Razor,Pyzor,DCC和ClamAV
介绍
这是一个类似版本的HOWTO,可以在这里找到: http : //www200.pair.com/mecham/spam/spamfilter20050628.html 。 如果您正在考虑这一点,那么假设您对电子邮件服务器,DNS,TCP / IP,防火墙和Linux一般有一定的经验。
1设置Ubuntu服务器
有关设置Ubuntu服务器的详细信息,请参阅已在线的文档。 HowToForge有几个非常详细的HowTo。 然而,这里概述了几个安装配置,在设置可能与其他操作系统不同的服务器时,应该考虑这些。
NOTE: Ubuntu is installed as a setuid system by default. What that means is that the root account is disabled and you have to run everything with a 'sudo' in front of it to run it as root. The way around this is to run 'sudo su -' and you will no longer have to type 'sudo' in front of the command because you are in a bash session as root. For the rest of this document it is assumed that you have done this and are running a bash session as root so no sudo commands will be given. Moral of the story is, when you log into Ubuntu via SSH or console, remember to run 'sudo su -' before you start editing system files, moving/making directories or installing/uninstalling software and services.
1.1分区
以这种方式分区驱动器不是一个要求,但如果/ var目录中
出现问题,则会使您的服务器无法正常运行。 此外,以这种方式分区驱动器将允许您使用MailScannerMRTG创建一些额外的图形,可以分别查看/ var
, / var / log
和/ var / spool
。 MailScannerMRTG不会检查目录上的驱动器空间,它只能按分区计算大小。
Example of my partition table: /boot 50MB Boot Partition EXT3 (PRIMARY) Swap 2GB Swap Partition (Size depends on your Memory, double your memory should be fine) (PRIMARY) / 2GB Root Partition EXT3 (LOGICAL) /var 1GB Variable Data partition EXT3 (LOGICAL) /var/log 3GB Variable Data partition EXT3 (LOGICAL) /var/spool 2GB Variable Data partition Spool EXT3 (LOGICAL) /usr 4GB User installed programs EXT3 (LOGICAL) /usr/local 2GB User installed programs EXT3 (LOGICAL) /home ANY Home Directories (Good place to put any extra space, you can repartition if you run out of space and use this.) EXT3 (LOGICAL)
1.2验证网络设置
我们需要确保系统设置有效的静态IP,正确的DNS服务器位于/etc/resolv.conf中
,您的服务器在/ etc / hosts
文件中标识。
vi /etc/network/interfaces
网络接口文件应如下所示:
auto lo eth0 iface lo inet loopback # The primary network interface iface eth0 inet static address 192.168.1.100 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.1
重新启动网络服务以使这些更改生效:
/etc/init.d/networking restart
编辑resolv.conf
文件以添加DNS服务器:
vi /etc/resolv.conf
确保你的域名是在resolv.conf
的顶部,它应该看起来像这样:
search example.com nameserver 192.168.0.1 nameserver 192.168.0.2
vi /etc/hosts
文件的顶部应该是这样的:
127.0.0.1 localhost.localdomain localhost 192.168.0.100 sfp.example.com sfp
既然我们在这里,你可以添加你想要我们的垃圾邮件过滤器知道的任何其他主机。 在这里添加任何内部邮件服务器。 只需将任何其他条目附加到列表的底部。
1.3 APT和其他调整
需要设置Apt以在宇宙和多元存储库中进行搜索。 备份您当前的/etc/apt/sources.list
:
cp /etc/apt/sources.list /etc/apt/sources.list.default
将其替换为以下sources.list
文件:
vi /etc/apt/sources.list
deb http://us.archive.ubuntu.com/ubuntu dapper main restricted deb-src http://us.archive.ubuntu.com/ubuntu dapper main restricted deb http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted deb-src http://us.archive.ubuntu.com/ubuntu dapper-updates main restricted deb http://us.archive.ubuntu.com/ubuntu dapper universe multiverse deb-src http://us.archive.ubuntu.com/ubuntu dapper universe multiverse deb http://security.ubuntu.com/ubuntu dapper-security main restricted deb-src http://security.ubuntu.com/ubuntu dapper-security main restricted deb http://security.ubuntu.com/ubuntu dapper-security universe multiverse deb-src http://security.ubuntu.com/ubuntu dapper-security universe multiverse
我们需要更新/刷新apt缓存并安装一些软件。 要更新缓存运行:
apt-get update
注意:这是将内核映像更改为正确的一个好时机,很可能需要“linux-image-i686”。 如果你不知道这是什么意思,请查看。 运行apt-get升级
,并花一点时间解决任何可能遇到的错误或问题。 我们想要消除将来可能引起问题的任何东西。 一旦一切都准备好并运行一个快速的dmesg |,
请记住重新启动 少了
,可以走很长的路。
apt-get install ssh
一旦安装ssh,您应该通过ssh使用PuTTY从您的linux或Windows桌面连接到服务器。 这样可以更容易地获得其余的功能,因为您将能够从桌面复制/粘贴到终端上。 所以去吧,ssh这只小狗。
我通常只需将BIOS时钟设置为本地时间,然后运行以下操作来同步时钟。
apt-get install ntpdate
hwclock --systohc
现在我们安装大部分我们需要的东西。 我将列表分成4个APT安装运行。 5-15安装一次似乎谨慎,由你决定:
apt-get install libc6-dev dpkg-dev db4.3-util libdb4.3-dev vim lynx bzip2 unzip perl-doc libwww-perl ntp-simple
apt-get install zlib1g-dev zip libdbi-perl libconvert-binhex-perl gcc make autoconf automake libtool libmail-spf-query-perl rblcheck libnet-ident-perl
apt-get install flex bison libcompress-zlib-perl pax libberkeleydb-perl ncftp unzoo arj lzop nomarch arc zoo
apt-get install postfix postfix-pcre postfix-mysql postfix-ldap cabextract lha unrar razor pyzor spamassassin
当Postfix的Debconf出现时,请选择NO CONFIGURATION。
安装unarj:
wget http://archive.ubuntu.com/ubuntu/pool/universe/a/arj/unarj_3.10.21-2_all.deb
dpkg -i unarj_3.10.21-2_all.deb
现在我们还需要删除一些程序,希望您不需要PCMCIA或打印机支持。 该服务器也不需要拨号支持。 您不一定会安装所有这些程序。
卸载以下软件(全部一行):
apt-get remove ipchains lpr nfs-common portmap pidentd pcmcia-cs pcmciautils pppoe pppoeconf ppp pppconfig uw-imapd qpopper mailagent
1.6清理服务
即使卸载了后台程序,某些服务也可能仍然停留。 首先我们需要备份inet.d:
cp -R /etc/init.d /etc/init.d.backup
现在我们可以停止可能运行的所有不需要的服务:
/etc/init.d/lpd stop
update-rc.d -f lpd remove
/etc/init.d/nfs-common stop
update-rc.d -f nfs-common remove
/etc/init.d/portmap stop
update-rc.d -f portmap remove
/etc/init.d/pcmcia stop
update-rc.d -f pcmcia remove
/etc/init.d/pcmciautils stop
update-rc.d -f pcmciautils remove
/etc/init.d/ppp stop
update-rc.d -f ppp remove
/etc/init.d/exim4 stop
update-rc.d -f exim4 remove
update-rc.d -f ntpdate remove
禁用我们停止的所有服务:
update-inetd --disable time
update-inetd --disable daytime
update-inetd --disable echo
update-inetd --disable chargen
update-inetd --disable ident
update-inetd --disable discard
最后一个可能会问你有关“多个条目”的问题,回答是(y)。
检查我们得到的一切:
lsof -i | grep LISTEN
你应该看到的唯一守护进程是*:ssh。 您可能需要再次运行:
update-inetd --disable discard
如果显示其他程序,请尝试重新启动并再次测试。