Linux Red Hat 6.4服务器搭建与配置

摘要

随着企业安全和信息处理需求的提高,对于电子化的信息系统的依赖的程度也随之越来越高,现在的企业不能局限与将网络建设搭建在传统的网络构架上,否则会产生更多安全问题,为了更加安全应该对人们进行网络安全知识的普及,足够的安全制度,选用更加安全的网络安全设施,减小网络信息安全的风险。

本文论述适用于中小型企业、基于Linux操作系统的服务器搭建,进行服务器部署和配置,例如搭建WEB服务器(Apache)、Samba服务器、DHCP服务器、DNS服务器、FTP服务器、SSH服务器以及数据库服务器(MySQL)等以及防火墙,提高企业的网络安全。

在企业中,需要所有服务器共同配合才能达到企业需求,完成整体的功能,建造一个合理完善的工作环境。

关键字:Linux操作系统、WEB服务器(Apache)、Samba服务器、DHCP服务器、DNS服务器、FTP服务器、SSH服务器、数据库服务器(MySQL)

引言

随着科技的发展,企业中对于系统功能的要求也更高,市面Windows、Unix、Linux系统,有着各自的优点和缺点,针对不同的需求,应用不同操作系统。

Windows系统,图形界面化可以使用户操作更加方便,用户更好理解,更容易上手,但是针对于企业,要求的是功能多样化,系统安全系数高的,所以大部分企业都会选择Linux操作系统为服务器,该系统相比而言更加稳定、安全、可靠,通过配置DHCP服务器、DNS服务器、WEB服务器、FTP服务器和Samba服务器等等,构建一个平稳、安全的网络环境,为用户提供一个良好的数据获取的环境。

  1. Linux操作系统的介绍

  1. Linux简介

Linux服务器是我们企业常用的服务器类型,Linux系统是一种免费使用和自由传播的类Unix操作系统,是一款基于多用户、多任务、支持多线程和多CPU的操作系统,因为Linux作为免费的开源系统,用户可以根据自己的知识和灵感对其进行操作和改变,这也是Linux系统更加安全和用户应用更多的原因。

Linux系统同时也会兼容window是系统的应用,而且具有字符界面和图形化界面,可以根据用户的不同需求进行选择。它继承了Unix的特性支持所有因特网特性,包括TCP/IPV4、TCP/IPV6和链路层拓扑程序等,其中包含一整套全面的工具,可以实现一站式功能开发环境。

Linux服务器为了业务处理而设计,在网络上和计算机系统中有着广泛的应用,对于搭建服务器而言要比window是系统更加稳定,比如windows系统在操作失误或者系统故障会出现蓝屏的现状,这种情况可能会导致整个公司业务停止,Linux系统就很好的避免这些问题,极大的降低服务器发生崩溃的可能性,实现企业业务的高效运转。

图1.1 Linux的内核三大家族

  1. Linux的发展历史

Linux系统,全称为GNU/Linux,是一款免费使用和自由传播的类UNIX操作系统,内核是由林纳斯·本纳第克特·托瓦兹在1991年10月5日首次发布,根据Minix和Unix系统的思想启发,开发了一款多用户、多任务、支持多线程和多CPU的操作系统。兼容Unix工具软件、应用程序和网络协议,支持32位和64位硬件。

Linux操作系统不仅性能稳定,而且开源,用户可以自由改进。其中防火墙性能能力强,配置简洁,同时也保证系统的安全性,很多企业Linux不仅可以被网络运维人员当作服务器使用,也可以作为防火墙。

Linux操作系统作为开放源码的系统,没有版权,用户可以自由裁剪,版本众多,每一种版本都集成相应的开发环境,可以根据用户需求,选择适合的版本,而且灵活度高,功能强大,成本低,经过适当配置还可以实现路由器的功能。

图1.2 Linux操作系统的各个版本

  1. Linux系统的主要特征

Linux中每个文件都具有相应的用途,文件中包括命令、硬件和软件设备、操作系统和进程

图1.3 根目录下的文件及其作用

Linux作为一款免费的操作系统,用户可以通过官方网站或者其他途径获得,可以任意修改源代码,正因为这一点,来自全世界的程序员参与Linux的修改,这才使Linux系统变得更加符合大众的需求,才能不断扩大。

这也使得Linux完全兼容POSIX1.0的标准,可以运行windows的常见的程序,也为很多用户从Windows转到Linux,消除了顾虑。

Linux可以运行多种硬件平台,比如:x86、680x0、SPARC、Alpha等处理器平台,此外还支持多处理器技术,多处理器同时工作,是系统性能大大提高。

  1. 开发工具

  1. 容器

容器部署简单,方便构建开发环境。,如果针对特定平台的开发,可以将开发流所需要的各种工具都搭建到容器映像中

  1. 文本编辑器

文本编辑器对于开发和配置相关服务器有着很大作用,除了通常的编辑功能之外,vi还支持一些高级编辑特征,利用这些可以完成非常复杂的编辑任务,实现编辑的智能化和自动化。另一方面,vim可以和工具软件协同工作,从而实现几乎所有的文件加工处理任务。

  1. 集成开发环境

