项目案例:

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

项目分析:

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

服务器规划:

主机名

域名

IP

服务



web01

www.Tarena.com

192.168.1.20

主HTTP



web02

www.Tarena.com

192.168.1.30

从HTTP

从DNS


DNS01

dns01.Tarena.com

192.168.1.10

主DNS

NTP服务


mail01

mail.Tarena.com

192.168.1.40

Mail

FTP

NFS

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

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

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

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

项目要点

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

拓扑图

公司网站,邮件,服务器搭建项目练习_基础练习

安装系统、分区规划

系统: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跳过光盘检验

公司网站,邮件,服务器搭建项目练习_基础练习_02

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

公司网站,邮件,服务器搭建项目练习_网站_03

开始安装

同样安装其它三台服务器

二,服务器的基本配置 ,设置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.10                     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.10                                   //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.1.10

主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.1.10; };      //允许.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.1.10      //dns01解析为.252

12 web02       IN      A    192.168.1.30

 13 mail01  IN      A       192.168.1.40

 14 mail    IN      A       192.168.1.40

 15 www     IN      A       192.168.1.20

 16 www     IN      A       192.168.1.20

 17 @       IN      A       192.168.1.10

 18 *       IN      A       192.168.1.10

...

:set nu  

b.)安装NTP服务包,ntp

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

1、安装NTP,

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

2、修改主配置文件,默认是拒绝所有用户同步的,加入一条允许192.168.1.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.1.0 mask 255.255.255.0 nomodify     

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

 

3、启动服务

[root@dns01 ~]# service ntpd restart

[root@dns01 ~]# chkconfig ntpd on

 

4、验证

客户与服务器同步    ntpdate 192.168.1.10  

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

[root@web01 ~]# crontab -e

0 10 * * * /sbin/ntpdate 192.168.1.10

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.1.40

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.1.10';

 32 $smtpServerAddress      = '192.168.1.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.20(rw,no_root_squash)

/date/webbak02   192.168.1.30(rw,no_root_squash)

 

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

[root@mail01 ~]# crontab -e

0 10 * * * /sbin/ntpdate 192.168.1.40

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

[root@mail01 ~]# service crond restart

[root@mail01 ~]# chkconfig crond on

 

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

六.配置WEB服务器

web01

www.Tarena.com

192.168.1.20

主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.20:/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.1.30

从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.1.10; };

 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.40

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

实验总结,

   通过这个实验,我较之前更系统的了解到服务器的一些更细致的搭建和简单应用,实验过程中通过搭建主从DNS,邮件服务器以及建立共享机制和计划任务来简单实现日常化文件管理。通过此次项目练习,再次熟悉了网络环境的搭建,虽然期间出现一些命令敲错报出的一些DNS无法正常启动,pxe自动安装失败等原因,通过最后的努力排错,总算顺利完成实验。

   实验报错:

1.DNS配置,语法检测正常,但是启动失败,报错code42以及无法识别的错误

2.环境安装中,找不到引导文件无法自动安装

等等

   排错思路:

针对DNS:

  首先检测语法有无错误, 报错42和找不到文件 无法识别tarena.com,经验告诉我们是数据库文件中的某个格式书写错误,敲错一些无法识别的单词进入,比方说在TTL下方一些默认选项中域名写错位置等等

   大体地路,首先检测配置文件,逐一语法检测,最后根据提示检测文件的权限。

  环境安装找不到pxelinux.0这个引导文件:

   首先检查一下拷贝的路径是否正确 ,是否在/usr/share/syscongfig/iso..下找到的,没有的话再重新拷贝一些,同时要检测一下syslinux这个包是否安装成功,等等

 此次实验的问题:

    通过此次实验暴露了自己的一些问题,敲命令不够细心,实验没能顺利做出,容易给自己找各种接口;其次对一些服务器的搭建,配置文件不够熟悉了解导致速度较慢,还有待进一步的提高和改进。

   本次实验只是一些简单的服务器,其中对邮件服务器的 一些管理和一些权限问题本次实验并无更多的设计,后续联系还要继续深入学习和体验才行。