基于Linux的服务器搭建

摘 要

Linux操作系统搭建服务器,Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。伴随着互联网的发展,Linux得到了来自全世界软件爱好者、组织、公司的支持。它在服务器方面保持着强劲的发展势头,在目前,由于信息越来越发达,人们对服务器的要求越来越高,服务器的好坏对用户直接产生影响,而Linux就是目前在网络上最受欢迎的操作系统,而且 Linux操作系统在安全稳定方面是很好的,所以在未来的网络发展中,构建基于Linux的网络服务平台是很有前景的,就现在,商业、企业都要求更高的安全性和可靠性。
本设计是基于Linux操作环境下进行了服务器的搭建,在熟悉了IP的分类、地址划分、域名的相关网络知识后,搭建了一个能实现DHCP服务、Samba 服务、DNS服务、FTP服务、Apache服务、Sendmail服务的平台来实现服务器的功能,最后基于Linux服务器进行测试。
作为一个整体的服务器,必须要有稳定,安全的特性,在这次设计中可以体现出Linux 的服务器优势。

关键词:Linux;服务器;DNS;FTP

ABSTRACT

Linux operating system builds a server. Linux is a UNIX like operating system that is free to use and spread. It is a POSIX based multi-user, multi task, multi thread and multi CPU operating system. With the development of the Internet, Linux has been supported by software enthusiasts, organizations and companies all over the world. It maintains a strong development momentum in the server. At present, due to the more and more developed information, people have higher and higher requirements for the server, and the quality of the server has a direct impact on users. Linux is the most popular operating system on the network, and the Linux operating system is very good in terms of security and stability. Therefore, in the future network development, Building a network service platform based on Linux is very promising. Now, businesses and enterprises require higher security and reliability.
This design is based on the Linux operating environment to build the server. After being familiar with the relevant network knowledge of IP Classification, address division and domain name, it builds a platform that can realize DHCP service, samba service, DNS service, FTP service, Apache service and sendmail service to realize the function of the server. Finally, it is tested based on the Linux server.
As a whole, the server must have stable and safe characteristics. The server advantages of Linux can be reflected in this design.

Keywords: Linux; The server; DNS; FTP

目 录

第1章 引言 1
1.1 选题背景 1
1.2 研究目标和意义 1
1.3 国内外现状 1
第2章 服务器搭建整体综述 2
2.1 设计原则 2
2.2 需求分析 2
2.3 建设目标 3
第3章 相关技术分析 4
3.1 SSH服务 4
3.1.1 SSH服务安装与配置 4
3.2 DHCP服务 4
3.2.1 DHCP服务安装与配置 5
3.2.2 DHCP动态IP地址分配 9
3.3 Samba服务器 10
3.3.1 Samba服务器安装与配置 10
3.3.2 Samba服务器原理及验证 11
3.4 DNS服务器 13
3.4.1 DNS服务器安装与配置 13
3.4.2 DNS服务器测试 17
3.5 FTP服务器 19
3.5.1 FTP服务器安装配置与测试 19
3.6 Sendmail服务器 27
3.6.1 Sendmail服务器安装 28
3.6.2 Sendmail服务器测试 30
3.7 Apache服务器 31
3.7.1 Apache服务器安装与测试 31
第4章 基于Apache服务器搭建LAMP环境 34
4.1 MariaDB数据库环境搭建 34
4.2 PHP脚本语言安装 35

第1章 引言

