多服务器设置与专用的Web,电子邮件,DNS和MySQL数据库服务器在Debian挤压与ISPConfig 3

使用ISPConfig 3在Debian上挤压专用Web,电子邮件,DNS和MySQL数据库服务器的多服务器设置

版本1.0
作者:Till Brehm <t [dot] brehm [at] projektfarm [dot] com>

本教程将介绍如何安装具有专用Web,电子邮件,数据库和两个DNS服务器的ISPConfig 3多服务器设置,所有这些服务器都通过单个ISPConfig 3控制面板进行管理。 下面描述的设置使用五个服务器,只需添加更多的服务器即可将其轻松扩展到更多的服务器。 例如,如果您想要有两个邮件服务器,请执行这两个服务器上第2章的设置步骤。 如果要设置更多的Web服务器,请在专家模式的所有其他Web服务器上安装ISPConfig,除了第一个。

1安装五个Debian基础系统

在此设置中,将有一个主服务器(运行Web服务器和ISPConfig控制面板界面)以及四个用于数据库,电子邮件和DNS的从服务器。

要安装群集设置,我们需要五台服务器(或虚拟服务器),并安装Debian 6.0。 基本设置在以下教程中在第1步 - 6中描述:

https://www.youcl.com/info/6346

仅安装完美服务器教程的第1步 - 6,而不是其他步骤,因为它们不同于群集设置!

在我的例子中,我使用以下五个服务器的主机名和IP地址:

网络服务器

主机名: web.example.tld
IP地址: 192.168.0.105

邮件服务器

主机名: mail.example.tld
IP地址: 192.168.0.106

DB服务器

主机名: db.example.tld
IP地址: 192.168.0.107

DNS服务器(主)

主机名: ns1.example.tld
IP地址: 192.168.0.108

DNS服务器(二级)

主机名: ns2.example.tld
IP地址: 192.168.0.109

在下一个安装步骤中会发生这些主机名或IP地址,您必须更改它们以匹配服务器的IP和主机名。

2安装Web服务器

编辑主机文件,并添加所有服务器的IP地址和主机名。 必须调整主机名和IP地址以匹配您的设置。

vi /etc/hosts
127.0.0.1       localhost
192.168.0.105   web.example.tld
192.168.0.106   mail.example.tld
192.168.0.107   db.example.tld
192.168.0.108   ns1.example.tld
192.168.0.109   ns2.example.tld
 
# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

设置服务器的主机名:

echo web.example.tld > /etc/hostname
/etc/init.d/hostname.sh start

跑...

apt-get update

...更新apt包数据库; 然后运行...

apt-get upgrade

...安装最新的更新(如果有的话)。

通过互联网将系统时钟与NTP( n etwork协议)服务器同步是个好主意。 只需运行...

apt-get -y install ntp ntpdate

...和您的系统时间将始终保持同步。

安装MySQL服务器。 每个服务器都需要一个MySQL服务器实例,因为ISPConfig使用它来同步服务器之间的配置。

apt-get -y install mysql-client mysql-server

在安装程序请求时输入MySQL的新密码。

我们希望MySQL监听主服务器上的所有接口,而不是本地主机,因此我们编辑/etc/mysql/my.cnf并注释掉bind-address = 127.0.0.1行

vi /etc/mysql/my.cnf
[...]  

# Instead of skip-networking the default is now to listen only on  
# localhost which is more compatible and is not less secure.  
#bind-address           = 127.0.0.1  

[...]

然后重启MySQL:

/etc/init.d/mysql restart

现在安装Apache2,PHP5,phpMyAdmin,FCGI,suExec,Pear和mcrypt如下:

apt-get -y install apache2 apache2.2-common apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-cert libapache2-mod-php5 php5 php5-common php5-curl php5-gd php5-mysql php5-imap phpmyadmin php5-cli php5-cgi libapache2-mod-fcgid apache2-suexec php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libapache2-mod-suphp libruby libapache2-mod-ruby libapache2-mod-perl2 sudo zip wget

您将看到以下问题:

Web服务器自动重新配置: < - apache2

