功能

先匹配域名,再匹配解析出的ip来决定走primary DNS还是alternative DNS来解析,域名列表(domain_sample)命中,走alternative DNS, 否则走primary DNS,如果解析出的ip不在ip段(ip_network_sample)里,则再去走alternative DNS解析,这样可通过自己组合来完成逻辑上的解析流程。  

安装配置(Centos7.4)

创建文件夹并进入

cd / && mkdir overture && cd overture

下载Overture

wget https://github.com/shawn1m/overture/releases/download/1.3.6rc2/overture-linux-amd64.zip

解压文件

unzip overture-linux-amd64.zip

备份初始文件

cp ip_network_sample ip_network_sample.bak

配置文件

echo “0.0.0.0/0” > ip_network_sample vim config.json

配置文件介绍

BindAddress:监听的ip地址和端口号,默认同时监听TCP和UDP端口 PrimaryDNS:主DNS Name:DNS标志 Address:DNS的IP和端口号 Protocol:使用的协议 SOCKS5Address:转发DNS请求到Socket5代理 Timeout:代理到后端的超时时间 EDNSClientSubnet:智能DNS解析,建议设置为auto,根据客户端的IP地址做判断而不是客户端指定的DNS的IP地址 MinimumTTL:Overture缓存解析记录的时长 CacheSize:Overture缓存大小

域名配置

“DomainFile”: “./domain_sample” #这个文件里可放需走alternative DNS的域名, 如google.com, 支持后缀命中 “DomainBase64Decode”: false #这个要false关闭域名列表的64解码,才能用明文来表达域名

IP列表配置

“IPNetworkFile”: “./ip_network_sample” #直接用0.0.0.0/0, 如有特别的逻辑可改

启动Overture

./overture-linux-amd64 -c:指定配置文件路径;默认当前启动路径的下的config.json文件 -l:指定日志路径和日志文件;默认当前启动路径下的overture.log -p:指定进程数;默认当前CPU的核心数 -v:Debug日志模式

 

真麻烦为什么不能自启动???这简直糟糕透了!!!

 

设置Overture自启动

chmod +x /etc/rc.d/rc.local vi /etc/rc.local 并写入 sh /dns.sh vi /dns.sh cd /overture nohup /overture/overture-linux-amd64 -c /overture/config.json -l /overture/overture.log >/dev/null 2>&1 & chmod 777 /dns.sh

大功告成~~~

但是,但是!!!重点在这里!!! 自己搭建Overture耗时耗钱,不想折腾可以直接使用Hi!XNS,已经稳定运行3年,非常可靠乐观!当然不是单纯的Overture那么简单,通过二次开发达到更高水准!非常纯净哦~~ 传送门:https://hixns.com/

一、关闭TLSv1.0提高安全性

大多数是比较老旧系统上自带浏览器不支持,如果是主流用户使用的Chrome、Firefox和国产浏览器基本都兼容。

1
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
二、开启HTTP Strict Transport Security (HSTS)

指示浏览器只使用 HTTPS 连接到目标服务器。这可以防止一些潜在的中间人攻击,包括 SSL 剥离,会话 cookie 窃取(如果没有被 适当保护)。如果遇到任何与证书相关的错误,它还可以阻止浏览器连接到网站。当浏览器访问一个设置相应 HTTP header 的 HTTPS 网站时,HSTS 将被激活。 HSTS 有一个固定期限,由 max-age 字段值控制。这个值可以是静态的,也可以是相对于将来某个特定日期的,你可以设置成 SSL 证书的过期时间。 在浏览器中,HSTS 首选项可以通过提交到 Chromium’s HSTS preload list 来硬编码,这是所有实现 HSTS 使用的浏览器。 注意,HSTS 确实有陷阱。它提供了 include subdomains 选项,这在实践中可能是太宽泛了。此外,客户端错误可能会造成严重的后果——客户端错误的时钟导致它认为服务器的 SSL 证书无效或过期,或者缺少根 CA 证书——将不再导致浏览器中的证书错误。浏览器将完全拒绝访问页面,并且可能会显示让安全专家之外的完全无法理解的错误。

1
Strict-Transport-Security: max-age=31536000
二·1、同时还允许预加载
1
Strict-Transport-Security: max-age=31536000; includeSubDomains; preload
三、部署 CSP

内容安全策略(CSP)是网站可以用来限制浏览器操作的安全机制。尽管最初旨在解决跨站点脚本(XSS),CSP 不断发展,并支持对增强TLS安全性有用的功能。特别地,它可以用于限制混合内容,当涉及到第三方网站,HSTS没有帮助。

1
2
Content-Security-Policy: default-src https: 'unsafe-inline' 'unsafe-eval'; 
connect-src https: wss:

 

四、Web Framework Information

许多 web 框架设置 HTTP 头,识别框架或版本号。除了满足用户的好奇心,而且主要作为技术堆栈的广告,这几乎没有什么作用。这些头是不标准的,对浏览器渲染站点的方式没有影响。 从服务器响应中删除这些标头: X-Powered-By, X-Runtime, X-Version 和 X-AspNet-Version。 标记所有 cookie 安全和 HttpOnly。

1
Set-Cookie: Key=Value; path=/; secure; HttpOnly, Key2=Value2; secure; HttpOnly
五、加密优化

如果您的服务器需要支持IE6这种古董级别的浏览器,那么就按照百度的做法,如果说对兼容性没有太大的需求,只要主流的浏览器能够访问那么就不要支持3DES系列的加密套件,如果说想要在保证安全性的同时,也要有最好的兼容性,那么就请按照淘宝的配置方式进行配置。

五·1、类似百度
1
2
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH; 
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
五·2、类似淘宝
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、正常
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
五·3、更安全
1
2
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256::!MD5; 
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;

注:转载并合理整理及修改,原著作网站:https://blog.myssl.com/

Table of Contents

一、Ubuntu 16.04搭建方法

Zimbra是著名的开源系统,它一体化地提供了邮件收发、文件共享、协同办公、即时聊天等一系列解决方案,是开源软件中的精品。它拥有美观大气的使用界面,以及非常实用的功能。作为邮件服务器系统,Zimbra更是凭借卓越的稳定性和功能当之无愧地成为开源邮件服务器系统的首选,适合各类型/人数的用户群,尤其适合团队使用。之前我们写过一个简单的Zimbra邮件服务器安装的教程,然而那篇文章写于五年前,对于现在的版本已经不再适用。正好由于前天,Online.net服务器大幅提价,我们不得不迁移之前的服务器,于是需要在新的系统上重新搭建一次Zimbra. 因此,我们这里凭借这个机会再介绍一下如何安装与配置独立的Zimbra开源办公与邮件服务系统,希望对大家有所帮助。多台服务器协同部署的步骤这里不做太多介绍。

1.系统软硬件要求

Zimbra的体量较大,因此对于系统环境的要求较高。首先,系统必须为64位。目前,Zimbra支持的操作系统包括:CentOS 6, CentOS 7, Ubuntu 14.04 LTS, Ubuntu 16.04 LTS, Red Hat Linux 6/7, 以及Oracle Linux 6/7. 关于硬件需求,首先,内存需要8 GB或者以上,建议16 GB. 系统的硬盘占用约为8 GB左右,视自己的需要而定。CPU和其他硬件没有特别需求,但是Zimbra官方说明中有提到,强烈不建议在RAID 5 (包括50)的服务器上搭建Zimbra. 如果您有类似的服务器,建议更改RAID模式,避免RAID 5或者50. 鉴于Zimbra的体量,我们不建议在VPS上安装Zimbra, 而最好是在一台独立服务器上安装。本文的操作环境为Ubuntu 16.04 LTS 64bit.