1.1 选题背景
Linux系统作为最早开发的操作系统之一越来越受到大家的欢迎,国际上有名的硬、软件厂商都与之结盟、捆绑。这是因为它作为自由软件有两个特点:一是它免费提供源码,二是爱好者可以按照自己的需要自由修改、复制和发布程序的源码,并公布在 Internet 上。这就吸引了世界各地的操作系统高手为 Linux编写各种各样的驱动程序和应用软件,使得Linux成为一种不仅只是一个内核,而且包括系统管理工具、完整的开发环境和开发工具、应用软件在内,用户很容易获得的操作系统。由于可以得到 Linux的源码,所以操作系统的内部逻辑可见,这样就可以准确地查明故障原因,及时采取相应对策。这是其它操作系统所没有的优势。究其根本,Linux是一个UNIX系统变种,因此也就具有了 Unix系统的一系列优良特性,Unix 上的应用可以很方便地移植到Linux台上,这使得Unix 用户很容易掌握Linux系统。
Windows有着很强大的图形界面,使用方便,很容易让人们理解,而与之相比,Unix 和 Linux就显得比较抽象,它们一般都是在字符界面上操作的,但在复杂的网络环境中Linux 却扮演着很重要的角色。在 Internet 中网络错综复杂。每天都有很多的请求和服务,所以要求系统要很安全和稳定,Linux就是担负着这个艰难的任务,它有着稳定、可靠、安全的特点,正因为它的这些特点,基于Linux的网络就得到了大力的发展。
一直以来,运行Linux 操作系统的服务器都被世界各地很广泛的使用着,在Linux上能够很好的实现Apache、DNS、Sendmail、Dhcp、Samba、Ftp、Http等服务。
1.2 研究目标和意义
随着开源软件在世界范围内影响力日益增强,Linux服务器操作系统在整个服务器操作系统市场格局中占据了越来越多的市场份额,已经形成了大规模市场应
用的局面。并且保持着快速的增长率。尤其在政府、金融、农业、交通、电信等国家关键领域。此外,考虑到Linux的快速成长性以及国家相关政策的扶持力度,Linux服务器产品一定能够冲击更大的服务器市场。
据权威部门统计,目前Linux在服务器领域已经占据75%的市场份额,同时,Linux在服务器市场的迅速崛起,已经引起全球IT产业的高度关注,并以强劲的势头成为服务器操作系统领域中的中坚力量。
Linux操作系统在短短的几年之内便得到了非常迅猛的发展,这与Linux具有的良好特性是分不开的。Linux包含UNIX的全部功能和特性。简单地说,Linux具有以下主要特性。
1、开放性
开放性是指系统遵循世界标准规范,特别是遵循开放系统互连(OSI)国际标
准。凡遵循国际标准所开发的硬件和软件,都能彼此兼容,可方便地实现互联。
2、多用户
多用户是指系统资源可以被不同用户各自拥有和使用,即每个用户对自己的资源(如文件、设备)有特定的权限,互不影响。Linux和UNIX都具有多用户的特性。
3、多任务
多任务是现代计算机操作系统的最主要的一个特点。它是指计算机同时执行多个程序,而且各个程序的运行互相独立。Linux系统调度每一个进程平等地访问处理器(CPU)。由于CPU的处理速度非常快,从处理器执行一个应用程序中的一组指令到Linux调度处理器再次运行这个程序之间只有很短的时间延迟,用户是感觉不出来的,因而启动的应用程序看起来好像在并行运行。
4、良好的用户界面
Linux向用户提供了两种界面:用户界面和系统调用。Linux的传统用户界而是基于文本的命令行界面,即 shell,它既可以联机使用,又可存储在文件上脱机使用。she11有很强的程序设计能力,用户可方便地用它编制程序,从而为用户扩充系统功能提供了更高级的于段。可编程shell是指将多条命令组合在一起,形成一个shell程序,这个程序可以单独运行,也可以与其他程序同时运行。Linux还为用户提供了图形用户界面,利用鼠标、菜单、窗口、滚动条等设施,给用户呈现一个直观、易操作、交互性强、友好的图形化界面。
5、设备独立性
设备独立性是指操作系统把所有外部设备统一视为文件,只要安装它们的驱动程序,任何用户都可以像使用文件一样操纵、使用这些设备,而不必知道它们的具体存在形式。
具有设备独立性的操作系统通过把每一个外围设备看做一个独立文件来简化增加新设备的工作。当需要增加新设备时,系统管理员在内核中增加必要的连接。这种连接(也称做设备驱动程序)保证每次调用设备提供服务时,内核以相同的方式来处理它们。当新的或更好的外设被开发并交付给用户时,只要这些设备连接到内核,就能不受限制地立即访问它们。设备独立性的关键在于内核的适应能力。其他操作系统只允许一定数量或一定种类的外部设备连接,而具有设备独立性的操作系统能够容纳任意种类及任意数量的设备,因为每一个设备都是通过其与内核的专用连接独立进行访问的。
Linux是具有设备独立性的操作系统,它的内核具有高度适应能力,随着更多的程序员利用Linux编程,会有更多的硬件设备加入到各种Linux内核和发行版木中。另外,由于用户可以免费得到Linux 的内核源代码,因此,用户也可以修改内核源代码,以便适应新增加的外部设备。
6、丰富的网络功能
完善的内置网络是Linux的一大特点。Linux在通信和网络方面的功能优于其它操作系统。它的联网能力与内核紧密地结合在一起,并具有内置的灵活性。Linux为用户提供了完善、强大的网络功能。
7、可靠的系统安全
Linux采取了许多安全技术措施,包括对读写进行权限控制、带保护的子系统、审计跟踪、核心授权等,这为网络多用户环境中的用户提供了必要的安全保障。人们普遍认为,Linux是目前最安全的操作系统之一。
8、良好的可移植性
可移植性是指将操作系统从一个平台转移到另一个平台时它仍然能按其自身的方式运行的能力。
Linux是一种可移植的操作系统,能够在从微型计算机到大型计算机的任何环境和任何平台上运行。可移植性为运行Linux的不同计算机平台与其他计算机进行准确而有效的通信提供了手段,不需要另外增加特殊和昂贵的通信接口。
1.3 国内外现状
国内 Linux 操作系统发展现状
国内目前涉足Linux操作系统研发,除学校、研发机构外,主要 Linux发行版包括红旗、中标、共创、新华、拓林思等,均有桌面和服务器两个版本;国内各发行版均基于国际社区版本发展而来,基于国际社区成果,在界面定制上做了一些工作,并没有掌握核心技术,且与国际Linux 操作系统发行版之间存在一定的技术差距,缺少技术积累,面临Linux发展后劲不足等问题。
国外Linux操作系统发展现状
国外Linux操作系统发展现状,国外主要发行版包括redhat、ubuntu、Suse 等,均提供桌面和服务器两个不同版本。服务器领域Linux操作系统发展比较成熟,桌面发展比较缓慢,嵌入式领域发展较快。