然后运行以下命令启用Apache模块suexec,重写,ssl,actions和include:

a2enmod suexec rewrite ssl actions include ruby dav_fs dav auth_digest

可以使用以下命令安装PureFTPd和配额:

apt-get -y install pure-ftpd-common pure-ftpd-mysql quota quotatool

编辑文件/ etc / default / pure-ftpd-common ...

vi /etc/default/pure-ftpd-common

...并确保设置virtualchroot VIRTUALCHROOT = true

[...]
VIRTUALCHROOT=true
[...]

现在我们将PureFTPd配置为允许FTP和TLS会话。 FTP是非常不安全的协议,因为所有密码和所有数据都以明文形式传输。 通过使用TLS,可以对整个通信进行加密,从而使FTP更加安全。

如果要允许FTP和TLS会话,请运行

echo 1 > /etc/pure-ftpd/conf/TLS

为了使用TLS,我们必须创建SSL证书。 我在/ etc / ssl / private /中创建它,因此我先创建该目录:

mkdir -p /etc/ssl/private/

之后,我们可以生成SSL证书,如下所示:

openssl req -x509 -nodes -days 7300 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem

国家名称(2个字母代码)[AU]: < - 输入您的国家名称(例如,“DE”)。
州或省名称(全名)[某些州]: < - 输入您的州或省名称。
地点名称(例如,城市)[]: < - 输入您的城市。
组织名称(例如,公司)[互联网Widgits有限公司]: < - 输入您的组织名称(例如,您公司的名称)。
组织单位名称(如部分)[]: < - 输入您的组织单位名称(例如“IT部门”)。
通用名称(例如,您的姓名)[]: < - 输入系统的完全限定域名(例如“server1.example.com”)。
电子邮件地址[]: < - 输入您的电子邮件地址。

更改SSL证书的权限:

chmod 600 /etc/ssl/private/pure-ftpd.pem

然后重新启动PureFTPd:

/etc/init.d/pure-ftpd-mysql restart

编辑/ etc / fstab 。 我看起来像这样(我添加了usrjquota = aquota.user,grpjquota = aquota.group,jqfmt = vfsv0到具有挂载点的分区)

vi /etc/fstab
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# / was on /dev/sda1 during installation
UUID=92bceda2-5ae4-4e3a-8748-b14da48fb297 /               ext3    errors=remount-ro,usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv0 0       1
# swap was on /dev/sda5 during installation
UUID=e24b3e9e-095c-4b49-af27-6363a4b7d094 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto     0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto  0       0

要启用配额,请运行以下命令:

mount -o remount /
quotacheck -avugm
quotaon -avug

安装vlogger,webalizer和awstats:

apt-get -y install vlogger webalizer awstats

之后打开/etc/cron.d/awstats ...

vi /etc/cron.d/awstats

...并注释掉该文件中的cron作业:

#*/10 * * * * www-data [ -x /usr/share/awstats/tools/update.sh ] && /usr/share/awstats/tools/update.sh

# Generate static reports:
#10 03 * * * www-data [ -x /usr/share/awstats/tools/buildstatic.sh ] && /usr/share/awstats/tools/buildstatic.sh

安装Jailkit:仅当您希望chroot SSH用户时才需要Jailkit。 它可以安装如下(重要:Jailkit必须在ISPConfig之前安装 - 以后无法安装!):

apt-get -y install build-essential autoconf automake1.9 libtool flex bison debhelper
cd /tmp
wget http://olivier.sessink.nl/jailkit/jailkit-2.14.tar.gz
tar xvfz jailkit-2.14.tar.gz
cd jailkit-2.14
./debian/rules binary
cd ..
dpkg -i jailkit_2.14-1_*.deb
rm -rf jailkit-2.14*

安装fail2ban:这是可选的,但建议,因为ISPConfig监视器尝试显示日志:

apt-get install fail2ban

要使fail2ban监视PureFTPd,请创建文件/etc/fail2ban/jail.local

vi /etc/fail2ban/jail.local
[pureftpd]

