项目案例:
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 |
|
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跳过光盘检验
c,下一步--选择中文--下一步--英语键盘--下一步--跳过注册--自定义分区--下一步--按规划分区--下一步--下一步--选择时区--下一步--输入密码--下一步--现在定制安装包--下一步--选择需要的安装包--下一步,
开始安装
同样安装其它三台服务器
二,服务器的基本配置 ,设置IP地址,计算机名,DNS,开机启动模式,禁用CTRL-ALT-DELETE重启,禁止root登陆SSH
a.) 配置计算机名
[[email protected] slaves]# cat /etc/sysconfig/network NETWORKING=yes NETWORKING_IPV6=yes HOSTNAME=mail01.tarena.com //计算机名 |
HOSTNAM[[email protected] 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,掩码,网关
[[email protected] 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
[[email protected] slaves]# cat /etc/resolv.conf //DNS文件 ; generated by /sbin/dhclient-script nameserver 192.168.1.252 //DNS服务器 search tarena.com |
重启网络服务
[[email protected] slaves]# service network restart //重启网络服务 正在关闭接口 eth0: [确定] 关闭环回接口: [确定] 弹出环回接口: [确定] 弹出界面 eth0: [确定] |
c.) 配置启动项,关闭CTRL-ALT-DELETE重启
[[email protected] ~]# vim /etc/inittab //编辑开机启动文件 ... 18 id:3:initdefault: //开机进入模式3 ... 31 # Trap CTRL-ALT-DELETE 32 #ca::ctrlaltdel:/sbin/shutdown -t3 -r now //关闭三键重启 |
e.) 禁止ROOT登陆SSH
[[email protected] ~]# vim /etc/ssh/sshc_config ... 39 PermitRootLogin no //禁止root登陆SSH |
同样配置其它三台服务器的计算机名,IP,DNS
三,配置YUM库
YUM库配置在文件服务器mail上,为本机和其它服务器提供YUM源。
a.) 在mail01.tarena.com上拷贝RedHat ios文件到指定目录,为其提供yum源
[[email protected] ~]# cp -rf /misc/cd/* /date/redhat5.10 |
b.) 配置repo文件,测试YUM
[[email protected] ~]# 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, [[email protected] ~]# yum -y install vsftpd ... 12 anonymous_enable=NO //关闭匿名访问 ... 119 chroot_local_user=YES //禁锢在共享目录中 120 local_root=/data //共享目录 121 :set nu [[email protected] etc]# chmod 1777 /data //设置权限 |
d.) 配置其它三台服务器的repo配置文件,测试YUM
[[email protected] ~]# 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 测试 [[email protected] ~]#yum clean all //清空YUM记录 [[email protected] ~]#yum list //查看YUM |
四.配置DNS 服务器
DNS01 |
dns01.Tarena.com |
192.168.11.252 |
主DNS |
NTP服务 |
a.)安装DNS服务包,bind,bind-chroot,caching-nameserver
[[email protected] ~]yum -y install bind bind-chroot caching-nameserver |
配置DNS文件
[[email protected] ~]# 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; }; [[email protected] ~]# 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 |
[[email protected] ~]# 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,
[[email protected] ~]# yum -y install ntp |
2、修改主配置文件,默认是拒绝所有用户同步的,加入一条允许192.168.11.0网段可以同步
[[email protected] ~]# 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、启动服务
[[email protected] ~]# service ntpd restart [[email protected] ~]# chkconfig ntpd on |
4、验证
客户与服务器同步 ntpdate 192.168.11.252
5.自动更新,加入计划任务。
[[email protected] ~]# crontab -e 0 10 * * * /sbin/ntpdate 192.168.10.252 0 10 * * * /sbin/hwclock --systohc [[email protected] ~]# service crond restart [[email protected] ~]# chkconfig crond on |
ntpstat 显示NTP服务器的相关壮态
ntq 启动标准的NTP查询
ntpdate 指定立即进行更新的服务器 注:ntpdate手动更新与ntp服务自动更新不能同时使用
五.安装Mail服务
mail01 |
mail.Tarena.com |
192.168.11.248 |
|
FTP |
NFS |
a.)安装Mail发件服务,postfix,
1.。postfix的端口是25,有可能会被sendmail占用,这时我们需要先关闭sendmail服务,可以先查看一下,如果没有可跳过
[[email protected] ~]# netstat -tulnp | grep :25 //查看25端口 tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 4079/sendmail [[email protected] ~]# service sendmail stop //关闭服务 [[email protected] ~]# chkconfig sendmail off [[email protected] ~]# yum -y install postfix [[email protected] ~]# chkconfig --add postfix [[email protected] ~]# chkconfig --list postfix postfix 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 |
2、修改主配置文件
postfix的主配置文件内容很多,我们可以使用postconf -n命令导出非默认的设置,用此文件来替换原配置文件,这样配置文件就从600多行变成30多行了,方便我们查看更改。保留原文件做为备份
[[email protected] ~]# cd /etc/postfix/ [[email protected] postfix]# postconf -n > tmp.txt [[email protected] postfix]# mv main.cf main.cf.bak [[email protected] postfix]# mv tmp.txt main.cf |
[[email protected] 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、检查语法启动服务
[[email protected] postfix]# postfix check [[email protected] postfix]# postfix reload [[email protected] 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默认配置就可以使用,安装完后启动服务,就可以使用了
[[email protected] ~]# yum -y install dovecot |
2、配置主配置文件
[[email protected] ~]# vim /etc/dovecot.conf ... 205 mail_location = maildir:~/Maildir //设置邮箱路径 |
3、启动服务
[[email protected] ~]# service dovecot restart [[email protected] ~]# chkconfig dovecot on [[email protected] ~]# netstat -tulnp | grep dovecot tcp 0 0 :::110 :::* LISTEN 16835/dovecot tcp 0 0 :::143 :::* LISTEN 16835/dovecot |
c.)安装认证
SMTP认证控制
1、启动saslauthd服务
[[email protected] ~]# rpm -q cyrus-sasl cyrus-sasl-2.1.22-7.el5_8.1 [[email protected] ~]# cat /etc/sasl2/smtpd.conf pwcheck_method: saslauthd [[email protected] ~]# service saslauthd start [[email protected] ~]# chkconfig saslauthd on [[email protected] ~]# testsaslauthd -u yw1 -p 123456 -s smtp //检查saslauthd服务 0: OK "Success." |
2、调整postfix配置,启用认证
[[email protected] ~]# 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
[[email protected] ~]# yum -y install squirrelmail |
2、配置squirrelmail
[[email protected] ~]# 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服务
[[email protected] ~]# service httpd restart [[email protected] ~]# chkconfig httpd on |
测试:
http://mail.tarena.com/webmail
d.) 安装nfs
[[email protected] ~]# mkdir -p /data/webbak01 [[email protected] ~]# mkdir /data/webbak02 [[email protected] ~]# yum -y install nfs-utils portmap [[email protected] ~]# vim /etc/exports /date/webbak01 192.168.1.11(rw,no_root_squash) /date/webbak02 192.168.1.11(rw,no_root_squash) |
f.) 自动更新,加入计划任务。
[[email protected] ~]# crontab -e 0 10 * * * /sbin/ntpdate 192.168.10.252 0 10 * * * /sbin/hwclock --systohc [[email protected] ~]# service crond restart [[email protected] ~]# chkconfig crond on |
注:FTP服务在配置YUM的时候已经配置好了
六.配置WEB服务器
web01 |
www.Tarena.com |
192.168.11.11 |
主HTTP |
a.)安装httpd网站服务
[[email protected] ~]# yum -y install httpd [[email protected] ~]# service httpd restart 停止 httpd: [失败] 启动 httpd: [确定] |
启动服务后导入你的网站,下面以一个文件代替
[[email protected] ~]# echo www.tarena.com>/var/www/html/index.html [[email protected] ~]# chkconfig httpd on |
b.)挂载WEB02的网站目录,设置同步
[[email protected] ~]# vim /etc/fstab ... 192.168.1.12:/var/www/html /web02 nfs defaults 0 0 |
编写同步触发脚本
[[email protected] ~]# 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 |
后台运行
[[email protected] ~]#sh in_rsync.sh& |
c.)自动更新,加入计划任务。
[[email protected] ~]# 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 [[email protected] ~]# service crond restart [[email protected] ~]# chkconfig crond on |
七.配置从WEB和丛DNS服务器
web02 |
www.Tarena.com |
192.168.11.12 |
从HTTP |
从DNS |
a.)安装从httpd网站服务
[[email protected] ~]# yum -y install httpd //yum安装网站服务 [[email protected] ~]# service httpd restart 停止 httpd: [失败] 启动 httpd: [确定] |
启动服务后导入你的网站,下面以一个文件代替
[[email protected] ~]# chkconfig httpd on |
b.)安装从DNS服务
1.安装DNS服务包,bind,bind-chroot,caching-nameserver
[[email protected] ~]yum -y install bind bind-chroot caching-nameserver |
2.配置DNS文件
[[email protected] ~]# 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; }; [[email protected] ~]# 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 }; |
[[email protected] ~]# service named restart 停止 named: [确定] 启动 named: [确定] [[email protected] ~]# chkconfig named on |
c.)安装nfs
[[email protected] ~]# vim /etc/exports //开机自动挂载 /var/www/html 192.168.1.11(rw,no_root_squash) |
d.)自动更新,加入计划任务。
[[email protected] ~]# 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 [[email protected] ~]# service crond restart [[email protected] ~]# chkconfig crond on |
实验总结,
通过这个实验让我更加了解服务之间的联系,做用,让我知道如何利用这样服务达到我想要的功能,实验不足的地方就是冗余不够完善,在不使用root的时候,如何设置其它用户的管理权限,达到即安全又不影响管理,远程访问内网服务器需要如何的设置。
公司网站,邮箱,文件服务器搭建实战,布布扣,bubuko.com