项目案例:

  Tarena公司要求实现公司网站,邮箱,文件服务器的运营,并保证安全可靠,方便管理。

项目分析:

为实现要求我们首先要购买域名tarena.com。然后配置一台DNS和WEB服务器,因为这是公司的主要业务,要求可靠性高,所以我们应该建立备用的服务器,以防万一。同时还需要搭建邮件,和文件服务器,现公司给我们提供四台Dell R710服务器。四台服务器的规化如下

服务器规划:

主机名

域名

IP

服务

web01

www.Tarena.com

192.168.11.11

主HTTP

web02

www.Tarena.com

192.168.11.12

从HTTP

从DNS

DNS01

dns01.Tarena.com

192.168.11.252

主DNS

NTP服务

mail01

mail.Tarena.com

192.168.11.248

Mail

FTP

NFS

web01与web02的网站访问目录实时同步,解决访问量和速度的问题,每天1点和13点会将web01服务器的网站内容分别同步到mail01服务器上分别保存进行备份,

web02服务器做为丛HTTP服务器同时也担任从DNS服务器,防止特殊情况。

DNS01做为主DNS服务器,同时付责时间的校对与更新。

Mail01做为 mail邮件服务器,同时也是文件服务器,并备份WEB服务器的备份工作以防止恶意***,误删文件造成的损失(搭建RAID5,防止硬盘损坏)。

项目要点

保证服务器时间同步,安全可靠,互为冗余,互为备份,所有服务器重启进入服务器级别,服务自启动,禁止直接ssh root!帐号的安全管理,邮箱阻止拉圾邮件,允许使用WEBMail.

拓扑图

公司网站,邮箱,文件服务器搭建实战_第1张图片

安装系统、分区规划

系统:redhat 5.10

 分区规划:

web1-2.tarena.com/dns01.tarena.com 使用300G硬盘

分区

大小

挂载点

/dev/sda1

200M

/boot

/dev/sda2

200G

/

/dev/sda3

8192M

swap

/dev/sda5

/dev/vg_data/lv_data

6G

/data

mail01.tarena.com      使用2T硬盘

分区

大小

挂载点

/dev/sda1

200M

/boot

/dev/sda2

200G

/

/dev/sda3

8192M

swap

/dev/sda5

剩余可用空间

/data

 

账户规划:

 

 

                                                                         

账户

UID

GID

宿主目录

yw1

801

800

/home/yw1

yw2

802

800

/home/yw2

yw3

803

800

/home/yw3

yw4

804

800

/home/yw4

web

900

900

/home/web

admin

901

900

/home/admin

dev

902

900

/home/dev

所用到技术

HTTP.   提供公司网站服务

DNS    为整个项目提供dns解析,

Mail     提供mail 服务,允许公司人员通过web收发邮件

vsftp   提供yum源以及公共资源下载,提供上传权限,允许运维人员将更新网站

nfs       提供公共区域共享,作为web服务器的网站根目录

ssh      远程连接配置服务器

NTP    作为时间服务器,为整个网络主机同步时间

Cron规划:每天早上7:00自动同步ntp server的时间

    每天备份web服务器的网站,备份文件名webdb-yyyymmdd.tgz

rsync   同步文件,文件的更新和备份

实验思路

1、安装系统,设置网络参数(ip/route/hostname/dns/hosts)

2、mail01.tarena.com上安装vsftpd,拷贝RedHat ios文件到指定目录,提供yum源服务和repo文件

3、分别修改web01-web02 mail01 /etc/inittab 默认进入服务器级别3,屏蔽三键重启关机,

4、搭建DNS,NTP,FTP,WEB,MAIL等服务

实验步骤:

一.安装系统

a,光盘引导页面直接回车开始安装,

b,skip跳过光盘检验

公司网站,邮箱,文件服务器搭建实战_第2张图片

c,下一步--选择中文--下一步--英语键盘--下一步--跳过注册--自定义分区--下一步--按规划分区--下一步--下一步--选择时区--下一步--输入密码--下一步--现在定制安装包--下一步--选择需要的安装包--下一步,

公司网站,邮箱,文件服务器搭建实战_第3张图片