第2章 服务器搭建整体综述

2.1 设计原则
服务器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
在网络环境下,根据服务器提供的服务类型不同,分为文件服务器、数据库服务器、应用程序服务器、WEB服务器等。
2.2 需求分析
在企业信息化建设中,服务器的角色举足轻重。在最常见的C/S网络结构中,服务器扮演着为网络中的计算机提供服务的角色,是整个网络系的核心,服务器的正确选择也是整个信息化建设的关键。
在中小企业服务器选购过程中也存在着一些问题,首先是资金比较短缺,在小型企业建设中,初始阶段公司规模比较小,业务量不大,信息化建设的需求并不强烈,效果也不明显,所以在初始阶段的信息化建设不会投入太多的资金,采购服务器一般本着少花钱,多办事的原则,追求资金回报率。
其次专门的IT人员较为匮乏,专门的IT人员会增加一笔额外的开支,一般来说,规模不大的小型企业出于成本的考虑,一般只有很少或者没有专门的IT人员。而在外贸公司中,却少不了IT部门。
虽然前期成本很关键,但是企业在选购服务器时也不能一味追求低成本而忽略了服务器的可用性、易管理性和扩展性。初始的采购成本只占企业总体拥有成本的一部分,而后期的硬件升级费用、管理维护费用、人员费用等可能会接近或者超过初始的采购成本。所以,价格低廉,易于管理,稳定可靠的服务器产品才更为适合中小企业,可以为企业降低总体拥有成本。
除了要从成本、可用性、管理性和扩展性等几个方面考虑外,服务器还需要对症下药,做好规划选型,明确企业自身需要提升的方向,做到有的放矢,充分利用资金,避免出现不适用或者资源的闲置浪费现象。从中小企业对服务器的应用方面来看,在初期业务量并不大,需要服务器操作的强度也许不是很大,但是需要应用的种类很多,比如一台服务器要同时兼备数种角色,这时候一款通用型服务器是最好的选择。但是随着网络规模的不断扩大,各种业务彼此分开,服务器需要处理的业务量也不断增大,这时候就有必要根据不同应用选购配置不同的服务器,以获得更优的性能和稳定性。因此,在公司内备置了FTP 、DHCP、Samba、DNS、Sendmail、Apache等常用服务器。
2.3 建设目标
能很好的在 Linux和 window操作系统下进行文件的传输和共享, SSH安全外壳协议实现远程登录,能够让域名和与之相对应的IP地址间进行转换,研究邮件服务的配置和邮件发送的整个过程和原理,能很好的实现DHCP的动态IP的地址分配,并且搭建了一个Apache的服务器,能够实现网页访问。

第3章 相关技术分析

3.1 SSH服务
SSH是指Secure Shell,是一种安全的传输协议,Ubuntu客户端可以通过SSH访问远程服务器。SSH的简介和工作机制可参看上篇文章SSH简介及工作机制。
SSH分客户端openssh-client和openssh-server。
如果你只是想登陆别的机器的SSH只需要安装openssh-client(ubuntu有默认安装,如果没有则sudo apt-get install openssh-client),如果要使本机开放SSH服务就需要安装openssh-server。
3.1.1 SSH服务安装与配置
1、首先在本机安装openssh-server和openssh-client。
命令:sudo apt-get install openssh-server openssh-client。
2、再检查当前的目录下有没有.ssh这个文件,如果没有自行创建。
3、生成公钥与私钥。命令:ssh-keygen -t rsa。
4、此时会在~.ssh文件中生成id_isa_pub文件和authorized_keys文件。
5、SSH免密登录配置成功。
3.2 DHCP服务
当客户端开机或者重启网卡时,客户端主机会发送出查找DHCP服务器的UDP数据包给所有物理网络段的计算机,此数据包的目标IP为255.255.255.255,一般主机接收到这个数据包会直接丢弃,DHCP服务器则会开始进行后续行为。
服务器端接收到客户端的要求后,会正对这个客户端的硬件及地址(MAC)与本身的设置数据来进行以下工作:
1、到服务器的日志文件中查找该用户之前是否曾经租用过某个IP,若有该IP且目前无人使用,则提供给客户端。
2、若配置文件针对该MAC地址提供特定的固定IP时,则提供该固定IP给客户端。
3、若不符合上述两个条件,则随机选择其当前没有被使用的IP参数给客户端并记录下来。
当局域网里存在多个DHCP服务器时,客户端要对其进行选择,当客户端决定好使用此服务器的网络参数租约后,客户便开始使用这组网络参数来配置自己的网络环境,此外,客户端会发送一个广播数据包给所有的物理网段内的主机,告知已经接受该服务器的租约,没有被接受的服务器会收回IP租约。被接受的DHCP服务器会继续进行下面的操作。
客户端脱机以后server端就会将IP收回,并且DHCP服务端发放的IP有使用的期限,客户端使用这个IP到达期限规定的时间,而且没有重新提出DHCP申请时,服务端也会将该IP收回。
3.2.1 DHCP服务安装与配置
ubuntu-16.04.7-server的dhcp服务是isc-dhcp-server,我们用如下命令安装:
panwenjun@server:~$ sudo apt install isc-dhcp-server
DHCP的主要有两个配置文件夹,分别位于 /etc/default 和 /etc/dhcp。下面要做的就是对这两个文件夹下的isc-dhcp-server和dhcpd.conf文件进行配置。
命令获取目标主机的网卡名称和相关信息:
panwenjun@server:~$ ifconfig