集成开发环境是一整套全面的工具,可以实现一站式功能的开发环境。

  1. 嵌入式Linux

嵌入式Linux是嵌入式操作系统的新成员,其特点远吗公开并且遵循Gpl协议目前正在开发的嵌入式系统中,有近50%的项目选择Linux作为嵌入式操作系统。Linux系统进行裁剪修改,使嵌入式计算机系统可以运行的操作系统,继承了Internet上无限的开放源代码,又具有嵌入式操作系统的特性。性能优异,软件移植容易,代码开放,有着许多软件支持,应用产品开发周期短,实时性能稳定安全性好。

  1. Linux服务器

Linux服务器主要针对业务处理应用的,在网络和计算机系统中应用广泛,可以提供数据库管理和网络服务等,Linux系统适用范围广,用户体验反响较好,Linux系统的处理能力也非常强悍,具备较高的稳定特征,因此Linux系统不需要经常重启,而且Linux服务器出现故障的概率较低,所以很多企业使用Linux系统,从而降低服务器发生崩溃的现象,实现企业业务的高效运转。

  1. 文件系统的安全

加固系统中的重要文件,如果黑客想要进行提权,获取系统的最高权限,在这种情况下,一个加固的文件系统将会是保护系统安全的最后一道防线,管理员可以通过chattr命令锁定系统中的重要文件或目录。

  1. Red Hat Enterprise Linux 6的安装

在官方网站下载好相应的系统文件,这里选择ISO镜像文件安装,安装版本为rhel-server-6.4-x86_64.iso。

图2.1 选择第一个安装或升级现有系统

之后选择系统语言,配置时区配置相应的磁盘分区,最后安装完成。

  1. Web服务器-Apache服务器

  1. Apache服务器简介

Apache音译阿帕奇,至目前世界上应用排行第一的web服务器软件,它几乎适配所有使用的计算机平台,由于跨平台和安全性被广泛使用,是最流行的web服务器端软件之一。

最开始本来是只用于小型或试验Internet网络,后来慢慢的应用到Unix系统中,尤其对Linux的支持非常完美,Apache在市场上占有率为60%左右,世界上很多著名网站都是Apache的产物,他的成功之处也是主要于源代码的开放、有一支开放的开发队伍、支持跨平台的应用,可以运行在几乎所有的Unix、Windows、Linux系统中,以及他的可移植性等方面。

  1. Apache的安装及基本配置命令

  1. 安装Apache服务器

首先要确定系统中是否安装Apache及其相关软件,输入命令:

#rpm -qa |grep httpd //如果显示没有相关软件,我们需要进行安装,这里选用rpm安装

#mkdir /mnt/media //首先输入命令进行创建挂载点

#mount/dev/cdrom /mnt/media //挂载光盘,挂载点依旧为/mnt/media

#vim /etc/fdtab //进入文本编辑模式,更改相应的配置

/dev/src0/mnt/media iso9660 defaults 0 0 //更改为自动挂载

#mount-a //将/etc/fstab的所有内容在重新刷新一下

#cd/mnt/media/Packages/ //进入软件包目录

#rpm -ivh httpd-*.i386.rpm //安装所需要的rpm包

#cd ;eject //弹出光盘

#service httpdstart //启动Apache服务器或者#service httpd stop

//关闭Apache服务器

#service httpdstatus //查看服务器运行状态

  1. 设置Apache服务为自启动

方法一:在终端中输入“ntsysv”,回车之后会弹出一个窗口,利用键盘的上下箭头是进行上下移动,找到httpd之后,空格代表确认选择,然后确认,将Apache服务器开启自启动成功。

方法二:用“chkconfig”命令来检查和设置系统的各项服务,以及在每个Run level中执行系统服务。

#chkconfig–level 35 httpd on

#chkconfig–list | grep httpd

  1. 确认Apache是否启动成功

当我们已经确认Apache服务器确认启动成功之后,我们可以在浏览器中输入http://ip或者http://127.0.0.1,如果成功开启Apache,会出现默认的Apache首页,则说明服务器工作正常。

  1. Apache服务器的配置

对于Apache的服务器配置,统一在httpd.conf中,因此输入命令:

# vim/etc/httpd/conf/httpd.conf //进入Apache服务器配置文本编辑中

其中参数为:

ServerRoot"/etc/httpd" //用于指定Apache运行的根目录

Listen 80 //监听80端口

MaxClients 256 //指定同时能访问服务器的客户机数量为256

DocumentRoot"/var/www/html" //网页文件存放的目录

DirectoryIndexindex.html index.html.var //默认网站主页