2.配置DNS

我们简要说明一下一个最简单的zimbra邮件服务器的DNS配置需求。 如果以qing.su域名为例,我们将域名本身qing.su以A记录解析到任意IP, 然后将邮件服务器的hostname, 比如mx.qing.su以A记录解析到我们将要搭建的邮件服务器的IP上。 然后,我们分别将qing.su与mx.qing.su以MX记录解析到mx.qing.su, 优先级可以为任意值。 如果需要用web访问邮箱,可以将mail.qing.su解析到邮件服务器的IP上。 其他记录的设置,比如TXT, SRV等,可以后期根据自己的需要来自行配制。

3.系统环境的设置

毫无疑问,对于任何邮件服务器来说,最重要的前提步骤是正确设置服务器的hostname. 如何正确设置服务器的hostname我们已经强调过多次。我们以mx.example.com为例,当在SSH中执行hostname命令时,应当看到的回显为短主机名,即mx; 而在SSH中执行hostname -f命令时,应当看到的回显为长主机名(FQDN), 即mx.example.com. 若hostname没有正确设置好,请不要继续。 然后,我们用root账户登录SSH, 即可开始安装。(不要sudo, 请直接su到root, 否则会出错)

4.下载并安装软件包

Zimbra各系统软件包的下载地址如下:https://www.zimbra.com/downloads/zimbra-collaboration-open-source/ 请按照自己的需求下载。我们这里以Ubuntu 16.04为例。执行: apt-get update && apt-get upgrade cd /tmp wget https://files.zimbra.com/downloads/8.8.9_GA/zcs-8.8.9_GA_2055.UBUNTU16_64.20180703080917.tgz tar xvzf *.tgz rm -f zcs*.tgz cd zcs* ./install.sh

5.选择安装组件

正确执行上述步骤后,首先会提示是否同意用户协议,选择Y即可。 Do you agree with the terms of the https://qing.su software license agreement? [N] Y 然后会提示选择需要安装的组件,如果您不是特别了解的话可以直接选择默认选项。 Use Zimbra's package repository [Y] Install zimbra-ldap [Y] Install zimbra-logger [Y] Install zimbra-mta [Y] Install zimbra-dnscache [Y] Install zimbra-snmp [Y] Install zimbra-store [Y] Install zimbra-apache [Y] Install https://qing.su[Y] Install zimbra-spell [Y] Install zimbra-memcached [Y] Install zimbra-proxy [Y] Install zimbra-drive [Y] Install zimbra-imapd (BETA - for evaluation only) [N] Install zimbra-chat [Y] 最后,系统会提示是否确认更改,我们需要选择Y。 The system will be modified.  Continue? [N] Y 至此,系统将会下载必要的安装包并自动安装。

6, 配置Zimbra

安装完毕后,系统会弹出命令行菜单,如下面这样: Main menu 1) Common Configuration: 2) zimbra-ldap: Enabled 3) zimbra-logger: Enabled 4) zimbra-mta: Enabled 5) zimbra-dnscache: Enabled 6) zimbra-snmp: Enabled 7) zimbra-store: Enabled +Create Admin User: yes +Admin user to create: admin@mx.example.com ******* +Admin Password UNSET +Anti-virus quarantine user: virus-quarantine.6zk4_0qy@mx.example.com +Enable automated spam training: yes +Spam training user: spam.zc3z28w0@mx.example.com +Non-spam(Ham) training user: ham.bkojeqoiq@mx.example.com +SMTP host: mx.example.com +Web server HTTP port: 8080 +Web server HTTPS port: 8443 +Web server mode: https +IMAP server port: 7143 +IMAP server SSL port: 7993 +POP server port: 7110 +POP server SSL port: 7995 +Use spell check server: yes +Spell server URL: http://mx.example.com:7780/aspell.php +Enable version update checks: TRUE +Enable version update notifications: TRUE +Version update notification email: admin@mx.example.com +Version update source email: admin@mx.example.com +Install mailstore (service webapp): yes +Install UI (zimbra,zimbraAdmin webapps): yes 8) zimbra-spell: Enabled 9) zimbra-proxy: Enabled 10) Default Class of Service Configuration: s) Save config to file x) Expand menu q) Quit Address unconfigured (**) items (? - help) 7 这里我们选择7,  进入Store configuration, 并在下一步选择4, 设置管理员密码。 Store configuration 1) Status:                                  Enabled 2) Create Admin User:                       yes 3) Admin user to create:                    admin@mx.example.com ** 4) Admin Password                           UNSET 5) Anti-virus quarantine user:              virus-quarantine.6zk4_0qy@mx.example.com 6) Enable automated spam training:          yes 7) Spam training user:                      spam.zc3z28w0@mx.example.com 8) Non-spam(Ham) training user:             ham.bkojeqoiq@mx.example.com 9) SMTP host:                               mx.example.com 10) Web server HTTP port:                    8080 11) Web server HTTPS port:                   8443 12) Web server mode:                         https 13) IMAP server port:                        7143 14) IMAP server SSL port:                    7993 15) POP server port:                         7110 16) POP server SSL port:                     7995 17) Use spell check server:                  yes 18) Spell server URL:                        http://mx.example.com:7780/aspell.php 19) Enable version update checks:            TRUE 20) Enable version update notifications:     TRUE 21) Version update notification email:       admin@mx.example.com 22) Version update source email:             admin@mx.example.com 23) Install mailstore (service webapp):      yes 24) Install UI (zimbra,zimbraAdmin webapps): yes Select, or 'r' for previous menu [r] 如果有其他选项您希望更改的,也可以一并更改(但是不建议更改端口地址)。更改完毕后,输入r返回上级菜单,然后输入a让更改生效并将配置写入至文件。 *** CONFIGURATION COMPLETE - press 'a' to apply Select from menu, or press 'a' to apply config (? - help) a Save configuration data to a file? [Yes] Save config in file: [/opt/zimbra/config.11819] Saving config in /opt/zimbra/config.11819...done. The system will be modified - continue? [No] Yes 要忘记最后要输入Yes来保存更改。几秒钟之后,系统就配置完毕。至此,Zimbra安装完毕,我们可以登录后台添加域名、添加用户等进行一系列的管理了。

7.配置SSL