开始安装

同样安装其它三台服务器

二,服务器的基本配置 ,设置IP地址,计算机名,DNS,开机启动模式,禁用CTRL-ALT-DELETE重启,禁止root登陆SSH

a.)  配置计算机名

 [root@mail01 slaves]# cat /etc/sysconfig/network        

NETWORKING=yes

NETWORKING_IPV6=yes

HOSTNAME=mail01.tarena.com                       //计算机名

HOSTNAM[root@mail01 slaves]# cat /etc/hosts       //本地解析文件                  

# Do not remove the following line, or various programs

# that require network functionality will fail.

127.0.0.1                                                                                                                    localhost.localdomain localhost

::1                                                                                                                        localhost6.localdomain6 localhost6

192.168.1.248                                                             mail01.tarena.com            mail01  //本机IP和域名

b.) 配置网卡IP,掩码,网关

 

[root@mail01 slaves]# cat /etc/sysconfig/network-scripts/ifcfg-eth0

# Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+

DEVICE=eth0

BOOTPROTO=static

IPADDR=192.168.1.248                                   //IP地址

NETMASK=255.255.255.0                                 //子网掩码

GATEWAY=192.168.1.1                                     //网关

PEERDNS=no

ONBOOT=yes                                             开启网卡

HWADDR=52:54:00:55:ed:a3

b.)  配置DNS

[root@mail01 slaves]# cat /etc/resolv.conf            //DNS文件

; generated by /sbin/dhclient-script

nameserver 192.168.1.252                                //DNS服务器

search tarena.com

重启网络服务

[root@mail01 slaves]# service network restart        //重启网络服务

正在关闭接口 eth0:                                        [确定]

关闭环回接口:                                             [确定]

弹出环回接口:                                             [确定]

弹出界面 eth0:                                            [确定]

 

c.)  配置启动项,关闭CTRL-ALT-DELETE重启

[root@mail01 ~]# vim /etc/inittab                 //编辑开机启动文件

...

 18 id:3:initdefault:                                                    //开机进入模式3

...

 31 # Trap CTRL-ALT-DELETE

 32 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now       //关闭三键重启

 

 

e.) 禁止ROOT登陆SSH

[root@mail01 ~]# vim /etc/ssh/sshc_config           

...

 39 PermitRootLogin no                     //禁止root登陆SSH

同样配置其它三台服务器的计算机名,IP,DNS

三,配置YUM库

YUM库配置在文件服务器mail上,为本机和其它服务器提供YUM源。

     a.) 在mail01.tarena.com上拷贝RedHat ios文件到指定目录,为其提供yum源

[root@mail01 ~]# cp -rf /misc/cd/* /date/redhat5.10

b.) 配置repo文件,测试YUM

[root@mail01 ~]# cat /etc/yum.repos.d/rhel-debuginfo.repo

[rhel-do]

name=Red Ha

baseurl=file:///data/redhat5.10/Server          //YUM源地址

enabled=1                                      //启动开关

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

c.) 安装vsftpd,

[root@mail01 ~]# yum -y install vsftpd

...

12 anonymous_enable=NO                         //关闭匿名访问

...

119 chroot_local_user=YES                        //禁锢在共享目录中

120 local_root=/data                             //共享目录

121

:set nu               

[root@mail01 etc]# chmod 1777 /data              //设置权限

 

d.) 配置其它三台服务器的repo配置文件,测试YUM

[root@web01 ~]# cat /etc/yum.repos.d/rhel-debuginfo.repo

 [rhel-do]

name=Red Hat

baseurl=ftp://192.168.11.248/redhat5.10/Server

enabled=1

gpgcheck=1

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-releas

测试

[root@mail01 ~]#yum clean all                    //清空YUM记录

[root@mail01 ~]#yum list                        //查看YUM

 

四.配置DNS 服务器

DNS01

dns01.Tarena.com

192.168.11.252

主DNS

NTP服务

a.)安装DNS服务包,bind,bind-chroot,caching-nameserver

[root@dns01 ~]yum -y install  bind bind-chroot caching-nameserver

配置DNS文件

[root@dns01 ~]# vim /var/named/chroot/etc/named.conf

