分享
 
 
 

我的POSTFIX安装笔记

王朝other·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

本文参照http://mail.toping.net/doc/freebsd_postfix_405.htm这个修改一小部分而来的

首先先得安装APACHE MYSQL 等内容,这些请参照原版安装说明!

1.6 通过phpMyadmin设置数据库

建立postfix数据库(注意:数据库名称为postfix):

进入PHPMYADMIN

建立 postfix 数据库

在左边点postfix,进入postfix数据库,在右边sql里输入下面的代码:

CREATE TABLE domaininfo (

domain_id int(5) NOT NULL auto_increment,

domain varchar(25) NOT NULL default '',

alias varchar(30) default NULL,

passwd varchar(35) NOT NULL default '',

usernum int(5) NOT NULL default '0',

quota int(11) NOT NULL default '0',

des varchar(30) default NULL,

expire date NOT NULL default '0000-00-00',

active tinyint(1) NOT NULL default '1',

create_time datetime default NULL,

PRIMARY KEY (domain_id),

UNIQUE KEY domain (domain),

KEY domain_id (domain_id)

) TYPE=MyISAM COMMENT='domain information';

INSERT INTO domaininfo VALUES (1,'admin',NULL,'$1$.j3.t12.$I7MGf7ZD2HrWwUWQF88Mg1',0,0,'Super Admin','0000-00-00',1,'0000-00-00 00:00:00');

CREATE TABLE userinfo (

id int(11) NOT NULL auto_increment,

userid varchar(20) NOT NULL default '',

domain_id int(5) NOT NULL default '0',

address varchar(50) NOT NULL default '',

alias varchar(60) default NULL,

passwd varchar(35) NOT NULL default '',

realname varchar(20) default NULL,

quota int(11) NOT NULL default '0',

active tinyint(1) NOT NULL default '0',

homedir varchar(60) NOT NULL default '',

maildir varchar(60) NOT NULL default '',

create_time datetime NOT NULL default '0000-00-00 00:00:00',

`fax` varchar(20) NOT NULL default '',

`telephone` varchar(15) NOT NULL default '',

`sex` int(1) NOT NULL default '0',

`year` int(4) NOT NULL default '0',

`MONTH` int(2) NOT NULL default '0',

`DAY` int(2) NOT NULL default '0',

`education` varchar(4) NOT NULL default '',

`marital` int(1) NOT NULL default '0',

`occupation` varchar(15) NOT NULL default '',

`companyname` varchar(30) NOT NULL default '',

`province` varchar(6) NOT NULL default '',

PRIMARY KEY (id),

UNIQUE KEY address (address)

) TYPE=InnoDB COMMENT='User Information';

在左边点mysql,进放mysql数据库,在右边sql里输入(在输入前先把下面代码里"密码"的密码换你自己的密码并记住,后面有用)

INSERT INTO user (host,user,password) VALUES('localhost','postfix','');

update user set password=password('密码') where User='postfix';

GRANT ALL ON postfix.* TO postfix@localhost IDENTIFIED BY "postfix";

至此,postfix数据库设置完成

以前装过webmail或qmail之类的朋友请先执行下面这一步,否则imap可能安装出错。没有安装过的,请跳过此步直接进入courier-imap安装

cd /usr/ports/security/courier-authlib

make deinstall

1.7 安装Courier-imap

mail# cd /usr/ports/mail/courier-imap

mail# make WITHOUT_OPENSSL=yes WITH_MYSQL=yes install clean

我的选择:

在/etc/rc.conf中加入:

courier_authdaemond_enable="YES"

courier_imap_pop3d_enable="YES"

courier_imap_imapd_enable="YES"

mail# /usr/local/etc/rc.d/courier-authdaemond.sh start

此时会在/var/run/authdaemond/下产生socket

mail# cd /usr/local/etc/courier-imap

mail# cp imapd.cnf.dist imapd.cnf

mail# cp pop3d.cnf.dist pop3d.cnf

1.8 安装 postfix 和 cyrus-sasl

mail# cd /usr/ports/security/cyrus-sasl2

mail# make WITH_AUTHDAEMON=yes install clean

创建/usr/local/lib/sasl2/smtpd.conf

内容如下:

pwcheck_method: authdaemond

log_level: 3

mech_list: PLAIN LOGIN

authdaemond_path:/var/run/authdaemond/socket

至此,认证部分基本完成。