图3-1 目标主机的网卡名称和相关信息
可以看到目标主机只有一张ens33的网卡,接下来配置/etc/default/isc-dhcp-server文件。
panwenjun@server:~$ sudo vim /etc/default/isc-dhcp-server
将INTERFACES的内容补充为目标主机的网卡名称ens33。

图3-2 isc-dhcp-server文件相关配置
然后配置/etc/dhcp/dhcpd.conf 文件:
panwenjun@server:~$ sudo vim /etc/dhcp/dhcpd.conf
dhcpd.conf文件内容中需要配置域名和子网IP等信息,需要修改option domain-name-servers这一行,将其注释掉。

图3-3 dhcpd.conf 文件文件相关配置
还需添加以下信息。subnet为192.168.29.0,DHCP分配范围设置为200-253,其余地址留给广播和静态IP。网关和DNS均设置为192.168.29.1,广播地址为192.168.29.255,ntp-servers和netbios-name-servers设置与DNS一致,netbios-node-type默认为8

图3-4 dhcpd.conf 文件文件相关配置
配置完成之后命令重启DHCP服务:
panwenjun@server:~$ sudo service isc-dhcp-server restart
开机自启动:
panwenjun@server:~$ sudo systemctl enable isc-dhcp-server.service
可以使用命令查看dhcp相关进程是否正常运行:
panwenjun@server:~$ sudo netstat -uap

图3-5 查看dhcp相关进程
查看dhcp服务状态:
panwenjun@server:~$ sudo service isc-dhcp-server status
如果服务状态如下图所示,证明dhcp服务已启动。

图3-6查看dhcp服务状态
3.2.2 DHCP动态IP地址分配
执行如下命令,DHCP分配的IP、网关、DNS信息会保存在/var/lib/dhcp/dhclient.leases这个文件上:
panwenjun@server:~$ sudo dhclient ens38
panwenjun@server:~$ cd /var/lib/dhcp && cat dhclient.leases
panwenjun@server:~$ sudo dhclient –d ens38

图3-7 dhclient.leases文件内容
重启网络:
panwenjun@server:~$ sudo /etc/init.d/networking restart
ifconfig查看IP,可以看到当前的IP地址和我们自己获取跟踪的IP地址192.168.1.200一样,DHCP服务搭建完毕。
3.3 Samba服务器
Samba服务的主要任务就是实现Linux系统和Windows系统之间的资源共享。Samba是在Linux系统上实现的SMB(Server Messages Block,信息服务块)协议的一款免费软件。它实现在局域网内共享文件和打印机,是一个客户机/服务器型协议。客户机通过SMB协议访问服务器上的共享文件系统。可以实现Windows系统访问Linux系统上的共享资源。
3.3.1 Samba服务器安装与配置
安装samba服务:
panwenjun@server:~$ sudo apt-get install samba
创建一个samba服务的分享目录 :
panwenjun@server:~$ mkdir /share
创建一个samba服务限制的用户及组:
panwenjun@server:~$ sudo useradd public
为public用户设置密码:

panwenjun@server:~$ sudo passwd public
修改samba服务的配置文件:
panwenjun@server:~$ sudo vim /etc/samba/smb.conf
修改内容如下,在文件的末尾添加:

图3-8 smb.conf文件相关配置
配置文件中支持的用户是public,那么需要修改/home/panwenjun/share目录的权限:
panwenjun@server:~$ sudo chown public:public /home/panwenjun/share
配置完文件重启一下samba服务:
sudo /etc/init.d/samba restart
3.3.2 Samba服务器原理及验证
Samba最大的功能就是可以用于Linux与windows系统直接的文件共享和打印共享,Samba既可以用于windows与Linux之间的文件共享,也可以用于Linux与Linux之间的资源共享,由于NFS(网络文件系统)可以很好的完成Linux与Linux之间的数据共享,因而 Samba较多的用在了Linux与windows之间的数据共享上面。
SMB是基于客户机/服务器型的协议,因而一台Samba服务器既可以充当文件共享服务器,也可以充当一个Samba的客户端,例如,一台在Linux 下已经架设好的Samba服务器,windows客户端就可以通过SMB协议共享Samba服务器上的资源文件,同时,Samba服务器也可以访问网络中 其它windows系统或者Linux系统共享出来的文件。
Samba在windows下使用的是NetBIOS协议,如果你要使用Linux下共享出来的文件,请确认你的windows系统下是否安装了NetBIOS协议。
组成Samba运行的有两个服务,一个是SMB,另一个是NMB;SMB是Samba 的核心启动服务,主要负责建立 Linux Samba服务器与Samba客户机之间的对话, 验证用户身份并提供对文件和打印系统的访问,只有SMB服务启动,才能实现文件的共享,监听139 TCP端口;而NMB服务是负责解析用的,类似与DNS实现的功能,NMB可以把Linux系统共享的工作组名称与其IP对应起来,如果NMB服务没有启动,就只能通过IP来访问共享文件,监听137和138 UDP端口。
例如,某台Samba服务器的IP地址为192.168.1.104,那么在Windows的IE浏览器输入下面两条指令都可以访问共享文件。其实这就是Windows下查看Linux Samba服务器共享文件的方法。
\192.168.1.104\共享目录名称