:set nu

...

15         listen-on port 53 { any; };            //监控端口

...

 27         allow-query     { any; };

 28         allow-query-cache { any; };

...

     37         match-clients      { any; };

 38         match-destinations { any; };

[root@dns01 ~]# vim /var/named/chroot/etc/named.rfc1912.zones

...

 50 zone "tarena.com" IN {

 51         type master;

 52         file "tarena.com.zone";              //域名解析库文件

 53         allow-update { 192.168.11.12; };      //允许.12更新

 54 };

:set nu     

 

 

[root@dns01 ~]# vim /var/named/chroot/var/named/tarena.com.zone

  1 $TTL    86400

  2 @       IN      SOA     localhost. root.localhost.  (

  3                                       2014062701 ; Serial

  4                                       28800      ; Refresh

  5                                       14400      ; Retry

  6                                       3600000    ; Expire

  7                                       86400 )    ; Minimum

  8         IN      NS      localhost.                                  //本机为DNS服务器

  9         IN      MX 5      mail01.tarena.com.    // 定义Mail服务器

 10         IN      NS        web02.tarena.com.   //定义从DNS服务器

 11 dns01       IN      A    192.168.11.252      //dns01解析为.252

12 web02       IN      A    192.168.11.12

 13 mail01  IN      A       192.168.11.248

 14 mail    IN      A       192.168.11.248

 15 www     IN      A       192.168.11.11

 16 www     IN      A       192.168.11.12

 17 @       IN      A       192.168.11.11

 18 *       IN      A       192.168.11.11

...

:set nu  

b.)安装NTP服务包,ntp

NTP是时间服务器,可提供其它计算机进行同步更新时间,便每台计算机的时间相同,不会因为系统长时间运行而产生偏差。客户端也同样需要安装NTP服务。

1、安装NTP,

[root@dns01 ~]# yum -y install ntp

2、修改主配置文件,默认是拒绝所有用户同步的,加入一条允许192.168.11.0网段可以同步

[root@dns01 ~]# vim /etc/ntp.conf            

restrict default kod nomodify notrap nopeer noquery    

  //禁止所有地址同步时间,修改,查看

restrict -6 default kod nomodify notrap nopeer noquery    

 //禁止IPV6所有地址同步时间,修改,查看

restrict 192.168.11.0 mask 255.255.255.0 nomodify     

 //加入允许192.168.11.0网段同步时间

 

3、启动服务

[root@dns01 ~]# service ntpd restart

[root@dns01 ~]# chkconfig ntpd on

 

4、验证

客户与服务器同步    ntpdate 192.168.11.252  

5.自动更新,加入计划任务。

[root@web01 ~]# crontab -e

0 10 * * * /sbin/ntpdate 192.168.10.252

0 10 * * * /sbin/hwclock --systohc

[root@web01 ~]# service crond restart

[root@web01 ~]# chkconfig crond on

 

ntpstat            显示NTP服务器的相关壮态

ntq                     启动标准的NTP查询

ntpdate        指定立即进行更新的服务器 注:ntpdate手动更新与ntp服务自动更新不能同时使用

五.安装Mail服务

mail01

mail.Tarena.com

192.168.11.248

Mail

FTP

NFS

a.)安装Mail发件服务,postfix,

 1.。postfix的端口是25,有可能会被sendmail占用,这时我们需要先关闭sendmail服务,可以先查看一下,如果没有可跳过

[root@mail01 ~]# netstat -tulnp | grep :25            //查看25端口

tcp    0   0 127.0.0.1:25   0.0.0.0:*   LISTEN    4079/sendmail 

[root@mail01 ~]# service sendmail stop                //关闭服务

[root@mail01 ~]# chkconfig sendmail off

[root@mail01 ~]# yum -y install postfix

[root@mail01 ~]# chkconfig --add postfix

[root@mail01 ~]# chkconfig --list postfix

postfix    0:关闭  1:关闭  2:启用  3:启用  4:启用  5:启用  6:关闭

2、修改主配置文件

postfix的主配置文件内容很多,我们可以使用postconf -n命令导出非默认的设置,用此文件来替换原配置文件,这样配置文件就从600多行变成30多行了,方便我们查看更改。保留原文件做为备