安装完毕Zimbra以后,我们就可以通过https://mx.example.com:7071登录后台,进行管理。此时,SSL证书还没有配置好,我们需要配置SSL, 否则浏览器会一直报错。点击界面下方Get Started –> Install Certificates, 选择Next然后选择Generate the CSR for the commercial certificate authorizer, 然后在弹出来的界面中生成CSR. 我们需要将主域名mx.example.com填在Common Name中,然后在Subjective Alternative Name中添加需要一并生成证书的其他域名,比如example.com, www.example.com, mail.example.com等。点击Next即可生成证书CSR. 有了CSR之后,我们即可申请证书了。Zimbra配置证书的过程比较tricky, 经常会报错,特别是如果在网页后台安装证书时报错的原因很不清晰,导致无法分析错误发生的原因。因此,我们一般选择在SSH中使用命令行的方式安装证书。下面我们以Let’s Encrypt为例安装证书,其他的商业证书的安装较为简单,这里就不再重复。 我们用SSH登录服务器,然后su切换至root. 首先,我们将刚才的CSR保存至/tmp/mx.example.com.csr文件。然后,安装certbot, 签发Let’s Encrypt证书。 apt-get install software-properties-common add-apt-repository ppa:certbot/certbot apt-get update apt-get install certbot 这里有一个小技巧,通常我们签发Let’s Encrypt证书的时候是让它自己生成私钥和CSR的,但是在需要的时候,certbot可以根据已有的CSR来签发证书,只需使用–csr参数即可。因此,我们基于刚刚生成的CSR来签发证书。 certbot certonly --standalone --csr /tmp/mx.example.com.csr 签发的证书和链文件位于/tmp目录内。需要注意的是,Certbot生成的中间链会在Zimbra中校验失败,我们需要下载额外的Root CA和中间链证书。 wget https://letsencrypt.org/certs/isrgrootx1.pem.txt -O ca.crt wget https://letsencrypt.org/certs/letsencryptauthorityx3.pem.txt -O ca_intermediary.crt 然后再整理、合并一下证书: mv 0000_cert.pem commercial.crt cat /tmp/ca_intermediary.crt /tmp/ca.crt > /tmp/ca_chain.crt 现在就可以开始签发安装证书了。安装证书需要使用zimbra用户,这是在安装Zimbra的时候新建的内置用户。 su zimbra 安装之前,我们先验证一下证书。执行 /opt/zimbra/bin/zmcertmgr verifycrt comm /opt/zimbra/ssl/zimbra/commercial/commercial.key /tmp/commercial.crt /tmp/ca_chain.crt 如果看到类似于下面的回显,说明合格了。如果报错,大概率是因为Root CA和中间链哪里没有弄对,请仔细检查后再试。 ** Verifying '/tmp/commercial.crt' against '/opt/zimbra/ssl/zimbra/commercial/commercial.key' **Tutorial written by https://qing.su** Certificate '/tmp/commercial.crt' and private key '/opt/zimbra/ssl/zimbra/commercial/commercial.key' match. ** Verifying '/tmp/commercial.crt' against '/tmp/ca_chain.crt' Valid certificate chain: /tmp/commercial.crt: OK 证书验证完毕后,执行下面的命令安装并检验: /opt/zimbra/bin/zmcertmgr deploycrt comm /tmp/commercial.crt /tmp/ca_chain.crt /opt/zimbra/bin/zmcertmgr viewdeployedcrt 最后,我们要重启zimbra服务器,让证书生效。 exit service zimbra restart 再次登录https://mx.example.com:7071, 已经可以看到证书生效了。 至此,Zimbra服务器安装完毕并成功配置了SSL证书。在添加好相应的域名之后,即可使用相关用户名和密码登录https://mail.example.com来登录邮箱,界面非常美观大气。可以看到,在邮箱右下角还有聊天窗口,可以和同一个工作组内的伙伴实时通讯并传输文件。

二、CentOS 7的搭建方法

安装要求

1、64位服务器并能设置反向DNS解析(zimbra新版不支持32位操作系统) 2、磁盘空间≥5GB(zimbra默认安装位置/opt 请确保磁盘空间足够 可以挂载到新磁盘) 3、内存≥4GB(编译对内存要求较高,内存小的用户可以设置swap来缓解内存压力) 4、域名一枚

开始

域名解析

zimbra在线安装时要检查MX 安装之前配置好dns MX解析并确认已生效 未生效安装过程会终止 假如>> 邮件服务器IP:138.68.227.28 邮件服务器采用的域名:mail.example.com 对外发送和接收邮件的域名:example.com

mail.example.com. IN A 138.68.227.28

example.com. IN MX 10 mail.example.com.

反向DNS解析

反向解析由主机商提供(有些面板可以设置,不行提交工单) 主要用于发件,确认邮件来源的有效性。 命令查看反向解析是否生效:nslookup -qt=ptr 138.68.227.28 返回指向mail.example.com则成功

关闭sendmail或postfix服务,避免25端口被占用

# centos 6

/etc/init.d/sendmail stop && chkconfig sendmail off

/etc/init.d/postfix stop && chkconfig postfix off

# centos 7

systemctl stop postfix && yum erase postfix

systemctl stop sendmail && systemctl disable sendmail

关闭selinux

防火墙

根据自已需求选择要不要关闭,也可以选用设置防火墙规则 关闭防火墙功能

# centos 6

service iptables stop && chkconfig iptables off

# centos 7

systemctl stop firewalld.service && systemctl disable firewalld.service

添加防火墙规则 开放端口

–A INPUT –m state —state NEW –m tcp –p tcp —dport 80 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 443 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 7071 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8087 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8080 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 8443 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 25 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 110 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 143 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 993 –j ACCEPT

–A INPUT –m state —state NEW –m tcp –p tcp —dport 995 –j ACCEPT

# iptables -F

# iptables -P INPUT DROP

# iptables -P OUTPUT ACCEPT

# iptables -A INPUT -i lo -j ACCEPT

# iptables -A INPUT -s IP-Address-of-your-server/32 -j ACCEPT

# iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

# iptables -A INPUT -p tcp –dport 22 -j ACCEPT

# iptables -A INPUT -p icmp -j ACCEPT

## Zimbra rules for external access ##

# iptables -A INPUT -p tcp –dport 25  -j ACCEPT

# iptables -A INPUT -p tcp –dport 80  -j ACCEPT

# iptables -A INPUT -p tcp –dport 110  -j ACCEPT

# iptables -A INPUT -p tcp –dport 143 -j ACCEPT

# iptables -A INPUT -p tcp –dport 443  -j ACCEPT

# iptables -A INPUT -p tcp –dport 465  -j ACCEPT

# iptables -A INPUT -p tcp –dport 587  -j ACCEPT

# iptables -A INPUT -p tcp –dport 993  -j ACCEPT

# iptables -A INPUT -p tcp –dport 995  -j ACCEPT

# iptables -A INPUT -p tcp –dport 3443  -j ACCEPT

# iptables -A INPUT -p tcp –dport 9071  -j ACCEPT

# iptables -A INPUT -p tcp –dport 7071  -j ACCEPT

配置主机名HOSTNAME

修改配置文件 vi /etc/sysconfig/network 内容 HOSTNAME=mail.example.com 或 命令设置

hostnamectl set–hostname mail.example.com

hostnamectl status

hostname

配置HOSTS

安装时会检查hosts文件内容要否符合要求: 核查hosts文件中的FQHN是否与与hostname一致,不一致安装中止

不设置返回的错误信息:

ERROR: Installation can not proceeed. Please fix your /etc/hosts file

to contain:

<ip> <FQHN> <HN>

Where <IP> is the ip address of the host,

<FQHN> is the FULLY QUALIFIED host name, and

<HN> is the (optional) hostname–only portion

错误信息2 出错原因也说的很详细了 注释掉有12.0.0.1的行 DO服务器注释掉#centos-512mb-ams2-01 centos-512mb-ams2-01的行

ERROR: Installation can not proceeed. Please fix your /etc/hosts file

to contain:

127.0.0.1 localhost.localdomain localhost

Zimbra install grants mysql permissions only to localhost and

localhost.localdomain users. But Fedora/RH installs leave lines such

as these in /etc/hosts:

127.0.0.1 myhost.mydomain.com myhost localhost.localdomain localhost

This causes MySQL to reject users coming from 127.0.0.1 as users from

myhost.mydomain.com. You can read more details at:

http://bugs.mysql.com/bug.php?id=11822

服务器IP 完整域名 主机名称(hostname命令显示的)

vi /etc/hosts

138.68.243.239 mail.example.com mail.example.com