mail# cd /usr/ports/mail/postfix

mail# make install clean

我的选择:

回答下面的两问题:

You need user "postfix" added to group "mail".

Would you like me to add it [y]? y

Would you like to activate Postfix in /etc/mail/mailer.conf [n]? n

在/etc/rc.conf中加入:

sendmail_enable="YES"

sendmail_flags="-bd"

sendmail_pidfile="/var/spool/postfix/pid/master.pid"

sendmail_procname="/usr/local/libexec/postfix/master"

sendmail_outbound_enable="NO"

sendmail_submit_enable="NO"

sendmail_msp_queue_enable="NO"

mail# cd /usr/local/etc/rc.d

mail# ln -s /usr/local/sbin/postfix postfix.sh

mail# ln -s /usr/local/sbin/sendmail /usr/sbin/sendmail #如果/usr/sbin/sendmail存在就删了再做上链接

mail# echo 'postfix: root' /etc/aliases 中间的空格用"tab"实现

mail# /usr/local/bin/newaliases

mail# chown postfix:postfix /etc/opiekeys

1.9 安装expect

用于Web客户端建立邮件用户

mail# cd /usr/ports/lang/expect

mail# make install clean

Chapter 2. 配置邮件服务器

本节主要讲述各种服务的参数配置。

2.1 配置rc.conf,编辑/etc/rc.conf,

检查一下是否有以下内容:

mysql_enable="YES"

apache2_enable="YES"

courier_authdaemond_enable="YES"

courier_imap_pop3d_enable="YES"

courier_imap_imapd_enable="YES"

sendmail_enable="YES"

sendmail_flags="-bd"

sendmail_pidfile="/var/spool/postfix/pid/master.pid"

sendmail_procname="/usr/local/libexec/postfix/master"

sendmail_outbound_enable="NO"

sendmail_submit_enable="NO"

sendmail_msp_queue_enable="NO"

2.2 配置postfix 和 cyrus-sasl

(1)创建/etc/periodic.conf

ee /etc/periodic.conf

daily_clean_hoststat_enable="NO"

daily_status_mail_rejects_enable="NO"

daily_status_include_submit_mailq="NO"

daily_submit_queuerun="NO"

(2)修改/usr/local/etc/postfix/main.cf,在文件最后加入以下内容

mail# ee /usr/local/etc/postfix/main.cf

smtpd_helo_required = yes

strict_rfc821_envelopes = yes

smtpd_etrn_restrictions = permit_mynetworks, reject

#=====================BASE=====================

myhostname = mail.pc51.net //换成你自己的域名

mydomain = pc51.net //换成你自己的域名

mydestination = $myhostname

local_recipient_maps =

command_directory = /usr/local/sbin

local_transport = virtual

#=====================MySQL=====================

virtual_alias_maps = mysql:/usr/local/etc/postfix/mysql_virtual_alias_maps.cf

virtual_gid_maps = static:125

virtual_mailbox_base = /

virtual_mailbox_domains = mysql:/usr/local/etc/postfix/mysql_virtual_domains_maps.cf

virtual_mailbox_limit = 51200000

virtual_mailbox_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

virtual_minimum_uid = 125

virtual_transport = virtual

virtual_uid_maps = static:125

#=====================Quota=====================

virtual_create_maildirsize = yes

virtual_mailbox_extended = yes

virtual_mailbox_limit_maps = mysql:/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

virtual_mailbox_limit_override = yes

virtual_maildir_limit_message = Sorry, the user's maildir has overdrawn his diskspace quota, please try again later.

virtual_overquota_bounce = yes

#====================SASL=====================

smtpd_sasl_auth_enable = yes

smtpd_sasl_security_options = noanonymous

broken_sasl_auth_clients = yes

smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject

smtpd_client_restrictions = permit_sasl_authenticated

(3)确认/usr/local/etc/postfix/master.cf的配置有如下内容

virtual unix - n n - - virtual

(4)编辑/usr/local/etc/postfix/mysql_virtual_alias_maps.cf

mail# ee /usr/local/etc/postfix/mysql_virtual_alias_maps.cf

user = postfix

password = 换成上面数据库里的密码

hosts = localhost

dbname = postfix

query = SELECT alias FROM userinfo WHERE address='%s' AND active=1

(5)编辑/usr/local/etc/postfix/mysql_virtual_domains_maps.cf