图3-9 查看Windows下FTP共享目录
Samba服务器还可实现如下功能:WINS和DNS服务; 网络浏览服务; Linux

和Windows域之间的认证和授权;UNICODE字符集和域名映射;满足CIFS协议的UNIX共享等。
3.4 DNS服务器
在Internet上域名与IP地址之间是一对一(或者多对一)的,机器之间只能互相认识IP地址,域名与IP地址的转换工作称为域名解析。DNS是进行域名解析的服务器,域名解析需要由专门的域名解析服务来完成。
域名解析分为正向域名解析与反向域名解析,所谓的正向解析即根据域名查到相对应的IP地址,反向解析则反之。
3.4.1 DNS服务器安装与配置
首先下载bind软件包:
panwenjun@server:~$ sudo apt-get install bind9
bind是一个域名解析服务软件包,其客户端称为转换程序,负责产生域名信息的查询;服务器端负责回答转换程序的查询,bind的配置文件放在/etc/bind目录下,以下是bind主要文件的目录结构:
-rw-r–r-- 1 root root 3954 Apr 27 2021 bind.keys
-rw-r–r-- 1 root root 237 Apr 27 2021 db.0
-rw-r–r-- 1 root root 271 Apr 27 2021 db.127
-rw-r–r-- 1 root bind 303 Jan 7 21:34 db.192.168.1
-rw-r–r-- 1 root root 237 Apr 27 2021 db.255
-rw-r–r-- 1 root bind 308 Jan 7 21:31 db.panwenjun.com
-rw-r–r-- 1 root root 353 Apr 27 2021 db.empty
-rw-r–r-- 1 root root 270 Apr 27 2021 db.local
-rw-r–r-- 1 root root 3171 Apr 27 2021 db.root
-rw-r–r-- 1 root bind 463 Apr 27 2021 named.conf
-rw-r–r-- 1 root bind 490 Apr 27 2021 named.conf.default-zones
-rw-r–r-- 1 root bind 419 Jan 7 21:21 named.conf.local
-rw-r–r-- 1 root bind 165 Jan 7 21:09 named.conf.local.bak
-rw-r–r-- 1 root bind 890 Jan 7 20:56 named.conf.options
-rw-r–r-- 1 root bind 890 Jan 7 21:10 named.conf.options.bak
-rw-r----- 1 bind bind 77 Jan 7 20:56 rndc.key
-rw-r–r-- 1 root root 1317 Apr 27 2021 zones.rfc1918
其中的db.panwenjun.com和db.192.168.1这两个文件正向解析和反向解析文件需要手动创建,因为我们要修改/etc/bind/name.conf.local和/etc/bind/named.conf.options这两个文件所以我们先对这两个文件进行备份:
panwenjun@server: /etc/bind $ sudo cp named.conf.local named.conf.local.bak
panwenjun@server:/etc/bind$ sudo cp named.conf.options named.conf.options.bak
然后编辑修改文件name.conf.local, 建立正向解析域和反向解析域,内容如下:
注:反向解析中IP地址要反向书写,例如将panwenjun.com域解析为192.168.1要写成1.168.192,即192.168.1.xx的所有IP按照db.panwenjun.com文件规则解析。

图3-10 name.conf.local相关配置建立正向解析域和反向解析域
从/etc/bind路径下,复制现有的文件db.local命名为db.panwenjun.com作为正向解析文件的模板,接下来修改db.panwenjun.com为如下内容,其中的192.168.1.104是我的局域网IP地址。

图3-11 db.panwenjun.com相关配置
同样地,复制现有的文件db.127命名为db.192.168.1作为反向解析文件的模板并作修改,其中倒数第二行中的104代表局域网IP的最后一个字节号。

图3-12 db.192.168.1相关配置
修改主机域名解析地址,修改为以下内容:
panwenjun@server:/etc/bind$ sudo vi /etc/resolv.conf

图3-13 /etc/resolv.conf相关配置
此时我们只是对/etc/resolv.conf这个文件做了临时修改,我们要做永久修改需要在/etc/network/interfaces这个文件中添加如下内容:
dns-nameservers 192.168.1.104
dns-search dns.panwenjun.com
重启bind服务;查看bind服务运行状态,服务正常运行。

图3-14 查看bind服务运行状态
3.4.2 DNS服务器测试
1、检查开启端口。

图3-15 DNS相关端口运行状态
2、nslookup(Name Server Lookup)是一种网络管理命令,用于从 DNS 服务器查询域名、IP或其他 DNS 记录信息。
nslookup 有两种工作模式,交互模式和非交互模式。在交互模式下,用户可以向域名服务器查询各类主机、域名的信息,或者输出域名中的主机列表。在非交互模式下,针对一个主机或域名仅仅获取特定的名称或所需信息。
进入交互模式有两种方式:(1)直接输入 nslookup 命令,不加任何参数,此时 nslookup 会连接到默认的域名服务器(/etc/resolv.conf的第一个DNS地址);(2)第一个参数是连字符(-),第二个参数是域名服务器的主机名或IP,即nslookup - SERVER|IP。
其他方式则进入非交互模式,比如nslookup NAME查询域名对应的IP。