enabled  = true
port     = ftp
filter   = pureftpd
logpath  = /var/log/syslog
maxretry = 3

然后创建以下过滤器文件:

vi /etc/fail2ban/filter.d/pureftpd.conf
[Definition]
failregex = .*pure-ftpd: \(.*@<HOST>\) \[WARNING\] Authentication failed for user.*
ignoreregex =

以后重新启动fail2ban:

/etc/init.d/fail2ban restart

接下来我们将安装ISPConfig 3.要获取最新的ISPConfig 3稳定版本的下载URL,请访问ISPConfig网站: http : //www.ispconfig.org/ispconfig-3/download/

该服务器是我们设置中运行ISPConfig控制面板界面的主服务器。 为了允许其他MySQL实例在安装期间连接到该节点上的MySQL数据库,我们必须在主数据库中为每个从服务器主机名和IP地址添加MySQL root用户记录。 最简单的方法是使用我们已经安装的基于web的phpmyadmin管理工具。 在网络浏览器中打开URL http://192.168.0.105/phpmyadmin ,以MySQL root用户身份登录并执行这些MySQL查询:

CREATE USER 'root'@'192.168.0.106' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.0.106' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'192.168.0.107' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.0.107' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'192.168.0.108' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.0.108' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'192.168.0.109' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'192.168.0.109' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'mail.example.tld' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'mail.example.tld' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'db.example.tld' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'db.example.tld' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns1.example.tld' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns1.example.tld' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;
CREATE USER 'root'@'ns2.example.tld' IDENTIFIED BY 'myrootpassword';
GRANT ALL PRIVILEGES ON * . * TO 'root'@'ns2.example.tld' IDENTIFIED BY 'myrootpassword' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0 ;

在上述sql命令中,将IP地址( 192.168.0.106 - 192.168.0.109 )替换为服务器的IP地址,并替换mail.example.tlddb.example.tldns1.example.tldns2.example。 tld与您的服务器的主机名和myrootpassword具有所需的root密码。

单击重新加载权限按钮或重新启动MySQL。 然后关闭phpmyadmin。

返回到server1.example.tld的shell,并下载最新的ISPConfig 3稳定版本:

cd /tmp
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
tar xfz ISPConfig-3-stable.tar.gz
cd ispconfig3_install/install/

然后启动安装脚本:

php -q install.php

选择语言(en,de)[en]: < - en
安装方式(标准,专家)[标准]: < - 专家
服务器的全限定主机名(FQDN),例如server2.domain.tld [web.example.tld]: < - web.example.tld
MySQL服务器主机名[localhost]: < - localhost
MySQL root用户名[root]: < - root
MySQL root密码[]: < - 在这里输入您的MySQL root密码
MySQL数据库创建[dbispconfig]: < - dbispconfig
MySQL charset [utf8]: < - utf8
该服务器将加入现有的ISPConfig多服务器设置(y,n)[n]: < - n
配置邮件(y,n)[y]: < - n
配置Jailkit(y,n)[y]: < - y
配置FTP服务器(y,n)[y]: < - y
配置DNS服务器(y,n)[y]: < - n
配置Apache服务器(y,n)[y]: < - y
配置防火墙服务器(y,n)[y]: < - y
安装ISPConfig Web界面(y,n)[y]: < - y
ISPConfig端口[8080]: < - 8080
为ISPConfig Web界面启用SSL(y,n)[y]: < - y
国家名称(2个字母代码)[AU]: < - ENTER
州或省名(全名)[部分状态]: < - ENTER
地点名称(例如,城市)[]: < - ENTER
组织名称(如公司)[互联网Widgits有限公司]: < - ENTER
组织单位名称(例如,部分)[]: < - ENTER
通用名称(例如,您的姓名)[]: < - ENTER
电子邮件地址[]: < - ENTER
挑战密码[]: < - ENTER
可选的公司名称[]: < - ENTER

清理安装目录:

cd /tmp
rm -rf /tmp/ispconfig3_install/install
rm -f /tmp/ISPConfig-3-stable.tar.gz
赞(52) 打赏
未经允许不得转载:优客志 » 系统运维
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