[root@mail01 ~]# cd /etc/postfix/

[root@mail01 postfix]# postconf -n > tmp.txt

[root@mail01 postfix]# mv main.cf main.cf.bak

[root@mail01 postfix]# mv tmp.txt main.cf

 

[root@mail01 postfix]# vim main.cf

...

  8 #inet_interfaces = localhost            //监听端口

 20 myhostnasme = mail.tarena.com     //邮件服务器主机名

 21 mydomain = tarena.com                //邮件服务器所在区域

 22 myorigin = $mydomain                 //发件人DNS后缀           

 23 mydestination = $mydomain         //指定Postfix允许处理的邮件

 24 home_mailbox = Maildir/                                                          //邮箱类型

 25 mynetworks = 192.168.11.0/24      //设置允许哪些客户端直接将需要转发到外部区域的邮件提交给Postfix

3、检查语法启动服务

[root@mail01 postfix]# postfix check

[root@mail01 postfix]# postfix reload

[root@mail01 postfix]# netstat -tulnp | grep :25

tcp   0   0 0.0.0.0:25   0.0.0.0:*       LISTEN     6015/master   

b.)收件服务dovecot

1、安装dovecot

dovecot默认配置就可以使用,安装完后启动服务,就可以使用了

[root@mail01 ~]# yum -y install dovecot

2、配置主配置文件

[root@mail01 ~]# vim /etc/dovecot.conf

...

205    mail_location = maildir:~/Maildir               //设置邮箱路径

3、启动服务

[root@mail01 ~]# service dovecot restart

[root@mail01 ~]# chkconfig dovecot on

[root@mail01 ~]# netstat -tulnp | grep dovecot

tcp   0      0 :::110      :::*        LISTEN      16835/dovecot  

tcp   0      0 :::143      :::*        LISTEN      16835/dovecot 

c.)安装认证

SMTP认证控制

1、启动saslauthd服务

[root@mail01 ~]# rpm -q cyrus-sasl

cyrus-sasl-2.1.22-7.el5_8.1

[root@mail01 ~]# cat /etc/sasl2/smtpd.conf

pwcheck_method: saslauthd

[root@mail01 ~]# service saslauthd start

[root@mail01 ~]# chkconfig saslauthd on

[root@mail01 ~]# testsaslauthd -u yw1 -p 123456 -s smtp

//检查saslauthd服务

0: OK "Success."

2、调整postfix配置,启用认证

[root@mail01 ~]# vim /etc/postfix/main.cf

...

 25 mynetworks = 127.0.0.1          //设置本地网络

 26 smtpd_sasl_auth_enable = yes       //启用SASL认证

 27 smtpd_sasl_security_options = noanonymous        //阻止匿名发信

 28 smtpd_recipient_restrictions =       //设置收件人过滤

 29  permit_mynetworks,                    //允许来自mynetworks的客户

 30  permit_sasl_authenticated,         //允许已通过sasl认证的用户

 31  reject_unauth_destination          //拒绝向未授权的目标

d.)安装WEBMail

1、安装squirrelmail

[root@mail01 ~]# yum -y install squirrelmail

2、配置squirrelmail

[root@mail01 ~]# vim /etc/squirrelmail/config.php

...

 26 $squirrelmail_default_language = 'zh_CN';

 28 $domain                 = 'tarena.com';

 29 $imapServerAddress      = '192.168.10.10';

 32 $smtpServerAddress      = '192.168.10.10';

3、启动httpd服务

[root@mail01 ~]# service httpd restart

[root@mail01 ~]# chkconfig httpd on

测试:

http://mail.tarena.com/webmail

d.)  安装nfs

[root@mail01 ~]# mkdir -p /data/webbak01

[root@mail01 ~]# mkdir /data/webbak02

[root@mail01 ~]# yum -y install nfs-utils portmap

 [root@mail01 ~]# vim /etc/exports

/date/webbak01   192.168.1.11(rw,no_root_squash)

/date/webbak02   192.168.1.11(rw,no_root_squash)

 

f.) 自动更新,加入计划任务。

[root@mail01 ~]# crontab -e