如下用nslookup命令进行解析测试。

图3-16 nslookup命令进行解析测试
3、Linux下解析域名除了使用nslookup之外,开可以使用dig命令来解析域名,dig命令可以得到更多的域名信息。dig 命令主要用来从 DNS 域名服务器查询主机地址信息。dig的全称是 (domain information groper)。它是一个用来灵活探测DNS的工具。它会打印出DNS name server的回应。如下用dig测试。

图3-17 dig命令测试
4、用named-checkzone进行区域文件有效性检查和转换。

图3-18 named-checkzone进行区域文件有效性检查和转换
5、用ping测试。

图3-19 ping命令测试
3.5 FTP服务器
在linux 环境下,有三个主要的FTP服务器:vsftpd、proftpd和wu-ftpd。因为安全方面的原因,vsftpd目前已经牢牢的占据了主导地位,因为其安全性相对较高。FTP的全称是File Transfer Protocol(文件传输协议)。就是用来传输文件的协议。FTP服务器是互联网上提供FYP服务和一定存储空间的计算机,它可以是专用服务器,也可以是个人计算机。当它提供这项服务后,用户可以连接到服务器下载文件,也允许用户把自己的文件上传到FTP服务器当中。FTP最重要的作用就是实现文件资源的共享。
3.5.1 FTP服务器安装配置与测试
安装FTP:
panwenjun@server:~$ sudo apt-get install vsftpd
检查ftp是否安装:
panwenjun@server:~$ vsftpd -version
vsftpd: version 3.0.3
更改配置文件:
panwenjun@server:~$ sudo vi /etc/vsftpd.conf
做如下更改:


