iRedMail搭建

准备工具

1、干净的 VPS 一台,内存最好大于 1 GB,推荐 CentOS、Ubuntu,以下教程用 CentOS 演示,Ubuntu 请自行更换 yum 命令即可。

(CentOS 项目将重点转移到 CentOS Stream,CentOS 8 将在 2021 年底结束)

2、VPS 最好支持 PTR Records,演示用的 VPS 来自 搬瓦工

3、域名一个,推荐托管 cloudflare (解析生效快)

(若是没有域名,或是不会注册,或是不会托管到 cloudflare ,请点击这里

4、规划好作为邮件服务器的域名,演示用 mail.bozai.us,把该域名解析到 VPS IP。

搭建 iRedMail 邮件服务器

设置 VPS 以及系统

更新系统、安装组件

yum update -yyum install wget curl sudo tar socat bind-utils -y

设置 VPS 主机名

我们规划邮局的域名为 mail.bozai.us ,所以,我们需要对 VPS 的主机名进行设置。

首先,需要编辑 /etc/hosts 文件,找到含有你的 VPS IP 地址的那一行;如果没有,则添加一行。内容如下:

127.0.0.1 mail.bozai.us mail

其中, 127.0.0.1 可换为你的服务器 IP 地址,后面依次填入长主机名和短主机名,切记不可填反。

然后,我们找到 VPS 的 /etc/hostname 文件,编辑里面的内容为 mail (域名的前缀)

这样,就设置好了主机名。重启 VPS( 搬瓦工 用户进行到这步,第一次重启请去后台强制重启)。

此时我们检查一下是否设置正确:

执行:hostname

此时我们应该只能看到短主机名 mail. 如果你看到了长主机名 mail.bozai.us , 说明之前设置错误,请重新检查上述步骤。

执行:hostname -f

此时,我们应该只能看到长主机名 mail.bozai.us

这样,我们就全部设置好了主机名(hostname), 可以进行接下来的其他操作了

下载并安装 iRedMail

作者写这篇博文的时候,iRedMail 的最新版为 1.4.2,若是版本进行了更新,请大家自行修改下面命令中的版本号。

iRedMail 最新版下载:点击查看最新版

wget https://github.com/iredmail/iRedMail/archive/1.4.2.tar.gz -O /root/iRedMail.tar.gztar -xf iRedMail.tar.gzcd iRedMail-1.4.2bash iRedMail.sh

按照以下图片的提示进行安装

设置安装目录

选择 web服务器

选择数据库类型

设置数据库密码

设置域,不可与 hostname 相同

设置管理员账号、密码

选择需要安装的组件

根据系统提示,一路输入 y 回车

重启服务器,让邮件服务器生效! 至此,邮件服务器搭建完毕,以下开始设置邮件服务器。

可以通过访问(当然,我们目前还没有解析域名,后面一起解析)https://你的域名/mail        ——邮件登录地址https://你的域名/netdata     ——服务器状态监控https://你的域名/iredadmin   ——邮件服务器后台管理 管理员账号:postmaster@你的域  例如 postmaster@163.com管理员密码:安装时候设置的密码以上信息,可以在 /root/iRedMail-1.4.2/iRedMail.tips 文件中查看

配置 iRedMail 邮件服务器

在申请证书之前,请完成 邮件服务器域名 的相关解析,我们规划的邮件服务器地址为 mail.bozai.us ,所以,申请证书之前,需要对把该域名指向 VPS IP。

申请证书

以下是 ACME 脚本申请证书

(后续自己把证书移动、覆盖到 /etc/pki/tls/private/iRedMail.key 以及 /etc/pki/tls/certs/iRedMail.crt )

为我们计划的邮件服务器域名 mail.bozai.us 申请证书,请自行替换命令行中的域名

curl https://get.acme.sh | sh~/.acme.sh/acme.sh --register-account -m xxxx@xxxx.com~/.acme.sh/acme.sh  --issue  -d mail.bozai.us  --webroot  /var/www/html~/.acme.sh/acme.sh --installcert -d mail.bozai.us --key-file /etc/pki/tls/private/iRedMail.key --fullchain-file /etc/pki/tls/certs/iRedMail.crt

重载服务

service postfix reload;service dovecot reload;service nginx reload

禁用 iRedMail 灰名单

找到 VPS 文件,/opt/iredapd/settings.py

plugins = ["reject_null_sender", "wblist_rdns", "reject_sender_login_mismatch", "greylisting", "throttle", "amavisd_wblist", "sql_alias_access_policy"]

将其中的 ”greylisting ” 这项删去即可(注意对齐格式,不会请看 演示视频)

然后,重启 iredapd

service iredapd restart

配置域名 DNS 及解析

设置 PTR 反向解析

其他 VPS 商家,请自行查阅,搬瓦工VPS 打开后台管理,在左边选项 Mail contrlos 里面,找到右边的 PTR Records (Reverse DNS),点击 set new record 设置即可。

检测方式:nslookup 8.8.8.8(服务器IP)

设置 A 记录

将 mail.bozai.us 的 A 记录指向你的 VPS 服务器(邮件服务器)

检测方式:nslookup mail.bozai.us

设置 MX 记录

MX 记录就是邮件的解析记录,非常重要的一条记录,配置根域名的 MX 记录为自己的邮件域名地址,优先级为 10

检测方式:nslookup -type=mx bozai.me

设置 SPF 记录

SPF 记录是为了防止垃圾邮件而设定的,告知收件方,从设置的允许列表中发出的邮件都是合法的,设置方式为添加一条根域名的 TXT 解析记录

内容为 v=spf1 mx ~all

检测方式:nslookup -type=txt bozai.us

设置 DKIM记录

DKIM 可说是避免被判定为垃圾邮件的一大利器,DKIM 属于一种类似加密签名的解析记录,只有包含此加密数据,且公钥与密钥相匹配才属于合法邮件,要设置 DKIM 记录,首先要查询 DKIM 信息。

查询DKIM 信息有两种方式:

第一种:在系统中执行命令查看:amavisd showkeys

若是出现报错:Config file "/etc/amavisd.conf" does not exist, at /usr/sbin/amavisd line

修改 /usr/sbin/amavisd 文件

搜索 config_files = ( '

把括号里面的路径改为 ‘/etc/amavisd/amavisd.conf’

第二种:直接查看 /root/iRedMail-1.4.2/iRedMail.tips 文件,里面有相应的 DKIM

将括号内的文本 去除引号以及空格并相连 就是咱们的 DKIM 数据,在解析中添加一条 dkim._domainkey 的 TXT 解析,内容就是咱们组合出的文本

测试方式:nslookup -type=txt dkim._domainkey.bozai.us

设置 DMARC 记录

DMARC 记录是当收件方检测到伪造邮件等行为时,将根据您的配置进行操作的一个记录,比如拒绝邮件或放入垃圾邮件以及不做处理等,同时会反馈一份检测报告到配置的邮箱地址内。

添加方法就是增加一条 _dmarc 的 TXT 解析,内容为配置选项,v=DMARC1; p=none; pct=100; rua=mailto:dmarc@bozai.us

检测方式:nslookup -type=txt _dmarc.bozai.us

添加 iRedMail 用户

当然,你可以直接使用刚才系统创建的系统管理员邮箱,我们另外也可以增加邮箱用户

登录前,选择你的网页语言,其他就很简单了,如下图

测试 iRedMail 邮件服务器

登录你的邮件服务器,里面的三封邮件是系统发过来的。

尝试用该邮件发送以及接收其他邮件的邮件,若是严格按照上面来配置,应该是一点问题都没有。

最后,我们访问 https://www.mail-tester.com/

按照网页上面给出的邮箱地址,我们用刚才搭建好的邮件服务器给这个地址发送一封邮件,然后点击测试。

记住,该测试,每 24小时 ,只允许同个域测试三次,所以需要测试还是需要谨慎发邮件,别发垃圾!

用刚才创建的用户,给 GMAIL 发一封邮件试试。

如果你是需要用其他客户端软件来收取或是发送邮件,端口列表在这里:

协议地址端口&加密端口
IAMP邮箱域名143,993
POP3邮箱域名110,995
SMTP邮箱域名25,587

我这边用的 “网易邮件大师”,可以完美的收发邮件,客户端如下配置:

收发邮件完美!

systemd-resolve占用53端口的解决方法

1、先停用 systemd-resolved 服务

systemctl stop systemd-resolved

2、编辑 /etc/systemd/resolved.conf 文件

vi /etc/systemd/resolved.conf

3、换下面说明更改,然后按一下“esc”键,再输入“:wq”(不要输入引号),回车保存即可。

[Resolve]
DNS=8.8.8.8  #取消注释,增加dns
#FallbackDNS=
#Domains=
#LLMNR=no
#MulticastDNS=no
#DNSSEC=no
#Cache=yes
DNSStubListener=no  #取消注释,把yes改为no

4、最后运行下面命令即可。

ln -sf /run/systemd/resolve/resolv.conf /etc/resolv.conf

VPS搭建DNS服务器

安装dnsmaq

以 centos 7 为例,直接执行如下命令:

yum -y install dnsmasq配置

1.配置文件在 /etc/dnsmasq.conf,我们要让它能用起来需要做如下配置:

#指定上游dns服务器

resolv-file=/etc/resolv.dnsmasq.conf

#表示严格按照 resolv-file 文件中的顺序从上到下进行 DNS 解析, 直到第一个成功解析成功为止

strict-order

# 开启后会寻找本地的hosts文件在去寻找缓存的域名,最后到上游dns查找

#no-resolv

listen-address=0.0.0.0 #0.0.0.0 设置为公网IP

conf-dir=/etc/dnsmasq.d # 我们的解析记录都写到这个目录下

2.创建 /etc/resolv.dnsmasq.conf,然后添加:

# cat /etc/resolv.dnsmasq.conf

nameserver 119.29.29.29

nameserver 114.114.114.114

nameserver 8.8.8.8

nameserver 168.95.1.1

3.然后 /etc/dnsmasq.conf中创建规则,如:

address=/baidu.com/127.0.0.1 #将百度的域名解析到127.0.0.1

address=/ad.youku.com/127.0.0.1 # 禁止优酷广告

address=/ad.iqiyi.com/127.0.0.1 # 禁止iqiyi广告

格式是:

address=/domain.com/dns

比如上面的百度,我就把它都解析到127.0.0.1。

dns服务器架设教程

实现DNS分流

可以在/etc/dnsmasq.conf 创建规则:

server=/cn/114.114.114.114 # cn的域名都走114的dns

server=/google.com/115.159.220.214 # 将谷歌的解析都走115.159.220.214

上面的是将所有cn结尾的域名都走114解析,下面是将google.com 走115.159.220.214解析。

启动dnsmaq:

service dnsmasq start

设置为开机自启动。

# systemctl enable dnsmasq

Created symlink from /etc/systemd/system/multi-user.target.wants/dnsmasq.service to /usr/lib/systemd/system/dnsmasq.service.

ubuntu使用前准备

更新系统:
yum update -y #CentOS系统命令
apt update -y #Debian系统命令
———ubuntu系统—–
启动bbr
sudo bash -c ‘echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf’
sudo bash -c ‘echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf’
sysctl -p

查看bbr是否开启成功
lsmod | grep bbr

开放端口
开放所有端口
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
关闭防火墙
apt-get purge netfilter-persistent
reboot
————–centos系统————
关闭防火墙
systemctl stop firewalld.service && systemctl disable firewalld.service
开启bbr
echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf
sysctl -p
sysctl -n net.ipv4.tcp_congestion_control
查看bbr是否开启成功
lsmod | grep bbr

ubuntu防火墙命令

sudo ufw disable 关闭防火墙

sudo ufw enable

开启防火墙

sudo ufw status

检查防火墙的状态

如何启动、关闭和设置ubuntu防火墙

引自:http://www.cnblogs.com/jiangyao/archive/2010/05/19/1738909.html

由于LInux原始的防火墙工具iptables过于繁琐,所以ubuntu默认提供了一个基于iptable之上的防火墙工具ufw。

ubuntu

9.10默认的便是UFW防火墙,它已经支持界面操作了。在命令行运行ufw命令就可以看到提示的一系列可进行的操作。

最简单的一个操作:sudo ufw status可检查防火墙的状态,我的返回的是:不活动

sudo ufw version防火墙版本:

ufw 0.29-4ubuntu1

Copyright 2008-2009 Canonical Ltd.

ubuntu 系统默认已安装ufw.

1.安装

sudo apt-get install ufw

2.启用

sudo ufw enable

sudo ufw default deny

运行以上两条命令后,开启了防火墙,并在系统启动时自动开启。关闭所有外部对本机的访问,但本机访问外部正常。

3.开启/禁用

sudo ufw allow|deny [service]

打开或关闭某个端口,例如:

sudo ufw allow smtp 允许所有的外部IP访问本机的25/tcp (smtp)端口

sudo ufw allow 22/tcp 允许所有的外部IP访问本机的22/tcp (ssh)端口

sudo ufw allow 53 允许外部访问53端口(tcp/udp)

sudo ufw allow from 192.168.1.100 允许此IP访问所有的本机端口

sudo ufw allow proto udp 192.168.0.1 port 53 to 192.168.0.2

port 53

sudo ufw deny smtp 禁止外部访问smtp服务

sudo ufw delete allow smtp 删除上面建立的某条规则

4.查看防火墙状态

sudo ufw status

一般用户,只需如下设置:

sudo apt-get install ufw

sudo ufw enable

sudo ufw default deny

以上三条命令已经足够安全了,如果你需要开放某些服务,再使用sudo ufw allow开启。

开启/关闭防火墙 (默认设置是’disable’)

sudo ufw enable|disable

转换日志状态

sudo ufw logging on|off

设置默认策略 (比如 “mostly open” vs “mostly closed”)

sudo ufw default allow|deny

许 可或者屏蔽端口 (可以在“status”

中查看到服务列表)。可以用“协议:端口”的方式指定一个存在于/etc/services中的服务名称,也可以通过包的meta-data。

‘allow’ 参数将把条目加入 /etc/ufw/maps ,而 ‘deny’ 则相反。基本语法如下:

sudo ufw allow|deny [service]

显示防火墙和端口的侦听状态,参见 /var/lib/ufw/maps。括号中的数字将不会被显示出来。

sudo ufw status

UFW 使用范例:

允许 53 端口

$ sudo ufw allow 53

禁用 53 端口

$ sudo ufw delete allow 53

允许 80 端口

$ sudo ufw allow 80/tcp

禁用 80 端口

$ sudo ufw delete allow 80/tcp

允许 smtp 端口

$ sudo ufw allow smtp

删除 smtp 端口的许可

$ sudo ufw delete allow smtp

允许某特定 IP

$ sudo ufw allow from 192.168.254.254

删除上面的规则

$ sudo ufw delete allow from 192.168.254.254

linux

2.4内核以后提供了一个非常优秀的防火墙工具:netfilter/iptables,他免费且功能强大,可以对流入、流出的信息进行细化控制,它可以

实现防火墙、NAT(网络地址翻译)和数据包的分割等功能。netfilter工作在内核内部,而iptables则是让用户定义规则集的表结构。

但是iptables的规则稍微有些“复杂”,因此ubuntu提供了ufw这个设定工具,以简化iptables的某些设定,其后台仍然是

iptables。ufw 即uncomplicated firewall的简称,一些复杂的设定还是要去iptables。

ufw相关的文件和文件夹有:

/etc /ufw/:里面是一些ufw的环境设定文件,如

before.rules、after.rules、sysctl.conf、ufw.conf,及 for ip6 的

before6.rule 及 after6.rules。这些文件一般按照默认的设置进行就ok。

若开启ufw之

后,/etc/ufw/sysctl.conf会覆盖默认的/etc/sysctl.conf文件,若你原来的/etc/sysctl.conf做了修

改,启动ufw后,若/etc/ufw/sysctl.conf中有新赋值,则会覆盖/etc/sysctl.conf的,否则还以/etc

/sysctl.conf为准。当然你可以通过修改/etc/default/ufw中的“IPT_SYSCTL=”条目来设置使用哪个

sysctrl.conf.

/var/lib/ufw/user.rules

这个文件中是我们设置的一些防火墙规则,打开大概就能看明白,有时我们可以直接修改这个文件,不用使用命令来设定。修改后记得ufw

reload重启ufw使得新规则生效。

下面是ufw命令行的一些示例:

ufw enable/disable:打开/关闭ufw

ufw status:查看已经定义的ufw规则

ufw default allow/deny:外来访问默认允许/拒绝

ufw allow/deny 20:允许/拒绝

访问20端口,20后可跟/tcp或/udp,表示tcp或udp封包。

ufw allow/deny

servicename:ufw从/etc/services中找到对应service的端口,进行过滤。

ufw allow proto tcp from 10.0.1.0/10 to 本机ip port

25:允许自10.0.1.0/10的tcp封包访问本机的25端口。

ufw delete allow/deny 20:删除以前定义的”允许/拒绝访问20端口”的规则
————————————————
版权声明:本文为CSDN博主「一一MIO一一」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_33240461/article/details/112813102

vps重置系统

bash <(wget –no-check-certificate -qO- ‘https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh’) -d 9 -v 64 -p 密码

命令中的 -d 后面为Debian版本号,-v 后面为64位/32位,【7、8、9、10】
命令中的 -u 后面为Ubuntu版本号,-v 后面为64位/32位,【14.04、16.04、18.04、20.04】

例子:bash <(wget –no-check-certificate -qO- ‘https://raw.githubusercontent.com/MoeClub/Note/master/InstallNET.sh’) -d 9 -v 64 -p Xy12345678

BBR加速

BBR加速脚本锦集

下面所有脚本请自行安装Curl、Wget等,代码如下:

yum -y install wget    #ContOS 安装 wgetapt-get install wget   #Debian Ubuntu 安装 wget
yum -y install curl    #ContOS 安装 curlapt-get install curl   #Debian Ubuntu 安装 crul

Debian CentOS 开启自带BBR加速

注意事项

本脚本只针对 Debian≥9 或是 CentOS≥8 以上的系统,可以开启系统自带BBR加速。

脚本如下:(可以一起复制运行,也可以分四行代码一条一条运行)

echo "net.core.default_qdisc=fq" >> /etc/sysctl.confecho "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.confsysctl -plsmod | grep bbr

四合一 BBR Plus / 原版BBR / 魔改BBR (推荐)

支持环境

Centos 7, Debian 8/9, Ubuntu 16/18 测试通过, 不支持 OVZ

该脚本详细说明:点击访问

脚本如下:

wget -N --no-check-certificate "https://raw.githubusercontent.com/chiakge/Linux-NetSpeed/master/tcp.sh" && chmod +x tcp.sh && ./tcp.sh

谷歌原版官方BBR加速脚本

适用环境

  • 系统支持:CentOS 6 ,Debian 7 ,Ubuntu 12
  • 虚拟技术: KVM、Xen、VMware 等,(OpenVZ 不支持!
  • 内存要求:≥128M

注意事项

  • 安装 Google BBR 需升级系统内核,有可能出现系统不稳定的现象,请勿在重要的生产环境中安装,以免造成不可预料的后果。
  • Google BBR 和锐速不能同时安装,一个是升级内核,一个是降级内核。

该脚本详细说明:点击访问

脚本如下:

wget --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && ./bbr.sh