mail# ee /usr/local/etc/postfix/mysql_virtual_domains_maps.cf

user = postfix

password = 换成上面数据库里的密码

hosts = localhost

dbname = postfix

query = SELECT domain FROM domaininfo WHERE domain='%s'

(6)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

mail# ee /usr/local/etc/postfix/mysql_virtual_mailbox_maps.cf

user = postfix

password = 换成上面数据库里的密码

hosts = localhost

dbname = postfix

query = SELECT maildir FROM userinfo WHERE address='%s' AND active=1

(7)编辑/usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

mail# ee /usr/local/etc/postfix/mysql_virtual_mailbox_limit_maps.cf

user = postfix

password = 换成上面数据库里的密码

hosts = localhost

dbname = postfix

query = SELECT quota FROM userinfo WHERE username='%s'

2.3 配置Courier-imap

(1)修改Courier相关设置,/usr/local/etc/courier-imap/imapd:

IMAP_CAPABILITY="IMAP4rev1 CHILDREN NAMESPACE THREAD=ORDEREDSUBJECT THREAD=REFERENCES SORT AUTH=CRAM-MD5 AUTH=CRAM-SHA1 IDLE"

(2)修改/usr/local/etc/courier-imap/pop3d

POP3AUTH="LOGIN CRAM-MD5 CRAM-SHA1"

(3)编辑修改/usr/local/etc/authlib/authmysqlrc

mail# mv /usr/local/etc/authlib/authmysqlrc /usr/local/etc/auhtlib/authmysqlrc_bak

mail# ee /usr/local/etc/authlib/authmysqlrc

MYSQL_SERVER localhost

MYSQL_USERNAME postfix

MYSQL_PASSWORD 换成上面数据库里的密码

MYSQL_PORT 0

MYSQL_OPT 0

MYSQL_DATABASE postfix

MYSQL_USER_TABLE userinfo

MYSQL_CRYPT_PWFIELD passwd

MYSQL_UID_FIELD '125'

MYSQL_GID_FIELD '125'

MYSQL_LOGIN_FIELD address

MYSQL_HOME_FIELD homedir

MYSQL_NAME_FIELD realname

MYSQL_MAILDIR_FIELD maildir

MYSQL_QUOTA_FIELD quota

(4)编辑/usr/local/etc/authlib/authdaemonrc

mail# mv /usr/local/etc/authlib/authdaemonrc /usr/local/etc/authlib/authdaemonrc_bak

mail# ee /usr/local/etc/authlib/authdaemonrc

authmodulelist="authmysql"

authmodulelistorig="authmysql"

version=“authdaemond.mysql”

daemons=5

authdaemonvar=/var/run/authdaemond

subsystem=mail

DEBUG_LOGIN=0

DEFAULTOPTIONS="wbnodsn=1"

重启服务器

Chapter 3. 手动设置第一个用户并测试

本章介绍如何开通用户,并且测试系统是否正常。(可以在phpmyadmin里操作,具体方法参照上面的)

Mail# mysql

mysql use postfix;

mysql show tables;

+-------------------+

| Tables_in_postfix |

+-------------------+

| address |

| admin |

| card |

| domaininfo |

| lastauth |

| logs |

| message |

| personal |

| scheduler |

| stow |

| userinfo |

| vpopmail |

+-------------------+

12 rows in set (0.00 sec)

增加域名和管理员

mysql desc domaininfo;

+-------------+-------------+------+-----+------------+----------------+

| Field | Type | Null | Key | Default | Extra |

+-------------+-------------+------+-----+------------+----------------+

| domain_id | int(5) | | PRI | NULL | auto_increment |

| domain | varchar(25) | | UNI | | |

| alias | varchar(30) | YES | | NULL | |

| passwd | varchar(35) | | | | |

| usernum | int(5) | | | 0 | |

| quota | int(11) | | | 0 | |

| des | varchar(30) | YES | | NULL | |

| expire | date | | | 0000-00-00 | |

| active | tinyint(1) | | | 1 | |

| create_time | datetime | YES | | NULL | |

+-------------+-------------+------+-----+------------+----------------+

10 rows in set (0.00 sec)