Includeconf.d/*.conf //读取/etc/httpd/conf/conf.d/目录中所有以.conf结尾的文件

ServerNamewww.jiecheng.com //域名

ServerAdmin //设置管理员的邮箱

Includeconf.d/*.conf //包含的子配置文件

User apache //用户是Apache

Group apache //用户组是Apache

Directory //认证授权和访问控制

##################################

<IfModuleprefork.c> //当httpd服务使用的profork模型的时候:

StartServers 10 //默认启动10个作业进程

MinSpareServers 10 //空闲进程数不低于10个

MaxSpareServers 20 //空闲进程数最大20个

ServerLimit 256 //最多可以启动256个进程

MaxClients 256 //最大并发客户端数为256个

MaxRequestsPerChild 4000 //每个进程可以处理4000个请求,超过此数目进程被杀死并重新创建

</IfModule>

注:在修改之前将配置文件进行备份

# cp/etc/httpd/conf/httpd.conf httpd.bak //因为更改之后保存完成之后,就不会再有最原始的配置文件了,将文件备份,以便以后需求。

vim/etc/httpd/conf/httpd.conf //隐藏Apache的版本号

ServerTokensProd //隐藏Apache版本号

ServerSignatureOFF //隐藏操作系统版本信息

  1. 域名解析服务器——DNS服务器

  1. DNS服务器简介

DNS服务器是注册加入DNS的任何计算机。它具有域名和IP地址的索引,并且在请求时,可以告诉您与域名的关联的IP地址。

DNS是域名系统,在Internet中是一项核心服务,可以将域名和IP地址相互映射的一个分布式数据库,从而能够使用户访问互联网,不用去记IP地址,直接记住域名,机器会将域名转换为IP地址,做到成功访问。

图4.1 递归查询和迭代查询的流程图

DNS服务端口号为53udp,是用来做DNS解析的,正常域名提供商,提供的DNS服务器都是udp53端口的,如果端口未开放,会导致域名解析不正常。

DNS服务器可以加快网页打开速度,由于DNS服务器中缓存了非常多的域名记录,当需要浏览这些域名时,不需要重新查询域名库,而是将缓存中的记录直接打开,从而能够加快网站的打开速度。

  1. DNS服务器的安装和基本配置

#rpm -qa|grepbind //查看安装DNS软件包,需要bind,bind-libs,bind-utils。若缺少进行安装,因为需要依赖软件,所以选择yum安装的方式。 接下来进行命令操作,安装DNS软件包:

#rpm -qa|grepbind //查询系统中是否安装bind及其相关软件

若没有安装,接下来要创建挂载点。

#mkdir/mnt/cdrom //创建挂载点

#mount/dev/cdrom mnt/cdrom //进行挂载光盘,挂载点为mnt/cdrom

#df //检查文件系统的磁盘空间的占用情况

#cd/etc/yum.repos.d //进入yum软件仓库的目录

#cprhel-source.repo a.repo //将yum软件仓库中的信息复制到新创建的a.repo文件中,留存原yum软件仓库作为备份

#vima.repo //进入新创建的软件仓库,会进入文本编辑模式

[a] //软件仓库名

name=jiechengqiye //设置表示名称,也可以描述仓库的基本信息

baseurl=file:///mnt/cdrom //设置仓库的地址,根据情况也可以选择本地源或者网络源

enabled=1 //是否启用,1表示启用,0表示不启用

gpgcheck=0 //是否进行检验,1表示进行效验,0表示不进行效验,选择效验,会在安装中进行检验,但是安装时间会较长。

保存并退出,之后进行安装。

#yum install bind //安装bind软件

#service namedstart //开启服务

#vim/etc/named.conf //进入文本编辑模式

options {

listen-onport 53 {any; };

//监听端口为53,后面的any,表示有多块网卡需要全部监听,这里原地址为127.0.0.1,这是回环网卡,只能本机访问,如果有特定地址进行监听,可以更改为相应的IP地址。

listen-on-v6port 53 { ::1; }; //表示IPv6环境下进行监听端口和监听地址。

directory "/var/named"; //用来设置DNS服务器数据目录的位置,一般不需要更改,默认就可以。

dump-file "/var/named/data/cache_dump.db"; //默认的缓存备份文件位置,正常情况下不需要更改,选择默认。

statistics-file"/var/named/data/named_stats.txt"; //状态的保存位置,不需要更改,默认就可以。

memstatistics-file"/var/named/data/named_mem_stats.txt"; //内存状态的保存位置,不需要更改

allow-query { any; }; //重要参数,表示DNS服务允许哪些客户端进行访问,localhost意思为仅仅允许本机进行访问。如果允许某个IP地址进行访问,写入想要允许访问的IP地址;如果允许一个网段访问,就写入一个网段;如果全部允许,写入“any”即可。

recursion yes //重要参数,是否开启递归查询,如果删除这一行参数,则使用的是迭代查询。

dnssec-enableyes //开启加密,为了保证客户端发送的DNS请求能正确的到达dns服务器上,防止被劫持的情况出现,于是有了这个参数。不需要更改,默认即可。

dnssec-validationyes //在递归查询服务器上开启DNSSEC验证,不需要更改,默认即可。

bindkeys-file“/etc/named.root.ley” //named提供的受信任密钥的路径,默认即可,不需要更改。

managed-keys-directory“/var/named/dynamic” //指定目录中的文件存储,跟踪管理DNSSEC密钥。

pid-file “/run/named/named.pid” //pid文件路径,不需要更改。

session-keyfile“/run/named/session.key” //会话密钥路径,由named生成,默认即可。

我们要做到DNS服务器配置正向解析和反向解析,并可以使各个客户端进行访问服务器

  1. 配置相关的正向解析文件和逆向解析文件

zone"jiecheng.com" IN {

type master;

file "jiecheng";

};

zone"27.168.192.in-addr.arpa" IN {

type master;

file "192.168.27.zone";

};

#cd/var/named //进入named目录文件

#cp -anamed.localhost jiecheng //将named.localhost中的文件复制到新创建的jiecheng文件中

#cp -anamed.localhost 192.168.27.zone //同理将文件复制到192.168.27.zone中

#vim jiecheng //进入jiecheng文件的文本编辑模式

输入www IN A192.168.27.10创建正向解析新建主机记录

#vim192.168.27.zone进入192.168.27.zone文件的文本编辑模式

输入10 PTRwww.jiecheng.com.,进行配置反向解析,注意:配置反向解析时最后面有一个点,否则会解析不成功。

  1. 检验解析是否成功

#servicenamed restart //重启服务器

#nslookup //用nslookup进行检验是否能解析成功

[root@localhostnamed]# nslookup

>192.168.27.10

Server: 192.168.27.10

Address: 192.168.27.10#53

10.27.168.192.in-addr.arpa name = www.jiecheng.com.

//反向解析可以正常解析

>www.jiecheng.com

Server: 192.168.27.10

Address: 192.168.27.10#53

Name: www.jiecheng.com

Address:192.168.27.10

//正向解析同样也可以正常解析到地址

#vim/etc/named.conf //隐藏版本号,进入文本编辑模式,添加如下代码

options {

directory"/var/named";

version"[no about your business]";

};

  1. Samba服务器

  1. Samba服务器简介

在早起的网络世界,档案数据传输大多都是使用FTP来进行传输,但是这其中有一个缺点,就是无法直接修改主机上面的数据,没办公进行共享文件以及修改,无法达到实时更新,长时间的话会出现文件混乱,我发分清那个是最新的文件数据。

图5.1 常见的文件服务器比较

Samba服务器是实现在Linux和UNIX的SMB协议的一款免费的软件,有服务端及客户端程序构成。Samba可以让Linux加入到windows的网上邻居支持,既可以在Linux和Windows之间文件共享,也可以在Linux和Linux之间进行资源共享,而且还可以让Linux上面的打印机成为打印机服务器Printer Server。

  1. Samba的主要功能

  1. 共享文件与打印机服务

  1. 可以提供用户登录samba主机时的身份认证,用来提供不同身份用户的个别数据

  1. 可以进行windows网络上的主机名解析(NetBIOS Name)

  1. 可以进行设备的共享(ZIP、CD-ROM)

  1. Samba主要进程

  1. smbd进程:控制发布共享目录与权限、负责文件传输,基于TCP(139 445)

  1. nmbd进程:用于名称解析netbios UDP 137138 ; 基于NETBIOS协议获得计算机名称——>解析为相应IP地址,实现信息通讯

  1. Samba服务的相关软件包说明

  1. samba:该软件主要提供了smb服务器所需的各项服务程序(smbd及nmbd)、相关的文件。

  1. samba-client:这个软件提供了当Linux作为samba client时,所需要的工具命令。例如挂载samba文件格式的mount.cifs。

  1. samba-common:这个软件提供的则是服务器与客户端都会使用到的数据包括samba的主要配置文件(smb.conf)等。

图5.4.3samba提供不同变量的含义

  1. Samba安装与配置

与上述方法一样进行安装samba服务器软件

#yum installsamba //提供samba的两个服务smbd,nmbd服务,以及相关文件

#yum install samba-client //samba客户端工具,提供了当Linux作为samba client时,所需要的工具命令。

#yum installsamba-common //提供的则是服务器与客户端都会使用到的数据,包括samba的主要配置文件(smb.conf)等。

#service smb start //开启smb服务器

#vim/etc/samba/smb.conf //进入samba服务器文本配置窗口

workgroup =MYGROUP //定义samba服务器所在的工作组

server string= Samba Server Version %v

security =user //认证模式:share、user、server、domain、ads

samba服务器有share、user、server、domain和ads 五种安全模式,用来适应不同的企业服务器需求:

  1. share安全级别模式

客户端登录samba服务器,不需要输入用户名和密码就可以浏览samba服务器的资源,适用于公共的共享资源,安全性差,需要配合其他权限设置,保证samba服务器的安全性。

  1. user安全级别模式

客户端登录samba服务器,需要提交合法用户和密码,经过服务器验证才可以访问共享资源,服务器默认为此级别模式。

  1. server安全级别模式

客户端需要将用户名和密码,提交到指定的一台samba服务器上进行验证,如果验证出现错误,客户端会用user级别访问。

  1. domain安全级别模式

如果samba服务器加入windows域环境中,验证工作服将由windows域控制器负责,domain级别的samba服务器只是成为域的成员客户端,并不具备服务器的特性,samba早期的版本就是使用此级别登录windows域滴。

  1. ads安全级别模式

当samba服务器使用ads安全级别加入到windows域环境中,其就具备了domain安全级别模式中所有的功能并可以具备域控制器的功能。

log file =/var/log/samba/log.%m //日志文件

max log size= 50 //最大的日式大小设置

valid users =jcyq //输入要新添加的用户名,如果有多个,可以用空格分隔开

passdbbackend = tdbsam //密码格式

load printers= yes //加载打印机

cups options= raw //打印机选项

[public]

comment = jiechengqiye

public = yes //共享允许guest账号访问

path = /data/jiecheng //共享的目录路径

read only = yes //仅读

退出编辑模式,输入:wq保存并退出。

#service smb restart //重启服务

#cd / //进入根目录

#mkdir/data/jiecheng //创建共享文件

#chomd 755data //给予data文件相关权限,权限如果后期不够,可以再进行增加权限

#useraddjcqy //创建用户

#smbpassword-a jcqy //把此用户添加到samba服务器内

New SMB password: //设置此用户的密码,密码是没有回显的,输入一次,然后再确认一次密码,就设置成功了

如果想要其他用户可以访问服务器共享的文件,也可以进行静态IP地址的配置,将客户端和服务器配置为同一网段内,服务器和客户端可以ping通说明就可以进行连接,前提是有服务器端的用户名和密码,登陆成功后就可以进行权限内操作共享文件。

  1. FTP服务器

  1. FTP服务器简介

FTP(Flies TransferProtocol,文件传输协议)是典型的C/S的构架的应用层协议,它使用TCP传输,客户在和服务器建立连接前要经过一个“三次握手”的过程,需要由服务端软件和客户端软件两个部分共同实现文件传输的功能。FTP客户端和服务器之间的连接是可靠的,面向连接的,为数据的传输提供了可靠的保证。

允许用户以文件操作的方式,比如文件的增、删、改、查、传送等,进行与另一台主机相互通信,可以用FTP程序访问远程资源,实现用户往返传输文件、目录管理以及访问电子邮件等等,即使双方计算机可能配有不同的操作系统和文件储存格式。

  1. FTP的工作原理

FTP采用Internet标准文件传输协议FTP的用户界面,向用户提供一组用来管理计算机之间文件传输的应用程序。

FTP是TCP/IP的一种具有应用,工作在OSI模型的第七层,TCP模型的第四层上,即应用层。Internet用户高效的从网上的FTP服务器下载大量信息量的数据文件,将远程主机上的文件拷贝到自己的计算机上。以达到资源共享和传递信息的目的。由于FTP的使用Internet上出现大量为用户提供的下载服。Internet成为了一个巨型的软件仓库。而且在文件传输中还支持断点续传的功能,可以大幅度的减少CPU和网络带宽的开销。

开发任何基于 FTP 的客户端软件都必须遵循 FTP 的工作原理,FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序一般只有一条 TCP 连接。

图6.2 FTP服务器工作示意图

  1. FTP支持的模式

FTP客户端发起会话时,与服务器端建立连接。再会话期间要建立控制信息进程与数据进程两个连接。控制连接不能完成传输数据的任务,只能用来传送FTP执行的内部命令以及命令的响应等控制信息;数据连接是服务器与客户端之间传输文件的连接,是全双工的,允许同时进行双向数据传输。当数据传输完成后,数据连接会撤销,再回到FTP会话状态,直到控制连接被撤销,并退出会话为止。

FTP支持两种模式:Standard(PORT方式,主动方式),Passive(PASV方式,被动方式)

  1. 主动模式

图6.3.1 主动模式示意图

FTP客户端首先和服务器的TCP 21端口建立连接,用来发送命令,客户端需要接收数据的时候在这个通道上发送PORT命令。PORT命令包含了客户端用什么端口接收数据。在传送数据的时候,服务器端通过自己的TCP 20端口连接至客户端的指定端口发送数据。FTP server必须和客户端建立一个新的连接用来传送数据。

  1. 被动模式

图6.3.2被动模式示意图

建立控制通道和Standard模式类似,但建立连接后发送Pasv命令。服务器收到Pasv命令后,打开一个临时端口(端口号大于1023小于65535)并且通知客户端在这个端口上传送数据的请求,客户端连接FTP服务器此端口,然后FTP服务器将通过这个端口传送数据。

很多防火墙在设置的时候都是不允许接受外部发起的连接的,所以许多位于防火墙后或内网的FTP服务器不支持PASV模式,因为客户端无法穿过防火墙打开FTP服务器的高端端口;而许多内网的客户端不能用PORT模式登陆FTP服务器,因为从服务器的TCP 20无法和内部网络的客户端建立一个新的连接,造成无法工作。

  1. FTP服务器安装与配置

利用yum安装FTP服务器,安装完成之后,开启服务器,进行配置

#service vsftpd start //开启ftp服务器

cd /etc/vsftpd/ //进入服务器配置文件路径

vim vsftpd.conf //进入文本编辑模式

anonymous_enable=YES //是否允许进行匿名访问

local_enable=YES //是否允许本地用户进行访问

write_enable=YES //当允许本地用户访问时,是否允许用户有写入的权限

local_umask=022 // 当本地用户写入文件,这些文件的默认权限

dirmessage_enable=YES //文件的显示消息

xferlog_enable=YES //是否显示日志

connect_from_port_20=YES //是否允许在20端口进行连接请求

xferlog_std_format=YES //是否用标准格式进行存储日志

pam_service_name=vsftpd //设置PAM认证服务的配置文件名,该文件位于/etc/pam.d目录下

tcp_wrappers=YES //该服务器是否选择使用tcp_wrappers作为主机访问方式

退出文本编辑模式,保存并退出

#service vsftpd restart //重启服务器

如果想要系统启动时就提供FTP服务,需要修改其在系统运行的级别状态

#chkconfig –list vsftpd //查看在不同系统中运行的级别和vsftpd运行的状态

#chkconfig –level 35 vsftpd on //设置vsftpd在3、5系统级别下自动运行

然后再其他系统进行验证,比如windows系统,进入cmd命令框,输入ftp192.168.27.10,进行连接,输入用户密码,连接成功,可以在其中创建文件以及其他操作。

图6.4 验证是否成功

简单的FTP配置完成,在服务器配置中,需要注意的是,在FTP允许匿名访问时,不能给予匿名用户写入的权限,否则会出现被匿名用户篡改文件的情况。

  1. 动态主机分配服务器—DHCP服务器

  1. DHCP服务器的简介

动态主机配置协议是在一个局域网中有服务器控制一段IP地址范围,当客户机登录到服务器时可以自动获取服务器分配的IP地址和子网掩码,作为DHCP服务器的计算机需要安装TCP/IP协议,并设为静态IP地址、子网掩码、默认网关等内容。

  1. DHCP服务器的功能

  1. 两台连接到互联网上的电脑相互之间通信,必须有各自的IP地址,由于IP地址资源有限,宽带接入运营商不能做到给每个报装宽带的用户都能分配一个固定的IP地址,所以要采用DHCP方式对上网的用户进行临时的地址分配。

  1. 在一个使用TCP/IP协议的网络中,每一台计算机都必须至少有一个IP地址,才能与其他计算机连接通信。为了便于统一规划和管理网络中的IP地址,DHCP应运而生了。这种网络服务有利于对校园网络中的客户机IP地址进行有效管理,而不需要一个一个手动指定IP地址。

  1. DHCP也可用于直接为服务器和桌面计算机分配地址,并且通过一个PPP代理,也可为拨号及宽带主机,以及住宅NAT网关和路由器分配地址。DHCP一般不适用于使用在无边际路由器和DNS服务器上。

  1. DHCP的优点与缺点

  1. 减少管理员的工作量

  1. 避免了IP冲突(同一个网段可用的IP,0和255不能用,可用1-254)

  1. 提高了IP地址的利用率

  1. 方便客户端的配置

  1. 避免普通用户输入错误的可能(家里路由器上网,只需要自动获取IP即可联网)

缺点:如果在一个局域网内,有两个DHCP服务器,客户端获取时,谁优先回复,就从谁那里优先获取IP,无法控制,可能会影响真实网络连接

  1. DHCP安装与配置

#rpm -qa|grep dhcp //检查是否安装了DHCP

#rpm -qa|grep dhclient //检查是否安装了DHCP客户端软件

未安装的话利用yum进行安装,安装完成之后,进入配置

#vim/etc/sysconfig/network-scripts/ifcfg-eth0 //配置静态IP地址,进入文本编辑模式

DEVICE=eth0

ONBOOT=no //系统激活时是否激活网卡

BOOTPROTO=none

IPADDR=192.168.27.10 //设置静态IP地址

PREFIX=24 //子网掩码的位数长度为24位

GATEWAY=192.16.27.1 //设置网关

# cp/usr/share/doc/dhcp-4.1.1/dhcpd.conf.sample /etc/dhcp/dhcpd.conf //复制模板文件到dhcp.conf中

#vim /etc/dhcp/dhcpd.conf //进入DHCP服务器的文本配置文件

option domain-name "jiecheng.com"; //定义DNS域名

option domain-name-servers 192.168.27.10;

//设置DNS服务器的IP地址

default-lease-time 32600; //设置客户机默认租期

max-lease-time 43200; //设置客户机的最大租期

ddns-update-style none; //设置DNS更新类型为互动更新

log-facility local7; //DHCP服务器的日志信息的日志类别

subnet 192.168.27.0 netmask 255.255.255.0{ //设定的网段

range 192.168.27.60192.168.27.180; //设置网段IP地址的范围

optionrouters 192.168.27.1; //该网段的默认网关

option subnet-mask 255.255.255.0; //该网段的子网掩码

}

host jiecheng{

hardware ethernet 00:0C:29:8F:1B:83; //请求获取IP地址客户端的mac地址

fixed-address 192.168.27.20; //给予固定的IP地址

}

#service dhcpd restart //重启服务器

# service NetworkManager start //在客户端中输入命令,进行重新连接网络

#ifconfig //查看IP地址

图7.4 获取IP地址成功

  1. MySQL服务器

  1. MySQL服务器的简介

MySQL是一个关系型数据库管理系统,由瑞典MySQLAB公司开发,属于Oracle旗下产品在关系型数据库管理系统中MySQL时最流行之一,在WEB应用方面,MySQL是最好的RDBMS,应用软件之一。

MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表格中,而不是将所有数据都保存在一个大仓库中,这样就增加了速度并提高灵活性。

MySQL使用的SQL语言是用于访问数据库的最常用的标准化语言,因为体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,所以一般中小型和大型企业的开发都选择MySQL作为网站数据库。

数据库配合相应的工具和系统才能体现出数据库的强大之处,以Linux作为操作系统,Apache或者Nginx作为Web服务器,MySQL作为数据库,PHP/Perl/Python作为服务器端脚本解释器。由于四个软件都是免费或者开放源码软件,因此使用这个方式不用花一分钱就可建立起一个稳定、免费的网站系统,被业界成为“LAMP”或“LNMP”组合。

  1. 数据库的分类

关系型数据库:表文件之间联系紧密,可以完整描述一段数据;涉及数据过多,查询速度不理想。

非关系型数据库:表文件独立,无法描述一段完整数据;每次查询数据较少,速度非常快。

  1. MySQL默认数据库里面有四张表

  1. user表(用户层权限)

因为字段太多,只截取了一部分。首先登陆的时候验证Host、User、Password也就是IP、用户名、密码是否匹配,匹配登陆成功将会为登陆者分配权限,分配权限的顺序也是按照上面四张表的排列顺序进行的,举个例子,如果user表的Select_priv为Y说明他拥有所有表的查找权限,如果为N就需要到下一级DB表中进行权限分配了。其中的%是通配符,代表任意的意思。

  1. DB表(数据库层权限)

来到DB表之后会匹配Host、User然后会根据DB字段对应的表进行权限分配,举个例子Select_priv、Insert_priv、Update_priv、Delete_priv、Create_priv、Drop_priv分别代表着查询,增加,更新,删除,创建,销毁)。其中Y代表这拥有此项权限,N则代表没有此项权限。

  1. tables_priv表(表层权限)

与上面一样,这是通过Host、DB、User、Table来进行定位到表层的一个权限分配。不过它只有Table_priv和Column_priv两个字段来记录权限。

  1. columns_priv表(字段层权限)

顾名思义,字段层权限,通过Host、DB、User、Table、Column来进行定位到字段层的一个权限分配,只有Column_priv来记录权限。

  1. MySQL安装与配置

在安装是选择yum安装方式

#mkdir /mnt/cdrom //创建目录

#mount /dev/cdrom /mnt/cdrom //进行挂载

#cd /etc/yum.repos.d/ //进入yum仓库的目录

#vim a.repo //进入文本编辑模式

[a]

name=jiecheng

baseurl=file:///mnt/cdrom/Server //yum源地址

enabled=1 //启用状态

gpgcheck=1 //软件包签名检查,0代表否,1代表是

gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release

//数字签名的公钥位置

退出编辑模式,输入:wq,保存并退出

#ll /mnt/cdrom/Server/ //查看挂载是否正确

#yum list | grep mysql //查看MySQL相关的软件包

#yum install -y mysql-server //安装MySQL server

#chkconfig //检查MySQL服务

mysqld 0:关闭 1:关闭 2:关闭 3:关闭 4:关闭 5:关闭 6:关闭

//显示全部关闭

#chkconfig mysqld on //配置MySQL开机运行

#chkconfig

mysqld 0:关闭1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭

//启用成功

#service mysqld start //开启MySQL服务器

# netstat -an | grep :3306 //查看3306端口是否处于监听状态

tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN

# iptables -L //查看防火墙

# iptables -t filter -I INPUT -p tcp --dport3306 -j ACCEPT

//防火墙放行3306端口

# /etc/rc.d/init.d/iptables save //保存对防火墙的设置,否则重新启动后配置丢失

这样是为了方便在后续通过远程连接3306端口是,防止被防火墙阻拦,导致连接失败。

# mysql -uroot -p //登录MySQL,最初登录没有密码,可以直接进入

mysql> show global variables like 'port'; //查看端口

图8.4 .1显示端口为3306

#vim /etc/my.cnf //进入配置文件

添加port=1300 //更改端口为1300,然后保存退出

#service mysqld restart //重启服务器

然后再进查看端口

图8.4.2 端口更改成功

在MySQL数据库中,默认是并不需要登录密码就能进入数据库中,需要配置给服务器一个相应的密码

# vim /etc/my.cnf //先进入配置文件中

在文件内容 [mysqld] 下方添加“跳过密码登录”的代码skip-grant-tables ,保存后退出。

# mysql -uroot -p //此时并不需要密码就可以登录

mysql > SET PASSWORD = PASSWORD('jiechengqiye'); //更改密码

mysql > flush privileges; //进行刷新权限

然后退出数据库,再次进入到文本编辑器中,将[mysqld]下方内容中的skip-grant-tables注释。

#service mysqld restart //重新启动服务器

重启成功之后,再次进行数据库,进行验证密码是否更改成功,验证发现不输入密码已无法进入数据库了,输入密码才能进入。

  1. 防火墙服务器

  1. 防火墙简介

IPTABLES实在Linux系统连接到因特网或LAN、服务器或连接LAN和因特网的代理服务器,则该系统有利于在Linux系统上更好地控制IP信息包过滤和防火墙配置。

防火墙在做数据包过滤决定时有一套尊蓄奴和组成的规则,这些规则储存在专用的数据包过滤表中,而这些表集成在Linux内核中。在数据包过滤表中,规则被分组放在我们所谓的链中。而netfilter/iptablesIP 数据包过滤系统是一款功能强大的工具,可用于添加、编辑和移除规则。

图9.1 Iptables防火墙默认的规则表、链结构

虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成虽然 netfilter/iptables IP 信息包过滤系统被称为单个实体,但它实际上由两个组件netfilter 和 iptables 组成。

netfilter 组件也称为内核空间,是内核的一部分,由一些信息包过滤表组成,这些表包含内核用来控制信息包过滤处理的规则集。

iptables 组件是一种工具,也称为用户空间,它使插入、修改和除去信息包过滤表中的规则变得容易。除非您正在使用 RedHat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。

iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的“安全框架”中,这个“安全框架”才是真正的防火墙,这个框架的名字叫netfilter,netfilter才是防火墙真正的安全框架(framework),netfilter位于内核空间,iptables其实是一个命令行工具,位于用户空间,我们用这个工具操作真正的框架。

防火墙策略规则的设置有两种:一种是放行,一种是阻止。当防火墙的默认策略为拒绝时,就要设置允许规则,否则谁都进不来;如果防火墙的默认策略为允许时,就要设置拒绝规则,否则谁都能进来,防火墙也就失去了防范的作用。

  1. 进行配置防火墙策略

#iptables -A INPUT -p tcp --dport 23 -jDROP //禁用TCP协议23端口

#iptables -A INPUT -p udp --dport 23 -jDROP //禁用UDP协议23端口

#netstat -anutp //查看各个端口状态,检验23端口是否禁用

#iptables -A INPUT -s 192.168.27.10 -p 3306 -jDROP

#iptables -A INPUT -s 192.168.27.10 -p 1300 -jDROP //为了防止Nmap扫描软件探测到关键信息,对3306号端口进行流量处理,因为在前期配置数据库是将数据库端口号改为1300,所以1300端口也要做处理

#iptables –A INPUT –p tcp –dport 22 –s192.168.27.0/24 –j ACCEPT //为了防止SSH服务别暴力枚举,设置防火墙策略仅允许192.168.27.0/24网段内的主机通过SSH连接主机

# iptables –A INPUT –p tcp –dport 22 -jDROP //禁止除上面设置的网段以外的全部主机

#iptables -A FORWARD -f -m limit --limit1000/s --limit-burst 1000 -j ACCEPT //为防御IP碎片攻击,设置iptables防火墙策略限制IP碎片的数量,仅允许每秒处理1000个数据包

#iptables -A INPUT -m limit --limit 3/minute--limit-burst 6 -j ACCEPT //为防御拒绝服务攻击,设置iptables防火墙策略对传入的流量进行过滤,限制每分钟允许3个包传入,并将瞬间流量设定为一次最多处理6个数据包(超过上限的网络数据包将丢弃不予处理)

#iptables -A FORWARD -s 192.168.27.0/24 -p udp--dport 53 -j ACCEPT

#iptables -A FORWARD -d 192.168.27.0/24 -p udp--sport 53 -j ACCEPT

//只允许转发来自192.168.27.0/24局域网段的DNS解析请求数据包

#iptables -A INPUT -p tcp --dport 21 -s 192.168.27.0/24-m time --weekdays 1,2,3,4,5 --timestart 09:00 --timestop 18:00 -j ACCEPT

//在工作时间,即周一到周五的09:00-18:00,开放本机的ftp给192.168.27.0/24网络中的主机访问

iptables -A INPUT -p tcp -m multiport --dport21,1250:1280 -j ACCEPT //设置防火墙允许本机对外开放TCP端口21以及被动模式FTP端口1250-1280

  1. 系统的安全配置

  1. 系统安全配置的重要性

利用Linux系统作为服务器,它的安全性是重中之重的,一旦出现问题,可能会导致这个企业的所有业务全部瘫痪,不管是那种系统默认安装都是不安全的,默认安装会存在很多漏洞,所以只有将系统进行相应的配置才能将服务器的安全等级提高。

  1. 安全配置及相关操作

  1. 密码复杂度

#passwd -l 用户名 //可以用这条命令锁定不必要的用户

#passwd root //更改root用户的密码,将密码更改负责些,防止弱口令破解

  1. 密码相关操作

#vim /etc/pam.d/system-auth //进入文本编辑模式

password sufficient pam_unix.so use_authtokmd5 shadow remember=3

//在password sufficient这行后面添加remember=3,表示禁止用户不能重复使用最近3次(含3)内已使用的密码

  1. root用户

vim /etc/pam.d/su

auth required pam_wheel.so group=testauthrequired pam_wheel.so group=jiecheng //只允许jiecheng组用户su到root

禁止FTP匿名

# vim /etc/vsftpd/vsftpd.conf

anonymous_enable=NO //如果存在anonymous_enable则修改,如果不存在则手动增加

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值