NTP

Network Time Protocol(NTP)是用来使计算机时间同步化的一种协议,它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)做同步化,它可以提供高精准度的时间校正(LAN上与标准间差小于1毫秒,WAN上几十毫秒),且可介由加密确认的方式来防止恶毒的协议攻击。

yum install ntp

systemctl start ntpd

systemctl enable ntpd

安装依赖包 wiki

从Zimbra Collaboration 8.7开始,Zimbra依赖于自己的存储库打包系统,这意味着Zimbra安装脚本会自动处理操作系统的依赖关系。

安装及使用

wget https://files.zimbra.com/downloads/8.7.5\_GA/zcs-8.7.5\_GA\_1764.RHEL7\_64.20170314032533.tgz

tar zxvf zcs–8.7.5_GA_1764.RHEL7_64.20170314032533.tgz

cd zcs–8.7.5_GA_1764.RHEL7_64.20170314032533

# ./install.sh

./install.sh —platform–override

安装出错可行一次:/opt/zimbra/libexec/zmsetup.pl 日志分析,不行就卸载重装了./install.sh -u 安装过程就不一一列出来了,能y的设置y,跳到菜单的时候选7、选4设置管理员密码,r返回,a 查看占用空间:du -sh /opt/zimbra/ 切换到zimbra用户:su - zimbra 查看运行状态:zmcontrol status 重启服务:zmcontrol restart web管理界面:https://mail.example.com:7071/ web用户界面:https://mail.example.com:7073/ 添加新域名 example.com 简单的收发邮件:example.com 设置@的MX记录到mail.example.com SPF,DKIM,DMARC wiki spam

SPF

什么是SPF? (Sender Policy Framework) 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。 接收邮件方会首先检查域名的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。 example.com 设置@的SPF和txt记录:v=spf1 mx ~all(允许当前域名的mx记录对应的IP地址)

DKIM

Bug:

ZCS 8.7.x 已知问题 BUG zmdkimkeyutil 生成非有效的2048位DKIM 解决:/opt/zimbra/libexec/zmdkimkeyutil 修改所有2048关键字为1024 》升级DKIM签名:/opt/zimbra/libexec/zmdkimkeyutil -u -d example.com 》更改DNS设置 命令生成2048位DKIM:/opt/zimbra/libexec/zmdkimkeyutil -a -b 2048 -d example.com

DKIM是利用加密签名和验证的原理,发件人在发送邮件时候,将与域名相关的加密签名插入邮件,收件人收到邮件后就可以对签名进行验证,判断发件人地址的真实性。

  • 添加DKIM /opt/zimbra/libexec/zmdkimkeyutil -a -d example.com
  • 升级DKIM /opt/zimbra/libexec/zmdkimkeyutil -u -d example.com
  • 删除DKIM /opt/zimbra/libexec/zmdkimkeyutil -r -d example.com
  • 查看DKIM /opt/zimbra/libexec/zmdkimkeyutil -q -d example.com

生成1024位的DKIM 内容为

DKIM Data added to LDAP for domain example.com with selector E298BEBE–2D5A–11E7–9E70–F55E985B5BE7

Public signature to enter into DNS:

E298BEBE–2D5A–11E7–9E70–F55E985B5B17._domainkey IN TXT ( “v=DKIM1; k=rsa; “

“p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5Lkk2XnUgA9LoHWYgDb1URxyTnab0WuHA9CKUFtLWrjV6S87bcpzoVa3

DMARC

[DMARC]协议的主要目的是识别并拦截钓鱼邮件 DNS记录 名称:_dmarc  值:v=DMARC1; p=none

域名解析记录

类型:txt DNS名称:E298BEBE-2D5A-11E7-9E70-F55E985B5B17._domainkey 值:”v=DKIM1; k=rsa;p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC5Lkk2XnUgA9LoHWYgDb1URxyTnab0WuHA9CKUFtLWrjV6S87bcpzoVa3fGVc/jChVfu5E4ZTif/jNkBPeow7wnwajEpFo8G/yR0e8aNwDghW8DYf9B21QPAtB9NqoNjoUSD1tDsTXor2tSqf8wormbVhN3Y9aWkAxMEUP594zUwIDAQAB”

验证DKIM

验证公钥是否与私钥匹配 测试通过没有任何信息返回,否则返回record not found /opt/zimbra/common/sbin/opendkim-testkey -d example.com -s E298BEBE-2D5A-11E7-9E70-F55E985B5B17 -x /opt/zimbra/conf/opendkim.conf

重新签发证书

zimbra的证书有效期为365天,为了避免下次的麻烦,可以重新签发一个证书,有效期20年。

/opt/zimbra/bin/zmcertmgr createca –new

/opt/zimbra/bin/zmcertmgr deployca

/opt/zimbra/bin/zmcertmgr createcrt –new –days 7300

/opt/zimbra/bin/zmcertmgr deploycrt self

/opt/zimbra/bin/zmcertmgr viewdeployedcrt

可以学习的内容

dnsmasq named

小工具

https://intodns.com/one.one DNS检查 http://www.mail-tester.com/ 邮件评分 https://dmarcian.com/dmarc-inspector/mgtgxp.pw dmarc测试

参考文章

https://www.renfei.org/blog/introduction-to-spf.html http://170182.blog.51cto.com/160182/1272569 https://www.mawenbao.com/research/email-spf-and-exim4-dkim-dmarc-config.html http://imzhen.com/note/2015/08/09/20150809/

CentOS 7 安装配置Zimbra邮件服务器

https://www.chenxie.net/archives/1476.html http://www.bkjia.com/Linux/1112319.html https://bbotte.com/server-config/zimbra-configuration-mail-service-full-record/

Zimbra8 安装说明

http://blog.csdn.net/zzban/article/details/8640510 https://www.kenceng-solusindo.net/read/intalasi-zimbra-mail-server-ubuntu-16-04/ http://record.blog.51cto.com/3300006/1206745 https://www.chenxie.net/archives/1476.html http://www.linuxyw.com/linux/qitafuwu/20130605/540.html http://m.blog.chinaunix.net/uid-31075838-id-5698408.html

结果谷歌一系列的查找资料,最后还是到了hetzner的wiki找到了解决办法。

1.proxmox桥接网卡配置:

# /etc/network/interfaces
### Hetzner Online GmbH - installimage
# Loopback device:
auto lo
iface lo inet loopback

# device: eth0
auto eth0
iface eth0 inet static
address


netmask 255.255.255.255
pointopoint
gateway

iface eth0 inet6 static
address

#eg: 2001:db8::2
netmask 128
gateway fe80::1
up sysctl -p
# for single IPs
auto vmbr0
iface vmbr0 inet static
address 10.0.1.1
netmask 255.255.255.0
bridge_ports none
bridge_stp off
bridge_fd 0

iface vmbr0 inet6 static
address

#eg: 2001:db8::2
netmask 64

关于Nat链接网络请使用iptables实现。

2.solusvm下网卡配置:

主网卡中默认配置请不要修改,仅需将IPV6ADDR的/64换为/128 例如:IPV6ADDR= 2001:db8::2/128 然后将桥接网卡更改为:

DEVICE=br0
ONBOOT=yes
TYPE=Bridge
BOOTPROTO=static
IPADDR=10.0.1.1
NETMASK=255.255.255.0
IPV6ADDR=2001:db8::2/64

关于联网与端口映射请使用iptables

3.关于虚拟机(kvm)的配置:

这里拿2001:db8::此ipv6做示范 Debian or Ubuntu:

iface eth0 inet6 static
address 2001:db8::f001
netmask 64
gateway 2001:db8::2

Centos:

IPV6INIT=yes
IPV6ADDR=2001:db8::f001/64
IPV6_DEFAULTGW=2001:db8::2

查看IPIP模块:

modinfo ipip

开始建立隧道: 注:这里设置A主机的公网IP为1.1.1.1,B主机的公网IP为2.2.2.2 A主机操作:

ip tunnel add ipip-tunnel mode ipip remote 2.2.2.2 local 1.1.1.1 ifconfig ipip-tunnel 10.0.1.1 netmask 255.255.255.0

B主机操作:

ip tunnel add ipip-tunnel mode ipip remote 1.1.1.1 local 2.2.2.2 ifconfig ipip-tunnel 10.0.1.2 netmask 255.255.255.0

然后这时候就可以在B主机上pingA主机设置的内网IP10.0.1.1看是否想通,如果同的话就代表成功打通。 此外介绍一种直接使用网卡配置文件(CentOS系统)的方法: A主机(/etc/sysconfig/network-scripts/ifcfg-ipip-tunnel)

DEVICE=ipip-tunnel
ONBOOT=yes
TYPE=IPIP
TTL=255
PEER_OUTER_IPADDR=2.2.2.2
PEER_INNER_IPADDR=10.0.1.2
MY_OUTER_IPADDR=1.1.1.1
MY_INNER_IPADDR=10.0.1.1

B主机(/etc/sysconfig/network-scripts/ifcfg-ipip-tunnel)

DEVICE=ipip-tunnel
ONBOOT=yes
TYPE=IPIP
TTL=255
PEER_OUTER_IPADDR=1.1.1.1
PEER_INNER_IPADDR=10.0.1.1
MY_OUTER_IPADDR=2.2.2.2
MY_INNER_IPADDR=10.0.1.2

然后启动网卡即可

1
wget -N --no-check-certificate https://raw.githubusercontent.com/ToyoDAdoubi/doubi/master/ssr.sh && chmod +x ssr.sh && bash ssr.sh

[[Oneman IDC]使用SolusVM创建KVM VPS](https://img.zrj96.com/solusvm/soluvm-logo.jpg)

在上一篇教程中:[Oneman IDC]Proxmox VE 5创建LXC小鸡 我们利用Proxmox创建了LXC VPS,本次我们利用创建VPS里使用最广泛的SolusVM来创建KVM VPS。 本篇文章中主被控均为CentOS 7系统,其实对于SolusVM这种面板推荐使用CentOS 6问题少一些,不过博主个人对于网卡配置也是初学阶段,暂时是模仿状态,习惯CentOS 7,所以就使用CentOS 7来作为主系统。所以说如果你是CentOS6系统,在桥接网卡这一步千万别学我!!!

Table of Contents

 

一、面板介绍

SoluVM目前是OnApp旗下的产品,不过2.0版已经难产多年,还在1.x缓慢更新…如果你使用过VPS,尤其是国外VPS的话大部分都是使用SolusVM面板来创建VPS,那么相应的教程和文档就会成熟完整一些。同时SolusVM对于财务系统例如WHMCS的对接非常简单方便,所以很多主机商都在使用。Proxmox也可以对接WHMCS,但是相关设置非常繁杂,一般也没什么主机商会使用这套系统。 SolusVM分为主控(Master)、被控(Slave)两套程序,如果你是KVM/Xen虚拟化需要分别安装在两台机器中,无法直接在一台已经安装了Xen或者KVM的Slave上安装Master,但是你可以在Slave上开的VM中安装Master,当然如果你有别的的空的机器还是建议分开(OVZ可以使用Master with OpenVZ来实现安装在一台机器上)。主控的售价为10美元/月,有30天免费试用,被控是2.5美元/月/终端。 官方网站:https://solusvm.com/

二、被控端配置(Slave)

无论是主控还是被控需要纯净系统才能安装成功,不要存在例如cPanel、BT等面板。 被控端一般都是独立服务器,最好是有救援系统、可以自定义分区的服务器,当然部分主机商在重装的时候可以自定义配置或者提交工单告诉他们你要的分区配置。本次我们以德国Hetzner独立服务器为例来设置。

1.进入救援系统设置

Hetzner提供了一个非常方便的救援系统可以自定义安装系统和分区,进入控制面板,点击Rescue启动救援系统,再到Reset重启你的服务器,一般是第一个选项,按一次关机,等一会再按一次就开机了。连接SSH,端口为22,密码可以在开启救援系统的时候看到,root用户登录。

进入后输入命令:

1
installimage

现在就可以选择你需要的系统了,本次是CentOS7。当然你也可以利用这个功能安装Proxmox。

Hostname设置

2.RAID设置

会显示一个蓝底页面来设置,最上面是RAID的设置,根据自己需要来。如图所示选择是否开启RAID,如果开启RAID要选择什么模式。因为服务器只有两块硬盘,所以最多只能RAID1。

RAID0是性能最好的模式,两块硬盘都会被使用,但是非常不安全,一块硬盘挂掉就一起挂 RAID1最安全,但是性能下降,而且有一块硬盘作为备份无法使用,例如2X2T硬盘,你只有2TB可以使用。 No RAID即不开启RAID,性能略比RAID1好一些,同时也可以有效利用磁盘空间。三种RAID模式根据自己需要来使用,一般建议No RAID,如果你追求大空间和高性能可以RAID0,但是要自己注意备份。RAID1是最安全的保守模式,适合不追求空间大小和性能的使用,保证数据安全。

3.磁盘分区

重要的磁盘分区,SolusVM对于磁盘分区有一定要求。对于不同虚拟化有不同的要求,本次以KVM虚拟化为例。推荐设置Swap为4GB以上,/ 根目录为80GB以上,其余空间不分配,全部LVM交由SolusVM自动创建。 如图对磁盘分区,主要是需要注释掉注释使其生效,删除多余空间。

对PART部分添加注释使其失效,以免影响分区。

全部完成后按F10保存设置,一路确定就可以等待自动安装了,如果出现错误会自动跳到出错的地方进行排查。

4.完成安装系统

全部完成后reboot重启服务器即可正常使用了,要注意的是Root密码为救援系统的密码。

5.购买额外IP

因为创建的是独立IPv4的KVM VPS,所以我们买几个IP。 Hetzner允许一台机器最多有6个单独IP,更多的IP需要你购买一整个段。单个IP的价格为0.84欧元/个/月。

如图所示购买IP,买一个段还是一个,理由是什么,一般如实填写就行,很快IP就会显示在控制面板中。

6.桥接网卡设置

创建KVM VPS多的一步就是桥接网卡,这一步非常重要也非常危险,一个步骤和参数错误就会导致网卡无法启动,丢掉网络无法连接,所以请仔细配置,提前备份主网卡文件。

(1)安装软件包

1
yum install bridge-utils -y

(2)备份网卡文件,CentOS7 中主网卡文件在/etc/sysconfig/network–scripts/中,文件名为enp2s0,CentOS6一般为ifcfg–eth0

(3)修改网卡文件配置

第一步修改主网卡文件,利用vi/vim编辑器就行,三个网卡文件的内容参考后面的图。

1
vi /etc/sysconfig/network-scripts/ifcfg-eth0

第二步新建桥接网卡文件

1
vi /etc/sysconfig/network-scripts/ifcfg-br0

再新建一个路由网卡文件

1
vi /etc/sysconfig/network-scripts/route-br0

如图是我的配置,安装这个配置来就可以,当然这是在Hetzner服务器+CentOS系统下,不同系统不同服务器请根据实际情况设置。

之后重启网卡,如果文件没问题就会重启成功

1
/etc/init.d/network restart

7.安装被控端

1
2
wget https://files.soluslabs.com/install.sh
sh install.sh

 

选择KVM即可,会全自动安装,安装完成后会提供一个ID+KEY,请务必留存,用于对接主控使用。 至此被控端设置已经完成。

三、主控端安装(Master)

主控端服务器我们建议和被控离的近一点或者都在国外方便连接,以免主控在国内和被控连通性较差,命令反应慢。。。主控服务器没有具体要求,一般一个1GB的VPS就行了,当然OVZ都可以,省钱嘛,23333.

(1)主控安装

本次是纯净的CentOS7 系统作为主控,运行安装命令

1
2
wget https://files.soluslabs.com/install.sh
sh install.sh

选择主控的安装,不要安装虚拟化。。。 全自动完成,成功后会给出控制面板后台和前台信息,用户名和密码默认为vpsadmin。

(2)SSL安全连接

SSL有两种方式,手动和自动。 1.手动安装SSL。 手动当然是自己的SSL证书,把/usr/local/svmstack/nginx/ssl里的文件和密钥替换就行了,重启nginx

1
service svmstack-nginx restart

2.自动SSL就是利用Let’s Encrypt免费证书了,使用前确保你的域名已经成功解析到IP上。

1
2
3
yum install -y curl &amp;&amp;
curl https://get.acme.sh sh &amp;&amp; source ~/.bashrc
acme.sh --issue -d solusvm.yourdomain.com -w /usr/local/solusvm/www/.verification
1
2
3
4
5
6
7
acme.sh --installcert -d solusvm.yourdomain.com \
--keypath /usr/local/svmstack/nginx/ssl/ssl.key \
--fullchainpath /usr/local/svmstack/nginx/ssl/ssl.crt \
--reloadcmd "service svmstack-nginx restart; \
/usr/local/svmstack/sshwebsocket/quit; \
/usr/local/svmstack/sshwebsocket/port_check; \
cd /usr/local/svmstack/nginx/ssl &amp;&amp; cat ssl.key ssl.crt &gt; ssl.pem"

(3)汉化前台

管理员后台只有英文,反正也不是很难。。前台中文可以优化一下用户体验。

1
2
3
cd /usr/local/solusvm/language/client/
wget "https://documentation.solusvm.com/download/attachments/7667936/Simplified-Chinese.lang.txt?api=v2" -O Chinese.lang.txt
chown solusvm:solusvm Chinese.lang.txt

四、主控端配置和使用

(1)面板后台主页

一进来就是控制面板的主页,这就是你们的VPS在商家后台那里的样子啦

(2)修改管理员密码

安全是必须的,先修改管理员密码。Config-Admin就能添加管理员用户、修改管理员密码了。

(3)添加节点(Node)

Nodes——Add Node,设置名字、IP、端口,填写被控安装的ID和KEY,选择虚拟化,设置LV Group(被控端使用命令 vgs 即可查看),这样就添加好了节点。

在添加完成后再编辑节点,可以设置创建VPS的数量,给该节点分配多少资源,否则都是0的话也无法成功创建。

(4)添加IP

IP Blocks——Add IP Block,创建一个IP组,起个名,网关、DNS,DNS默认用Google的就行,网关可以在Hetzner后台的主IP那里看到,一般尾数都是65。选择给哪个节点使用即可。

添加组后添加单个IP,如图所示。

添加Mac地址,不要使用auto的Mac,如下图,在Hetzner的IP那里创建Mac地址,然后一个个添加即可。

(5)创建与同步系统模板

KVM的模板官方主流提供了4个最新版模板,对于OpenVZ需要使用OpenVZ官方的模板就行。 例如我们添加CentOS 7模板 官方的下载页面:https://tdn.solusvm.com/ 这个页面介绍了你下载模板,怎么设置等。

连接主控服务器的SSH,运行命令

1
wget http://templates.repo.onapp.com/solusvm/kvm/linux-centos-7-x86_64-minimal-latest.gz -O /home/solusvm/kvm/template/linux-centos-7-x86_64-minimal-latest.gz

模板下载后会自己存放到/home/solusvm/kvm/template/文件夹中 再到主控后台的Media——Add KVM Template添加模板即可,起一个名字,设置描述,选择正确的模板文件,安装TDN页面设置分区和root密码即可。

添加完成后再编辑模板设置,可以对CPU模式、默认分配CPU和线程数等可以进行设置,推荐CPU设置为host-passthrough,这样可以显示真正的CPU参数,开启一些指令集来跑程序,如果使用默认的QEMU的话虽然方便迁移等操作,但是会关闭一部分指令集可能造成一些需求无法正常使用。 创建完全部模板后我们就需要把模板同步到被控服务器上去使用。 进入Media——Media Sync,选择你要同步的模板,再选择需要同步的节点,创建一个同步任务。创建成功后状态为Queue,等待一段时间变成Active状态后,代表你的模板已经成功同步到被控服务器上了。

(6)创建VPS

首先要创建一个用户,没有用户你创建给谁呢?Clients——Add Client即可。

如果你创建的VPS都是一样的显然创建一个通用模板方便一些。Plans——Add KVM Plan,进行相关设置即可。如果你只是创建一个VPS,那么直接到Virtual Servers—— Add Virtual Servers即可。

创建VPS,这里我们有一个Plan,所以直接选择Plan,分配给谁就好了。

(7)用户使用

管理员可以在List Virtual Servers里管理所有服务器,点击后面仪表盘的图标即可进行详细的管理,对于VPS的各种调试安装,还有限制网络速度等都可以实现。

对于用户来说,直接登录前台地址,输入用户名密码即可。

五、其他

这样我们就完成了创建KVM VPS的基本操作了,对于邮件提醒、更详细的控制策略等都可以在后台设置,慢慢摸索就好啦。 对于对接财务系统的设置官方给出了稳定和插件可以使用,地址:https://docs.solusvm.com/display/DOCS/Modules?src=contextnavpagetreemode

六、总结

SolusVM是一款非常成熟的商业化VPS面板,如果你想创建VPS卖或自己使用等都非常可靠和方便。如果你有不懂的地方或者发现了文章中的各种错误,欢迎通过评论的方式之处,也可以到下方的Telegram群组中讨论。

七、参考资料

本文的编写参考了以下文档: 1.SolusVM官方文档:https://docs.solusvm.com/ 2.博客:Senraの小窝 IDC零基础系列——CentOS6安装SolusVM(从系统分区到删库跑路) 3.安装SSL文档:Deploy ssl to SolusVM 4.特别感谢:@Senra@EQBlog两位大佬!!! →→→可能你需要创建NAT OpenVZ VPS?请参考此篇文章:Leonn的博客 小白教程:使用 SolusVM 开通 NAT VPS

第一部分:OPENVZ平台 一、OpenVZ 平台 Google BBR(魔改) 一键安装脚本 来源:扩软 安装:

1
2
3
wget https://raw.githubusercontent.com/kuoruan/shell-scripts/master/ovz-bbr/ovz-bbr-installer.sh
chmod +x ovz-bbr-installer.sh
./ovz-bbr-installer.sh

卸载:./ovz-bbr-installer.sh uninstall 修改端口配置:vi /usr/local/haproxy-lkl/etc/port-rules 。在文件里添加需要加速的端口,每行一条,可以配置单个端口或者端口范围,以 # 开头的行将被忽略。 例如:8800 或者 8800-8810 配置完成之后,只需要重启 haproxy-lkl 即可。使用 systemctl 或者 service 命令来启动、停止和重启 HAporxy-lkl:

systemctl {startstoprestart} haproxy-lkl

service haproxy-lkl {startstoprestart}

二、OpenVZ平台魔改BBR一键脚本之Rinetd方式 来源:南琴浪  GITHUB项目地址 优点:Rinetd就是另外一种lkl bbr,好处是不需要开启TUN/TAP,对于后台没有或者找不到这个模块的,刚好可以用一下。 缺点:不支持IP段加速,每个要加速的端口都需要单独配置。 更新: 2018-03-24 新增 多网卡 适配 Debian or Ubuntu 单网卡(单 IP) 服务器:

1
2
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-debian+ubuntu.sh
bash tcp_nanqinlang-rinetd-debian+ubuntu.sh

多网卡(多 IP) 服务器,会为所有网卡(所有 IP)提供加速:

1
2
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-debian+ubuntu-multiNIC.sh
bash tcp_nanqinlang-rinetd-debian+ubuntu-multiNIC.sh

CentOS 7

1
2
3
4
5
6
7
# 单网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-centos.sh
bash tcp_nanqinlang-rinetd-centos.sh

# 多网卡
wget https://raw.githubusercontent.com/nanqinlang-tcp/tcp_nanqinlang/master/Rinetd/bash/tcp_nanqinlang-rinetd-centos-multiNIC.sh
bash tcp_nanqinlang-rinetd-centos-multiNIC.sh

运行脚本会出现下面几个选项: 安装 rinetd-bbr 此脚本会在/home/tcp_nanqinlang进行安装,所以安装完成后不要动这个文件夹了(除非你想修改端口)。安装过程中,会提示输入端口号。多个端口号用空格隔开。**不支持端口段。**安装完成后,会开启 rinetd-bbr。以后重启机器也会随开机自启。使用前请注意自己的 iptables 相关设置。

检查 rinetd-bbr 运行状态

此命令用于检查 rinetd-bbr 运行与否,可通过返回的提示判断。

卸载 rinetd-bbr

运行此命令会删除 /home/tcp_nanqinlang 、移除 rc.local 对应开机自启项和清空 iptables raw 表。属于完整卸载,不会有残留。且卸载后无需重启。 三、OpenVZ 魔改 BBR - LKL 一键脚本 来源:南琴浪 GITHUB项目地址 优点:支持IP段加速 安装方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
# Debian 8+
# 64 bit
# ldd > = 2.14
# tun/tap enabled
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-debian.sh
bash tcp_nanqinlang-haproxy-debian.sh

# CentOS 7
# 64 bit
# ldd > = 2.14
# tun/tap enabled
wget https://github.com/tcp-nanqinlang/lkl-haproxy/releases/download/1.1.1/tcp_nanqinlang-haproxy-centos.sh
bash tcp_nanqinlang-haproxy-centos.sh

 

以下进行脚本使用说明:

安装 LKL

此命令用于安装 LKL。 在/home/tcp_nanqinlang进行安装,所以安装完成后不要动这个文件夹了(除非你想修改端口)。 安装过程中,会提示你选择

1
单个端口

1
端口段

输入,具体已在运行脚本的提示中有说明,这里不再赘述。 安装完成后,会开启 LKL。以后重启机器也会随开机自启。 以后若需要修改转发端口,请将/home/tcp_nanqinlang/haproxy.cfg中的端口号和/home/tcp_nanqinlang/redirect.sh中的端口号改为你想要的端口或端口段,修改完成后重启服务器。 使用前请注意自己的 iptables 相关设置。

检查 LKL 运行状态

此命令用于检查 LKL 运行与否,可通过返回的提示判断。

卸载 LKL

运行此命令会卸载 haproxy、删除 /home/tcp_nanqinlang、移除 rc.local 开机自启项。稍后请自行移除iptables相关规则。 该脚本项目最新的地址是:https://github.com/tcp-nanqinlang

第二部分:KVM平台、独服

一、BBR+BBR魔改+Lotsever(锐速)一键脚本 for Centos/Debian/Ubuntu 来源:千影 支持系统 Centos 6+ / Debian 7+ / Ubuntu 14+ BBR魔改版不支持Debian 8 安装:

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

魔改BBR一键安装

魔改BBR一键安装

说明:运行脚本后会出现上图的界面。安装魔改BBR先选择1安装对应内核,安装完毕后重启机器,然后再进入脚本目录重新执行脚本,选择4安装魔改BBR。 如果出现下图界面,需要选NO

此界面要选NO

此界面要选NO

KVM即Kernal-based Virtual Machine, 是一种高效且成熟稳定的虚拟化技术, 支持所有的操作系统. 因此, 掌握服务器上搭建KVM平台是很有意义的. 通过虚拟机的建立以及IP分配, 虚拟机可以当做一台完全独立的服务器来使用, 即我们常用的VPS. 搭建虚拟机平台对宿主机系统的要求较高. KVM虚拟化要求宿主机的CPU支持Intel VT或AMD-V技术 (请执行cat /proc/cpuinfo查看), CPUBenchMark至少在1000以上, 建议5000或更多 (ATOM D525这种就不要来装虚拟机了). 系统内存要求至少为4G, 建议8G或更多. 硬盘要求20G以上. 操作系统必须为64位. 服务器至少分配2枚或以上的独立IP地址 (每个VPS一枚, 宿主机一枚). 本次教程, 我们以最新版本的CentOS 7为例, 介绍KVM平台的搭建.  

1, 系统环境准备

(1) 设置服务器名(Hostname) 任何与网络相关的Linux操作都要求设置好服务器名. 请确保您已经正确设置服务器名: 当您在SSH中执行hostname -f命令时, 应看到servername.domainname.com; 当您执行hostname命令时, 应看到servername. 具体设置方法我已强调数十遍, 这里不再赘述. 若未设置好服务器名, 请不要继续.   (2) 软件更新 CentOS系统下执行yum -y update命令更新软件.   (3) 检查网络与IP信息 CentOS 7系统中执行ip addr命令查看网卡及IP地址信息. 查看一下绑定您的宿主机外网主IP地址的网卡名称, 记下它, 我这里是ens9. 查看一下是否有其他的虚拟网卡绑定了额外的外网IP地址, 若有, 请删除对应的虚拟网卡. 本次教程中, 我们假设给宿主机分配的IP地址段为标准网段100.100.100.200/29共8个IP, 则网络地址100.100.100.200, 网关100.100.100.201, 宿主机IP 100.100.100.202, VPS IP段100.100.100.203 ~ 100.100.100.206, 广播地址100.100.100.207, 子网掩码255.255.255.248.  

2, 桌面环境的搭建

如果您仅使用一台服务器搭建KVM, 那我建议搭建桌面环境并搭建VNC服务器, 这样在管理KVM虚拟机和安装操作系统时较为方便. 我们以GNOME桌面环境为例介绍VNC服务器的搭建. GNOME桌面环境安装很简单, 执行下面这行命令即可:

1
yum groupinstall "GNOME Desktop"

然后安装VNC服务器. 执行:

1
yum install tigervnc-server

新建用户, 用来连接VNC, 并配置用户的连接文件. 执行:

1
2
useradd jarod
cp /lib/systemd/system/vncserver@.service /etc/systemd/system/vncserver@:1.service

编辑文件: /etc/systemd/system/vncserver@:1.service 将文件中的替换为我们的用户名jarod, 并取消行首的注释符. 配置防火墙:

1
2
firewall-cmd --permanent --zone=public --add-service vnc-server
firewall-cmd --reload

然后, 切换到用户jarod, 启动VNC服务器: su jarod vncserver 此时, 会提示输入VNC密码, 设置好后回车即可. 最后切换回root, 设置随开机启动:

1
2
3
su root
systemctl daemon-reload
systemctl enable vncserver@:1.service

这样, 我们就配置好VNC服务器了. 在本地电脑上使用VNC客户端连接100.100.100.202:5901即可访问服务器的GNOME桌面环境. 第一次使用VNC连接的时候会提示输入管理员密码, 如下图. 0 此时请输入您的root用户密码. 然后会提示一系列配置信息, 直接NEXT就好.  

3, KVM的安装

KVM安装很简单. 在SSH中执行下面这行命令即可.

1
yum install qemu-kvm qemu-img virt-manager libvirt libvirt-python libvirt-client virt-install virt-viewer

4, 在宿主机上新建VPS

首先, 使用VNC连接宿主机. 进入桌面后, 找到Virtual Machine Manager, 如下图. 1 打开后, 点击图标Create a new virtual machine. 2 然后按步骤载入系统镜像. 如果没有系统镜像的, 可以去我的下载站http://wget.pro下载. 3 4 5 6 接着分配内存和硬盘. KVM是实虚拟, 因此分配内存后宿主机就不能再使用这部分资源了. 7 8 最后分配网卡. 这里我们要选择桥接模式Bridge, 并选择宿主机的出口网卡. 如下图. 9 这样, 我们就新建完成了VPS, 可以安装操作系统了. 10 是不是很简单呢? 安装系统的时候有一个步骤是配置网络信息, 这里我们的DHCP是不生效的, 需要在VPS上获取IP. 选择Configure Network Manually, 然后按照第一部分第三小节的信息来配置即可. 11 至此, 大功告成. 我们在VPS上安装SSH服务器后, 就可以对它进行完全独立的网络访问了.  

参考资料:

1, Kishore, S. VNC-Server installation on CentOS 7https://www.howtoforge.com/vnc-server-installation-on-centos-7 2, Rosa, J. KVM Virtualization in RHEL 7 Made Easy. Dell.

简介 之前的CentOS7系统模板是手动分区版,是为兼容磁盘较小的服务器以及使得用户可以手动挂载自己的数据盘,避免在安装时因为自动分区导致将用户数据盘格式化等问题,因此手动分区版在自动安装完成后,系统默认只分配了4.5GB,剩余磁盘需要进行手动分区扩容。 所以,今天的自动分区版发布了,毕竟手动分区还要花费几分钟时间去手动操作,为什么不在安装时就自动分配所有的磁盘空间给(/)根分区呢?这样安装完直接就是所有磁盘空间都被应用,省去了人工去分区的精力和时间,效率就是金钱。这真是太棒了。 当然手动分区版的存在也是必要的,毕竟有些MJJ们需要手动去分区,例如想给home自定义分区或者挂载数据盘,脚本中默认为自动分区版,因此对于需要手动分区的MJJ们可以手动修改安装地址为手动分区版地址即可。两个版本的唯一差别就是一个会自动分区(所有空间划给/根分区),一个需要手动分区(安装完成后可自定义手动划分分区)。两版安装完均是当前最新的CentOS7.X,CentOS发布什么最新版本,安装完就是什么最新的版本。截至2018年8月CentOS发布的为7.5版。 预览图片(套路云一键重装完) 配置为:1C/1G/40G/200M/1T的机器

如何使用和做

一键安装具有两种系统模板,以下教程中默认使用自动分区版(一个是自动分区版,一个是手动分区版,你应该按照你的需求进行选择) 自动分区版:https://opendisk.cxthhhhh.com/OperatingSystem/CentOS/CentOS_7.X_NetInstall_AutoPartition.vhd.gz 手动分区版:https://opendisk.cxthhhhh.com/OperatingSystem/CentOS/CentOS_7.X_NetInstall.vhd.gz 如需手动进行分区(可根据您的需求定制化,比如挂载数据盘等),请将下面代码中的系统模板地址替换为手动分区版的地址,代码中默认为自动分区版。 我提供两种方式供你采用。(任选其一)。 1. 进入恢复模式(推荐)或在常规模式下,查看要安装的磁盘。(以下命令需要修改到您自己的磁盘) ①如果你是VPS,你应该像这样运行 wget -qO- https://opendisk.cxthhhhh.com/OperatingSystem/CentOS/CentOS_7.X_NetInstall_AutoPartition.vhd.gz gunzip -dc dd of=/dev/vda ②如果你是一个专用服务器,你应该像这样运行 wget -qO- https://opendisk.cxthhhhh.com/OperatingSystem/CentOS/CentOS_7.X_NetInstall_AutoPartition.vhd.gz gunzip -dc dd of=/dev/sda 2. 在正常模式下执行以下命令(通过MoeClub.org提供的脚本) (你需要注意,下面命令中引号是”英文状态引号”。) wget --no-check-certificate -qO InstallNET.sh 'https://moeclub.org/attachment/LinuxShell/InstallNET.sh' && bash InstallNET.sh -dd 'https://opendisk.cxthhhhh.com/OperatingSystem/CentOS/CentOS_7.X_NetInstall_AutoPartition.vhd.gz'

您得明白

1. 它将帮助您重新安装最新的CentOS7.X系统。(正式,纯粹,安全,高效) 2. 执行后,您可能需要15-45分钟后才能通过IP:22进行连接。 3. 新安装的系统root密码为[cxthhhhh.com] 。 4. 系统首次启动后,请等待自动安装完成,系统将自动重启,然后才能使用。(安装过程中的手动干预可能会导致错误) 5. IPV4和IPV6是开启的,并通过DHCP获取网络信息。 6. 系统的DNS将被设置为1.1.1.1和8.8.8.8,用来保护您的隐私。 7. 系统使用官方CentOS镜像,将自动匹配yum信息。拒绝服务提供商劫持。 8. 登录信息标准化,易于管理。您需要在登录后修改它。 9. 完成测试,非常适合Azure,Google Cloud,Vultr,Online,Net,OVH,阿里云,腾讯云中的许多专用服务器和KVM服务器。欢迎您的反馈。 10. 对于手动分区版系统模板,默认分配磁盘大小为4.5G。 11. 当你使用我的解决方案,我想说,感谢您信任我。我非常感谢您。我很高兴可以帮助到你。如果您不信任我的解决方案,请关闭页面,信任这是平等的。我相信技术不分国家,欢迎一起讨论,共同研究最新技术。 12. 自动分区版将会把所有的硬盘剩余空间分配给(/)根分区,请注意,你只可以在全新的服务器上使用自动分区版,如果你有数据在服务器上,请使用手动分区版(根据需求手动挂载您的数据盘),这是为了防止自动分区版在安装时将您的数据盘格式化。 13. 在每次重装前,请保证你已经通过服务商面板重装过一次系统(CentOS/Debian/Ubuntu均可),不可以在已经DD安装过的系统上使用萌咖的自动脚本再次DD本系统,否则会报错,系统无法启动。手动DD不受此问题影响。 14. 在安装过程中,请勿手动进行操作,也许会导致错误。如果您在屏幕(VNC)上看到以下界面,代表正在安装系统,请耐心等待。

开始享受纯净的CentOS7。

0%