INSERT INTO `domaininfo` VALUES (7, \'pc51.net\', NULL, encrypt(\'whsong\'), 50, 500, NULL, \'0000-00-00\', 1, \'2005-04-19 23:19:11\');

Query OK, 1 row affected (0.00 sec)

INSERT INTO `userinfo` VALUES (8, \'webmaster\', 7, \'webmaster@pc51.net\', NULL,encrypt(\'000000\'), \'webmaster\', 209715200, 1, \'/var/mail/pc51.net/webmaster/\', \'/var/mail/pc51.net/webmaster/Maildir/\', \'2005-04-20 23:45:17\', \'\', \'\', 0, 0, 0, 0, \'\', 0, \'\', \'\', \'\');

mysqlquit

设置用户的目录与权限:

Mail# mkdir -p /var/mail/pc51.net/webmaster

Mail# /usr/local/bin/maildirmake /var/mail/pc51.net/webmaster/Maildir

Mail# chmod -R 777 /var/mail/pc51.net/

Mail# chown -R postfix:postfix /var/mail/pc51.net

至此用户设置完毕,这里只使用一个域名,同理可以设置多个域名

Chapter 4.安装postfix管理工具(省略)

4.2 用户登录测试

用户登录测试

安装p5-MIME-Base64

mail# cd /usr/ports/converters/p5-MIME-Base64/

mail# make install clean

通过p5-MIME-Base64来取得用户名和密码的base64编码

mail# perl -MMIME::Base64 -e \'print encode_base64(\"webmaster\\@pc51.net\");\'

d2VibWFzdGVyQHBjNTEubmV0

mail# perl -MMIME::Base64 -e \'print encode_base64(\"000000\");\'

MDAwMDAw

这步可用foxmail来测试

Chapter 5. 防病毒与防垃圾邮件

本章介绍病毒与垃圾邮件的防范。

5.1 安装Clamav

mail# cd /usr/ports/security/clamav

mail# make install clean

我的选择:

重启服务器

测试

mail# clamscan -r -i /usr/local/www/data

----------- SCAN SUMMARY -----------

Known viruses: 32358

Scanned directories: 47

Scanned files: 866

Infected files: 0

Data scanned: 10.32 MB

I/O buffer size: 131072 bytes

Time: 41.750 sec (0 m 41 s)

升级病毒库

mail# freshclam

ClamAV update process started at Fri May 6 00:12:24 2005

WARNING: Your ClamAV installation is OUTDATED - please update immediately!

WARNING: Local version: 0.83 Recommended version: 0.84

Downloading main.cvd

main.cvd updated (version: 31, sigs: 33079, f-level: 4, builder: tkojm)

Downloading daily.cvd

daily.cvd updated (version: 871, sigs: 1178, f-level: 4, builder: ccordes)

Database updated (34257 signatures) from database.clamav.net (IP: 61.8.0.16)

Clamd successfully notified about the update.

5.2 安装MailScanner

mail# cd /usr/ports/mail/mailscanner

mail# make install

第一次执行安装因此需执行make initial-config以建立基本配置文件

mail# make initial-config

mail# make clean

5.3 安装SpamAssassin

mail# cd /usr/ports/mail/p5-Mail-SpamAssassin

mail# make install clean

5.4修改Postfix设定档main.cf

mail# ee /usr/local/etc/postfix/main.cf

#header_checks = regexp:/usr/local/etc/postfix/header_checks //默认值

header_checks = regexp:/usr/local/etc/postfix/header_checks //把注释去掉

mail# ee /usr/local/etc/postfix/header_checks

/^Received:/ HOLD //新加入

5.5修改mailscanner.conf

mail# ee /usr/local/etc/MailScanner/MailScanner.conf

#Run As User = //默认值

Run As User = postfix //修改后

#Run As Group = //默认值

Run As Group = postfix //修改后

#Incoming Queue Dir = /var/spool/mqueue.in //默认值

Incoming Queue Dir = /var/spool/postfix/hold //修改后

#Outgoing Queue Dir = /var/spool/mqueue //默认值

Outgoing Queue Dir = /var/spool/postfix/incoming //修改后

#MTA = sendmail //默认值

MTA = postfix //修改后

#Virus Scanners = none //默认值

Virus Scanners = clamav //修改后

#Use SpamAssassin = no //默认值

Use SpamAssassin = yes //修改后

5.6新增MailScanner所要用到的资料夹

mkdir /var/spool/MailScanner

mkdir /var/spool/MailScanner/incoming

mkdir /var/spool/MailScanner/quarantine

chown postfix:postfix /var/spool/MailScanner/incoming

chown postfix:postfix /var/spool/MailScanner/quarantine

touch /usr/local/etc/MailScanner/rules/bounce.rules //新建一个空白文件,要不然会出错。

chmod -R 777 /var/spool/postfix

cp /usr/local/etc/MailScanner/mcp/10_example.cf.sample /usr/local/etc/MailScanner/mcp/10_example.cf

cp /usr/local/etc/MailScanner/mcp/mcp.spam.assassin.prefs.conf.sample /usr/local/etc/MailScanner/mcp/mcp.spam.assassin.prefs.conf

重起系统

测试病毒过滤:

mail# telnet localhost 25

Trying ::1...

telnet: connect to address ::1: Connection refused

Trying 127.0.0.1...

Connected to localhost.

Escape character is \'^]\'.

220 mail.toping.net ESMTP Postfix

mail from:webmaster@toping.net

250 Ok

rcpt to:webmaster@toping.net

250 Ok

data

354 End data with .

Subject:Virus test

X5O!P%@AP[4\\PZX54(P^)7CC)7}$EICAR-STANDARD-ANTIVIRUS-TEST-FILE!$H+H*

.

250 Ok: queued as F0C221CC20 //出现F0C221CC20这行表示mailscanner运行成功了

quit

221 Bye

Connection closed by foreign host.

5.7把病毒提示信息改为中文

预设系统提示信息为英文,可以下载我修改的中文包。

http://mail.toping.net/mailscanner/cn.rar

cd /usr/local/share/MailScanner/reports

fetch http://mail.toping.net/mailscanner/cn.rar

rar x cn.rar

rm cn.rar

然后编辑 MailScanner.conf

ee /usr/local/etc/MailScanner/MailScanner.conf

加入下面的内容

#%report-dir% = /usr/local/share/MailScanner/reports/en //默认值(加载英文)

%report-dir% = /usr/local/share/MailScanner/reports/cn //修改后为读取中文

5.8.安装APF防垃圾邮件

http://apf.org.cn

http://mail.toping.net/apf/apf.rar

下载最新的APF包解压到/usr/local/etc/postfix目录。 解包过程参照上面的

这时/usr/local/etc/postfix目录里边有一个apf-posftix.pl的文件

修改/usr/local/etc/postfix/master.cf

mail# ee /usr/local/etc/postfix/master.cf

加入:

apf unix - n n - - spawn

user=nobody argv=/usr/bin/perl /usr/local/etc/postfix/apf-postfix.pl

修改/usr/local/etc/postfix/main.cf

mail# ee /usr/local/etc/postfix/main.cf

把下面一行注释掉

#smtpd_recipient_restrictions = permit_sasl_authenticated permit_auth_destination reject

加入下面一行到上面注释掉那一行的下边

smtpd_recipient_restrictions = reject_non_fqdn_sender permit_sasl_authenticated permit_mynetworks reject_unauth_destination check_policy_service unix:private/apf reject_unknown_recipient_domain

增加黑白名单:

1、IP黑名单:

ip_black_list.txt

2、IP白名单

ip_white_list.txt

3、域名黑名单

dn_black_list.txt

4、域名白名单

dn_white_list.txt

Chapter 6. 安装webmail

如何使用本人修改的iGENUS for Postfix 2.01

[下载]

http://mail.toping.net/igenus/igenus_for_postfix_2.01.rar

webmail使用igenus,版本是iGENUS for Postfix 2.01

建议下载本人修改的iGENUS for Postfix 2.01

安装方法参考论坛:

http://www.toping.net/viewthread.php?tid=174%26amp;fpage=1

安装autorespond。

mail# cd /usr/ports/mail/autorespond

mail# make install clean

修改/usr/local/etc/apache/httpd.conf

Group www、User www修改为: Group postfix、User postfix

mail# cd /usr/local/www/data

mail# chown -R postfix:postfix phpMyAdmin

mail# cd /usr/local/etc

mail# cp php.ini-dist php.ini

修改/usr/local/etc/php.ini

register_globals = On

max_execution_time = 30 //改为60 (增加处理脚本的时间限制)

memory_limit = 8M //改为40M (这样才能发10M的附件)

post_max_size = 8M //改为10M

upload_max_filesize = 2M //改为10M

重启apache

mail# /usr/local/etc/rc.d/apache2.sh restart

至此安装完毕

输入网址http://mail.pc51.net就可以使用WEBMAIL了:)

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有