Back

linux - 如何搭建mail server 失败了.

发布时间: 2018-09-17 07:12:00

这个领域我一直没有涉足过. 之前只是在使用 qqmail, 163 mail, 不过现在这两者似乎开始不支持 自定义域名了. 一个域名邮箱一千块,没有啥技术含量(来自软件程序员的藐视... @.@ ) 所以我打算自己搭建了. 

参考:  https://www.howtoforge.com/tutorial/perfect-server-ubuntu-18-04-nginx-bind-dovecot-and-ispconfig-3/

已经说的非常明确了. 

1. 注册. 我选择的是 linode,   google cloud 太TMD贵了....  linode  2G内存. 一个月 20$. 好便宜

2. 安装 ubuntu 18 

3. apt-get update,  apt-get upgrade, 修改 SSH端口号.

4. dpkg-reconfigure dash    ,提问时,选择 No

5. 干掉 apparmor. 

service apparmor stop
update-rc.d -f apparmor remove
apt-get remove apparmor apparmor-utils

6. 同步系统时钟

apt-get -y install ntp ntpdate

7. 

service sendmail stop; update-rc.d -f sendmail remove   (对于干净系统来说, 不需要这个)

apt-get -y install postfix postfix-mysql postfix-doc mariadb-client mariadb-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve dovecot-lmtpd sudo

7.1 提问:    internal site. 

7.2  system mail name:  my.server

7.3 修改配置文件:/etc/postfix/master.cf   增加下面的内容.    (  -o  前面一定要有空格啊亲)

smtp      inet  n       -       y       -       -       smtpd
  -o syslog_name=postfix/smtps
  -o smtpd_tls_wrappermode=yes
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
submission inet n       -       y       -       -       smtpd
  -o syslog_name=postfix/submission
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject

7.4 重启 postfix:  service postfix restart

7.5 编辑 数据库(类似 mysql 的 mariadb)  nano /etc/mysql/mariadb.conf.d/50-server.cnf

注释掉:  bind-address = 127.0.0.1   这句话. (前面保证加上# 就好了 )

7.6 mysql_secure_installation  做一些配置就好了. 

7.7 echo "update mysql.user set plugin = 'mysql_native_password' where user='root';" | mysql -u root

7.8 nano /etc/mysql/debian.cnf  把这个文件中的password填上 .

7.9 重启 数据库:  service mysql restart    (Maria DB 也是这个命令)   

可以使用这个命令查看mysql是否在运行: netstat -tap | grep mysql

8. 安装一系列的 软件: Amavisd-new, SpamAssassin, And ClamAV


8.1 apt-get -y install amavisd-new spamassassin clamav clamav-daemon unzip bzip2 arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl clamav-docs daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl zip libnet-dns-perl postgrey

8.2 service spamassassin stop
update-rc.d -f spamassassin remove

freshclam (这个命令会报错,没关系, 只要有这样的进程跑着就可以了 )
service clamav-daemon start

8.3 为 amavisd 打补丁

cd /tmp
wget https://git.ispconfig.org/ispconfig/ispconfig3/raw/stable-3.1/helper_scripts/ubuntu-amavisd-new-2.11.patch
cd /usr/sbin
cp -pf amavisd-new amavisd-new_bak
patch < /tmp/ubuntu-amavisd-new-2.11.patch

9. 安装 XMPP服务器

9.1 

apt-get -y install git lua5.1 liblua5.1-0-dev lua-filesystem libidn11-dev libssl-dev lua-zlib lua-expat lua-event lua-bitop lua-socket lua-sec luarocks luarocks

luarocks install lpc

9.2  安装  Metronome. 

adduser --no-create-home --disabled-login --gecos 'Metronome' metronome

cd /opt; git clone https://github.com/maranda/metronome.git metronome
cd ./metronome; ./configure --ostype=debian --prefix=/usr
make
make install

10. 安装 nginx

10.1 apt-get install nginx
service nginx start
apt-get -y install php7.2-fpm
apt-cache search php7.2
apt-get -y install php7.2 php7.2-common php7.2-gd php7.2-mysql php7.2-imap php7.2-cli php7.2-cgi php-pear mcrypt imagemagick libruby php7.2-curl php7.2-intl php7.2-pspell php7.2-recode php7.2-sqlite3 php7.2-tidy php7.2-xmlrpc php7.2-xsl memcached php-memcache php-imagick php-gettext php7.2-zip php7.2-mbstring php-soap php7.2-soap

10.2  编辑: /etc/php/7.2/fpm/php.ini

[...]
cgi.fix_pathinfo=0
[...]
date.timezone="Asia/Shanghai"
[...]

10.3 service php7.2-fpm reload

10.4 apt-get -y install fcgiwrap

10.5 apt-get -y install phpmyadmin php-mbstring php-gettext

这个时候会有两个窗口需要选择:

Web server to reconfigure automatically: <-- select none (because only apache2 and lighttpd are available as options)   就是, 啥也不选, (不要在对应选项上按空格) 然后按OK就行.
MySQL application password for phpmyadmin: <-- Press Enter  这里就是输入phpadmin的密码.

11. 

apt-get -y install hhvm

apt-get -y install certbot

certbot register

apt-get -y install mailman  这里至少选择一个语言(英语)

newlist mailman 从管理员的视角查看. 所以这一步会创建一个 mailman的管理员账号, 记住用户名和密码1

vim /etc/aliases

Back