项目案例:
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 | 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 | |
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跳过光盘检验
c,下一步--选择中文--下一步--英语键盘--下一步--跳过注册--自定义分区--下一步--按规划分区--下一步--下一步--选择时区--下一步--输入密码--下一步--现在定制安装包--下一步--选择需要的安装包--下一步,
开始安装
同样安装其它三台服务器
二,服务器的基本配置 ,设置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 | 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这个包是否安装成功,等等
此次实验的问题:
通过此次实验暴露了自己的一些问题,敲命令不够细心,实验没能顺利做出,容易给自己找各种接口;其次对一些服务器的搭建,配置文件不够熟悉了解导致速度较慢,还有待进一步的提高和改进。
本次实验只是一些简单的服务器,其中对邮件服务器的 一些管理和一些权限问题本次实验并无更多的设计,后续联系还要继续深入学习和体验才行。