0 10 * * * /sbin/ntpdate 192.168.10.252

0 10 * * * /sbin/hwclock --systohc

[root@mail01 ~]# service crond restart

[root@mail01 ~]# chkconfig crond on

 

注:FTP服务在配置YUM的时候已经配置好了

六.配置WEB服务器

web01

www.Tarena.com

192.168.11.11

主HTTP

a.)安装httpd网站服务

[root@web01 ~]# yum -y install httpd

[root@web01 ~]# service httpd restart

停止 httpd:                                               [失败]

启动 httpd:                                               [确定]

 

启动服务后导入你的网站,下面以一个文件代替

[root@web01 ~]# echo www.tarena.com>/var/www/html/index.html

[root@web01 ~]# chkconfig httpd on

 

b.)挂载WEB02的网站目录,设置同步

[root@web01 ~]# vim /etc/fstab

...

192.168.1.12:/var/www/html  /web02     nfs    defaults                     0 0

编写同步触发脚本

[root@web01 ~]# vim in_rsync.sh

#!/bin/bash

/usr/local/bin/inotifywait -mrq -e modify,create,move,delete /var/www/html | while read DIR EVENT FILE

do

/usr/bin/rsync -aHvz --delete /var/www/html/ /web02

done

后台运行

[root@web01 ~]#sh in_rsync.sh&

c.)自动更新,加入计划任务。

[root@web01 ~]# crontab -e

0 10 * * * /sbin/ntpdate 192.168.10.252

0 10 * * * /sbin/hwclock –systohc

00 1 * * * /sbin/rsync –avz --delete \

 /var/www/html/ 192.168.11.248:/data/webbak01

       00 13 * * * /sbin/rsync -avz --delete \

       /var/www/html/ 192.168.11.248:/data/webbak02

 [root@web01 ~]# service crond restart

[root@web01 ~]# chkconfig crond on

七.配置从WEB和丛DNS服务器

web02

www.Tarena.com

192.168.11.12

从HTTP

从DNS

a.)安装从httpd网站服务

[root@web02 ~]# yum -y install httpd                       //yum安装网站服务

[root@web02 ~]# service httpd restart

停止 httpd:                                               [失败]

启动 httpd:                                               [确定]

启动服务后导入你的网站,下面以一个文件代替

[root@web02 ~]# chkconfig httpd on

b.)安装从DNS服务

1.安装DNS服务包,bind,bind-chroot,caching-nameserver

[root@web02 ~]yum -y install  bind bind-chroot caching-nameserver

2.配置DNS文件

[root@web02 ~]# vim /var/named/chroot/etc/named.conf

:set nu                                     //显示行号

...

15         listen-on port 53 { any; };

...

 27         allow-query     { any; };

 28         allow-query-cache { any; };

...

     37         match-clients      { any; };

 38         match-destinations { any; };

[root@web02 ~]# vim /var/named/chroot/etc/named.rfc1912.zones

 50 zone "tarena.com" IN {

 51         type slave;

 52         file "slaves/tarena.com.zone";

 53         masters { 192.168.11.252; };

 54 };

 [root@web02 ~]# service named restart

停止 named:                                               [确定]

启动 named:                                               [确定]

 [root@web02 ~]# chkconfig named on

c.)安装nfs

[root@mail01 ~]# vim /etc/exports             //开机自动挂载

/var/www/html   192.168.1.11(rw,no_root_squash)

d.)自动更新,加入计划任务。

[root@web02 ~]# crontab –e              //编辑计划任务

0 10 * * * /sbin/ntpdate 192.168.10.252

0 10 * * * /sbin/hwclock –systohc

30 8 * * * /bin/tar zcfpP /data/web-$(date +\%Y\%m\%d).tgz /var/www/html

[root@web02 ~]# service crond restart

[root@web02 ~]# chkconfig crond on

实验总结,

通过这个实验让我更加了解服务之间的联系,做用,让我知道如何利用这样服务达到我想要的功能,实验不足的地方就是冗余不够完善,在不使用root的时候,如何设置其它用户的管理权限,达到即安全又不影响管理,远程访问内网服务器需要如何的设置。