Linux 综合实验项目报告
一.项目要求:
因公司规模扩展Tarena公司新购四台Dell R710服务器,购买域名tarena.com。想实现以下服务:
官网服务:www.tarena.com
邮件服务:mail.tarena.com
文件服务:ftp.tarena.com
二.项目要点:
1.主机名与ip地址规划
moni01.tarena.com 192.168.10.253/24
web01.tarena.com 192.168.10.10/24
web02.tarena.com 192.168.10.11/24
mail01.tarena.com 192.168.10.251/24
2.所用到的服务与技术:
在此次的服务器搭建中会用到以下几个服务跟技术:
DNS 实现域名的解析,主从DNS的搭建。
NTP 实现本网络中时间的同步。
FTP 实现YUM软件源在本网络中的软件共享与资料共享。
HTTP web服务的实现,网页的搭建。
Mail 邮件服务器的搭建与实现。
3.各主机名的大致服务的搭建:
moni01.tarena.com dns1.tarena.com ntp.tarena.com ftp.tarena.com
web01.tarena.com www.tarena.com
web02.tarena.com www.tarena.com
mail01.tarena.com mail.tarena.com dns2.tarena.com nfs.tarena.com
4.各主机服务器的简单解释:
moni01.tarena.com:
dns1.tarena.com 为整个项目提供dns解析,作为主dns
ntp.tarena.com 作为时间服务器,为整个网络主机同步时间
ftp.tarena.com 提供YUM源以及公共资源下载,提供上传权限,允许运维人员将更新网站内容传到monil上面。
web01.tarena.com web02.tarena.com :
www.tarena.com web 共同提供公司静态网站服务。
mail01.tarena.com:
mail.tarena.com 提供mail服务,允许公司人员通过web收发邮件。
dns2.tarena.com 提供备份dns服务。
nfs.tarena.com 提供公共区域共享,作为web服务器的网站根目录。
5. 每个服务器要指DNS解析文件
[root@moni01 ~]# vim /etc/resolv.conf //编辑该文件
nameserver 192.168.10.253 //主DNS服务器的ip
[root@moni01 ~]# host -t mx tarena.com //检测
tarena.com mail is handled by 5 mail.tarena.com. //代表设置成功
[root@moni01 ~]# host mail.tarena.com //检测
mail.tarena.com has address 192.168.10.251 //解析成功
三.实验步骤:
1.配置ip地址并修改主机名称
[root@moni01 ~]# hostnam moni01.tarena.com //改名字
[root@moni01 ~]# vim /etc/sysconfig/network //改名字
[root@moni01 ~]# cat /etc/sysconfig/network //查看
NETWORKING=yes
NETWORKING_IPV6=yes
HOSTNAME=moni01.tarena.com //主机名字
[root@moni01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-eth0 //编辑网卡设备eh0
[root@moni01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0 //查看
# Virtio Network Device
DEVICE=eth0 //网卡设备名字
BOOTPROTO=none //状态通用状态
ONBOOT=yes
HWADDR=52:54:00:6d:6e:22 //MAC地址
IPADDR=192.168.10.253 //ip
GATEWAY=192.168.10.1 //网关
NETMASK=255.255.255.0 //子网
[root@moni01 ~]# service network restart //重启该服务
[root@moni01 ~]# chkconfig network on //启动该服务
备注:四个服务器ip的配置与改名方法相同就是名字不一样所以就不一一截图罗。
2. moni01服务器FTP的配置
[root@moni01 ~]#vim /etc/yum.repos.d/rhel-debuginfo.repo //编辑配置文件
[rhel-debuginfo] //名字
name=Red Hat Enterprise Linux $releasever - $basearch - Debug //介绍
baseurl=ftp://172.30.6.125/pub/iso/RedHat/5.10/Server //路径
enabled=1 //是否开启此功能
gpgcheck=0 //是否开启验证
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //密钥文件存放路径
~ //0代表关闭1 代表开启
备注:因为镜像光盘比较大复制到该虚拟机上机器直接挂,所以就没有复制而已物理机的FTP里的东西为YUM的软件指定位置。
3. moni01服务器NDS的配置
[root@moni01 ~]# rpm -q bind bind-chroot caching-nameserver //检测是否安装罗该软件
package bind is not installed
package bind-chroot is not installed
package caching-nameserver is not installed //not 代表没有安装此软件
[root@moni01 ~]# yum -y install bind bind-chroot caching-nameserver //yum库安装该软件可以省去关联软件的挑选安装,直接关联软件整套安装
[root@moni01 ~]# rpm -q bind bind-chroot caching-nameserver //检测
bind-9.3.6-20.P1.el5_8.6
bind-chroot-9.3.6-20.P1.el5_8.6
caching-nameserver-9.3.6-20.P1.el5_8.6 //表示此软件已安装
[root@moni01 ~]# cd /var/named/chroot/etc/ //切换到该目录
[root@moni01 etc]# cp -p named.caching-nameserver.conf named.conf //复制模板并改名,加-p 保留原文件所有权限复制
[root@moni01 etc]# vim named.conf //编辑配置文件
15 listen-on port 53 { 192.168.10.253; }; //监听端口号,本地ip
27 allow-query { any; }; //any 本机的意思
28 allow-query-cache { any; }; //any 本机的意思
37 match-clients { any; }; //any 本机的意思
38 match-destinations { any; }; //any 本机的意思
[root@moni01 etc]# vim named.rfc1912.zones //编辑该文件
50 zone "tarena.com" IN { //括号内填写域名
51 type master;
52 file "tarena.com.zone"; //正向解析的文件存放名
53 allow-transfer { 192.168.10.251; }; //同意该ip从本机同步解析
[root@moni01 etc]# named-checkconf named.rfc1912.zones //检测该文件是否有语法错误
[root@moni01 etc]# cd /var/named/chroot/var/named/ //切换到该目录
[root@moni01 named]# cp -p named.local tarena.com.zone //复制并改名-p保留原来文件的权限
[root@moni01 named]# vim tarena.com.zone //编辑正向文件
$TTL 86400
@ IN SOA dns01.tarena.com. root.tarena.com. ( //域名可写可不写用默认的也行
2014062801 ; Serial //版本号每次修改加1
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS dns01.tarena.com. //域名
IN NS dns02.tarena.com.
IN MX 5 mail.tarena.com.
dns01 IN A 192.168.10.253 //正向域名解析
mail IN A 192.168.10.251 //邮箱域名的解析
www IN A 192.168.10.253
dns02 IN A 192.168.10.251 //从DNS的解析
www IN A 192.168.10.10
www IN A 192.168.10.11
www IN A 192.168.10.251
~
[root@moni01 named]# service named restart //重启该服务
4. moni01服务器NTP的配置
[root@moni01 named]# rpm -q ntp //检测
ntp-4.2.2p1-15.el5_7.1 //代表已安装
[root@moni01 named]# vim /etc/ntp.conf //修改该文件
3 restrict default kod nomodify notrap nopeer noquery
4 restrict -6 default kod nomodify notrap nopeer noquery
5 restrict 192.168.10.0 mask 255.255.255.0 nomodify //添加一行这个表示允许该网段的ip从我这同步时间
[root@moni01 named]# service ntpd restart //重启
测试:
[root@web01 ~]# date 200622102014 //打乱系统的时间
[root@web01 ~]# date //查看
[root@web01 ~]# ntpdate 192.168.10.253 //向服务器同步时间
[root@web01 ~]# date //再次查看确认
//要确保本机的该服务为开启的不然同步失败修改时间的顺序是:日。月。时。分。年 在测试时不要让时间相差太远不然就等不能很快看见效果。
5. moni01服务器FTP的配置
[root@moni01 named]# rpm -q ftp //检测
ftp-0.17-38.el5 //表示已安装此软件
[root@moni01 named]# cd /etc/vsftpd/ //切换
[root@moni01 vsftpd]# vim vsftpd.conf //编辑
...... .....
12 anonymous_enable=NO //拒绝匿名用户登录,默认是允许的
...... .....
[root@moni01 vsftpd]# service vsftpd restart //重启
6. web01服务器上配置HTTP
[root@web01 ~]# rpm -q httpd //检测
package httpd is not installed //没有安装此软件
[root@web01 ~]# yum -y install httpd //安装
[root@web01 ~]# rpm -q httpd //检测
httpd-2.2.3-82.el5_9 //表示安装此软件了
[root@web01 ~]# vim /etc/httpd/conf/httpd.conf //编辑
265 ServerName www.tarena.com:80 // 本站点的名字(本网站的名字)后面是端口号
266
[root@web01 ~]# service httpd restart //重启
备注:四个服务器都要配置http服务方法一样所以就不一一指出了。web02服务器跟这个配置一样就不一一写出罗。
7. mail01服务器从DNS的配置
[root@mail01 ~]# rpm -q bind bind-chroot caching-nameserver //检测
package bind is not installed
package bind-chroot is not installed
package caching-nameserver is not installed //没有安装此软件
[root@mail01 ~]# yum -y install bind bind-chroot caching-nameserver //安装 -y表示允许
[root@mail01 ~]# rpm -q bind bind-chroot caching-nameserver //检测
bind-9.3.6-20.P1.el5_8.6
bind-chroot-9.3.6-20.P1.el5_8.6
caching-nameserver-9.3.6-20.P1.el5_8.6 //代表安装此软件了
[root@mail01 ~]# cd /var/named/chroot/etc/ //切换
[root@mail01 etc]# cp -p named.caching-nameserver.conf named.conf //复制模板并改名-p保留原来文件的权限
[root@mail01 etc]# vim named.conf //编辑
listen-on port 53 { 192.168.10.251; }; //本机ip监听的端口号
allow-query { any; };
allow-query-cache { any; };
match-clients { any; };
match-destinations { any; }; //any本机的意思
[root@mail01 etc]# vim named.rfc1912.zones //编辑
zone "tarena.com" IN { //域名
type slave; //类型是从DNS
file "slaves/tarena.com.zone"; //该文件存放在此目录下
masters { 192.168.10.253; }; //从该ip同步
};
[root@mail01 etc]# service named restart //重启
测试:
[root@mail01 etc]# ls /var/named/chroot/var/named/slaves/
tarena.com.zone //查看是否同步到文件如果没有同步到并且语法检测没有错误看复制文件时是否加-p,一般没有加-p的话报错只显示启动失败。
8. mail01服务器mail邮件系统的搭建
[root@mail01 ~]# rpm -q postfix //检测
package postfix is not installed //没有安装此软件
[root@mail01 ~]# yum -y install postfix //安装
[root@mail01 ~]# rpm -q postfix //检测
postfix-2.3.3-6.el5 //表示安装
[root@mail01 ~]# cd /etc/postfix/ //切换到该目录下
[root@mail01 postfix]# ls //查看
access header_checks makedefs.out post-install virtual
bounce.cf.default LICENSE master.cf relocated
canonical main.cf postfix-files TLS_LICENSE
generic main.cf.default postfix-script transport
[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 myhostname = mail.tarena.com //邮件服务器主机名
21 mydomain = tarena.com //邮件服务器所在的区域 //域名
22 myorigin = $mydomain //发件人DNS后缀 //同上的意思
23 mydestination = $mydomain //指定Postfix允许处理的邮件 //同上的意思
24 home_mailbox = Maildir/ //邮箱类型
25 mynetwork = 192.168.10.0/24 //设置允许哪些客户端直接将需要转发到外部区域的邮件提交给Postfix
//前面的解释是=前的解释 //后面的是=后的解释
[root@mail01 postfix]# postfix check //语法的检测
[root@mail01 postfix]# netstat -tulnp | grep :25 //检测端口号默认的该端口是sendmail占用先停用他。
tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2345/sendmail
[root@mail01 postfix]# service sendmail stop //禁用该服务
[root@mail01 postfix]# service postfix restart //重启该服务
9. mail01服务器搭建Webmail系统
[root@mail01 postfix]# rpm -q squirrelmail //检测
package squirrelmail is not installed //表示没有安装此软件
[root@mail01 postfix]# yum -y install squirrelmail //安装此软件
[root@mail01 postfix]# rpm -q squirrelmail //检测
squirrelmail-1.4.8-21.el5 //表示安装此软件
[root@mail01 ~]# vim /etc/squirrelmail/config.php //编辑
26 $squirrelmail_default_language = 'zh_CN'; //语言
28 $domain = 'tarena.com'; //域名
29 $imapServerAddress = '192.168.10.251'; //本地ip
32 $smtpServerAddress = '192.168.10.251' //本地ip
[root@mail01 ~]# service httpd restart //重启
测试:找个浏览器输入http://mail.tarena.com/webmail 出现登录界面代表成功
10. 每天早晨7:00自动同步ntp server 的时间。
[root@web01 ~]# crontab -e //编辑
0 7 * * * /sbin/ntpdate 192.168.10.253 //每天的7:00同步此ip的时间
[root@web01 ~]# service crond restart //重启
[root@web01 ~]# chkconfig crond on
备注:除了服务器另外三台全部设置,方法一样就不一一写出。
四. 项目总结:
在这个项目中总体来说没有什么难度,就是各个知识的熟练运用与他的原理的理解与运用,在构架中思路的明确与程序直接的相互关系的运用可以很快速的搭建完成。对各个程序软件的了解也是很重要的。该项目实现了DNS的解析备份,web服务器的负载均衡,以及邮件的发送跟时间的每日同步。