```powershell
# Example config file /etc/vsftpd.conf
#
# The default compiled in settings are fairly paranoid. This sample file
# loosens things up a bit, to make the ftp daemon more usable.
# Please see vsftpd.conf.5 for all compiled in defaults.
#
# READ THIS: This example file is NOT an exhaustive list of vsftpd options.
# Please read the vsftpd.conf.5 manual page to get a full idea of vsftpd's
# capabilities.
#
#
# Run standalone? vsftpd can run either from an inetd or as a standalone
# daemon started from an initscript.
listen=NO
#
# This directive enables listening on IPv6 sockets. By default, listening
# on the IPv6 "any" address (::) will accept connections from both IPv6
# and IPv4 clients. It is not necessary to listen on *both* IPv4 and IPv6
# sockets. If you want that (perhaps because you want to listen on specific
# addresses) then you must run two copies of vsftpd with two configuration
# files.
listen_ipv6=YES
#
# Allow anonymous FTP? (Disabled by default).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Uncomment this to allow the anonymous FTP user to upload files. This only
# has an effect if the above global write enable is activated. Also, you will
# obviously need to create a directory writable by the FTP user.
#anon_upload_enable=YES
 
#
# Uncomment this if you want the anonymous FTP user to be able to create
# new directories.
#anon_mkdir_write_enable=YES
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# If enabled, vsftpd will display directory listings with the time
# in your local time zone. The default is to display GMT. The
# times returned by the MDTM FTP command are also affected by this
# option.
use_localtime=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# If you want, you can arrange for uploaded anonymous files to be owned by
# a different user. Note! Using "root" for uploaded files is not
# recommended!
#chown_uploads=YES
#chown_username=whoever
#
# You may override where the log file goes if you like. The default is shown
# below.
xferlog_file=/var/log/vsftpd.log
#
# If you want, you can have your log file in standard ftpd xferlog format.
# Note that the default log file location is /var/log/xferlog in this case.
xferlog_std_format=YES
#
# You may change the default value for timing out an idle session.
#idle_session_timeout=600
#
# You may change the default value for timing out a data connection.
#data_connection_timeout=120
#
# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
 
#nopriv_user=ftpsecure
#
# Enable this and the server will recognise asynchronous ABOR requests. Not
# recommended for security (the code is non-trivial). Not enabling it,
# however, may confuse older FTP clients.
#async_abor_enable=YES
#
# By default the server will pretend to allow ASCII mode but in fact ignore
# the request. Turn on the below options to have the server actually do ASCII
# mangling on files when in ASCII mode.
# Beware that on some FTP servers, ASCII support allows a denial of service
# attack (DoS) via the command "SIZE /big/file" in ASCII mode. vsftpd
# predicted this attack and has always been safe, reporting the size of the
# raw file.
# ASCII mangling is a horrible feature of the protocol.
#ascii_upload_enable=YES
#ascii_download_enable=YES
#
# You may fully customise the login banner string:
ftpd_banner=Welcome to blah FTP service.
#
# You may specify a file of disallowed anonymous e-mail addresses. Apparently
# useful for combatting certain DoS attacks.
#deny_email_enable=YES
# (default follows)
#banned_email_file=/etc/vsftpd.banned_emails
#
# You may restrict local users to their home directories. See the FAQ for
# the possible risks in this before using chroot_local_user or
# chroot_list_enable below.
#chroot_local_user=YES
#
# You may specify an explicit list of local users to chroot() to their home
# directory. If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot().
# (Warning! chroot'ing can be very dangerous. If using chroot, make sure that
# the user does not have write access to the top level directory within the
# chroot)
chroot_local_user=YES
chroot_list_enable=YES
 
# (default follows)
chroot_list_file=/etc/vsftpd.chroot_list
#
# You may activate the "-R" option to the builtin ls. This is disabled by
# default to avoid remote users being able to cause excessive I/O on large
# sites. However, some broken FTP clients such as "ncftp" and "mirror" assume
# the presence of the "-R" option, so there is a strong case for enabling it.
#ls_recurse_enable=YES
#
# Customization
#
# Some of vsftpd's settings don't fit the filesystem layout by
# default.
#
# This option should be the name of a directory which is empty. Also, the
# directory should not be writable by the ftp user. This directory is used
# as a secure chroot() jail at times vsftpd does not require filesystem
# access.
secure_chroot_dir=/var/run/vsftpd/empty
#
# This string is the name of the PAM service vsftpd will use.
pam_service_name=ftp
#
# This option specifies the location of the RSA certificate to use for SSL
# encrypted connections.
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
ssl_enable=NO
 
#
# Uncomment this to indicate that vsftpd use a utf8 filesystem.
utf8_filesystem=YES

创建FTP用户
panwenjun@server:~$ sudo mkdir /home/ftpdir
panwenjun@server:~$ sudo useradd ftpdir -d /home/ftpdir -m
panwenjun@server:~$ sudo passwd ftpdir
panwenjun@server:~$ sudo mkdir /home/ftpdir/ftp
panwenjun@server:~$ sudo chmod 777 -R /home/ftpdir/ftp
panwenjun@server:~$ usermod -s /sbin/nologin ftpdir
配置完成后,添加用户:
panwenjun@server:~$ sudo vim /etc/vsftpd.chroot_list
将ftpdir添加在文件中。
Ftpdir

启动或者重启ftp:
panwenjun@server:~$ sudo service vsftpd restart
查看ftp状态:
panwenjun@server:~$ service vsftpd status
打开文件资源管理器输入ftp://192.168.1.104
输入用户名和密码,使用的用户名为:ftpdir,密码为:123456。
最后就可以看到服务器上的创建的文件夹了。

图3-20 FTP根目录
3.6 Sendmail服务器
邮件服务器是由邮件用户代理(MUA)、邮件递送代理(MDA)和邮件传输代理(MTA)组成,常见的MDA通常和MUA合二为一。
1.MUA
邮件用户代理是一种客户端软件,它提供用户读取、编辑、回复及处理电子邮件等功能,一般常用的MUA程序包括Linux下的mailx、elm、evolution和mh等,以及Windows下常用的Outlook Express、Foxmail等。
2.MDA
邮件递送代理是一种服务器端运行的软件,用来把MTA所接受的邮件传递到指定用户邮箱。
3.MTA
邮件传输代理是一种服务器端运行的软件,即邮件服务器。用户通过MUA发送和接收电子邮件其实都是通过MTA完成的。在Linux中应用最广泛的MTA程序有Sendmail、Qmail、extmail和Postfix等。
Linux上配置邮件服务器就是一个发送和接收过程。我们可以使用linux自带的软件组完成邮件服务器的配置与安装,我们使用的是sendmail, Sendmail是具有较长历史并不断发展的邮件服务器软件,通过对Sendmail服务器的配置管理,可以实现基本的邮件发送功能。
3.6.1 Sendmail服务器安装
首先安装Sendmail服务器相关的所有包,命令如下:
panwenjun@server:~$ sudo apt-get install sendmail*
下载sendmail所需配置,并用ps命令检测下载是否成功。
panwenjun@server:~$ ps aux | grep sendmail

图3-21 ps命令检测
此时说明Sendmail服务器相关内容已经下载成功。
下一步修改配置,进入到/etc/mail目录:
panwenjun@server:~$ cd /etc/mail
对目录中sendmail.mc文件进行拷贝备份,然后配置该文件:
panwenjun@server:~$ sudo cp /etc/mail/sendmail.mc /etc/mail/sendmail.mc.bak
panwenjun@server:/etc/mail$ sudo vi sendmail.mc

配置内容如下所示:
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=127.0.0.1’)dnl
把其中的127.0.0.1改为0.0.0.0,这一步是为了让该邮箱可以连接到任何服务器。
最后把修改完的配置保存一下,期间我们还是要对sendmail.cf文件做备份:
panwenjun@server:/etc/mail$ sudo cp /etc/mail/sendmail.cf /etc/mail/sendmail.cf.bak
panwenjun@server:~$ sudo m4 sendmail.mc > sendmail.cf
重启一下sendmail:
panwenjun@server:~$ sudo /etc/init.d/sendmail restart
然后查看sendmail监听的端口号:
panwenjun@server:~$ sudo netstat –tnl
如果监听的端口号为0.0.0.0,则修改配置成功了。

图3-22 查看sendmail监听的端口号
此时查看邮件服务器状态:
panwenjun@server:/var/mail$ service sendmail status
证明邮件服务器搭建成功。

图3-23 查看sendmail邮件服务器运行状态
3.6.2 Sendmail服务器测试
1、 快速发送方式:echo ‘邮件正文’ | mail -s 邮件主题 panwenjun@server
2、 以文件内容作为邮件正文来发送:panwenjun@server:/var/mail$ mail -s test panwenjun@server 3、 发送带附件的邮件:panwenjun@server:/var/mail$ uuencode 邮件名称 附件显示名称 | mail -s 邮件主题 发送地址

图3-24 本机收到的邮件

这是我向本机发送的一封邮件,收到的邮件将会被保存在/var/mail路径下。
3.7 Apache服务器
WEB服务器也称为WWW服务器、HTTP服务器,其主要功能是提供网上信息浏览服务。Unix和Linux平台下常用的服务器有Apache、Nginx、Lighttpd、Tomcat、IBM WebSphere等,其中应用最广泛的是Apache。而Window NT/2000/2003平台下最常用的服务器是微软公司的IIS。
下面我们要搭建的web服务器是apache服务器,Apache是世界上应用最多的WEB服务器,优势主要在于源代码开放、有一支开放的开发队伍、支持跨平台应用以及其可移植性等。Apache的模块支持非常丰富,虽在速度和性能上不及其他轻量级WEB服务器,是属于重量级产品,所消耗的内存也比其他WEB服务器要高。
3.7.1 Apache服务器安装与测试
一、下载安装
利用Ubuntu自带的apt-get安装;
panwenjun@server:~$ sudo apt-get install apache2
安装后查看服务的启动状态;
panwenjun@server:~$ sudo service apache2 status

图3-25 查看Apache服务的运行状态

查看版本信息:
panwenjun@server:~$ apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2020-08-12T21:35:50
二、相关配置
1、/etc/apache2/apache2.conf:apache2.conf该配置文件下包含了apache服务器的相关配置。
2、/var/www/html:该目录用来对外开放你的本地目录,初始状态只有一个index.html文件,可以通过软连接的方式将要开放的目录放进来,例如:
panwenjun@server:/var/www/html$ sudo ln -s /home/panwenjun/apache.html
我们将home目录下的一个apache.html文件放到了/var/www/html目录下。
三、浏览器查看
Apache默认端口号为:80端口,只需在浏览器中输入:
192.168.1.104:80/apache.html
即可进入apache.html页面
如果没有输入目录名,将会自动进入index.html界面。

图3-26浏览器查看.html文件
此时证明apache搭建成功。

第4章 基于Apache服务器搭建LAMP环境

LAMP是一个多C/S架构的平台,最初级为web客户端基于TCP/IP通过http协议发起传送,这个请求可能是动态的,也可能是静态的。所以web服务器通过发起请求的后缀来判断,如果是静态的资源就由web服务器自行处理,然后将资源发给客户端。如果是动态这时web服务器会通过CGI(Common Gateway interface)协议发起给php。这里但是如果php是以模块形式与Web服务器联系。那么他们是通过内部共享内存的方式。如果是php单独的放置与一台服务器,那么他们是通过sockets套接字监听的方式通信(这又是一个C/S架构)。这时php会相应的执行一段程序,如果在执行程序时,需要用到数据。那么php就会通过mysql协议发送给mysql服务器(也可以看作是一个C/S架构)。由mysql服务器处理,将数据供给php程序
4.1 MariaDB数据库环境搭建
MariaDB是一个开源数据库且100%与MySQL兼容,目标是替代MySQL数据库。
MariaDB的背景 :
2008年,MySQL被后来被Oracle在2010年收购的Sun Microsystems收购了。最初被Sun公司的收购由于符合项目的需要而受到MySQL社区的欢呼,但是这种情绪并没有持续太久,接下来被Oracle的收购,不幸期望远远低于预期。许多MySql的开发者离开了Sun和Oracle公司开始新的项目。在他们中间就有MySQL的创建者以及项目长期技术带头人之一的Michael ‘Monty’ Widenius。Monty和他的团队创建了MySQL的一个fork版本并且命名它为MariaDB。
安装MariaDB:
panwenjun@server:~$ sudo apt-get install mariadb-server
从命令行连接到MariaDB:
panwenjun@server:~$ sudo mysql -u root –p

图4-1 命令行连接到MariaDB
关闭mysql数据库服务:
panwenjun@server:~$ sudo /etc/init.d/mysql stop
启动mysql数据库服务:
panwenjun@server:~$ sudo /etc/init.d/mysql start
查看数据库服务运行状态:
panwenjun@server:~$ sudo /etc/init.d/mysql status
4.2 PHP脚本语言安装
在终端中执行如下的命令来安装 PHP 7:
panwenjun@server:~$ sudo apt install php7.0-mysql php7.0-curl php7.0-json php7.0-cgi php7.0 libapache2-mod-php7.0
查看版本:
panwenjun@server:~$ php –version
测试PHP脚本语言是否安装成功,在/var/www/html目录下创建php脚本文件:
panwenjun@server:/var/www/html$ sudo vi info.php

你可能感兴趣的:(linux,服务器,运维)