当前位置:   article > 正文

信息安全原理与技术第一次实验:系统安全实验_信息安全课程实验

信息安全课程实验

信息安全原理与技术第一次实验:系统安全实验

前言

为了帮助同学们完成痛苦的实验课程设计,本作者将其作出的实验结果及代码贴至CSDN中,供同学们学习参考。如有不足或描述不完善之处,敬请各位指出,欢迎各位的斧正!
该文图片非常多,字数约两万余字,请注意流量消耗!

一、实验目的

  1. 掌握Windows帐户与密码设置方法;
  2. 掌握文件系统的保护和加密方法;
  3. 掌握Windows操作系统安全策略与安全模板的使用、审核和日志的启用的方法;
  4. 掌握Windows操作系统漏洞检测软件MBSA的使用方法,建立一个Windows操作系统基本安全框架。
  5. 通过实验了解 Windows 操作系统中 Web 服务器、FTP 服务器的安全漏洞及其防范措施,实现 Web 服务器和 FTP 服务器的安全配置。
  6. 通过实验掌握 Linux 环境下的用户管理、进程管理以及文件管理的相关操作命令,掌握Linux 操作系统中的相关安全配置方法,建立起 Linux 操作系统的基本安全框架。
    Apache 是 Linux 下发布 Web 应用程序的主要软件包。通过本实验的学习,了解 Apache服务器的基本配置、访问控制、认证与授权的配置以及日志管理与分析方法。掌握 vsftpd服务器的安装和安全配置方法。

二、实验原理

下面从帐户口令、文件系统、日志和审核、安全漏洞扫描等多方面对 Windows 操作系统的安全进行详细介绍。

  1. 帐户和口令
    帐户和口令是我们登录系统的基础,同时也是众多黑客程序攻击和窃取的对象。因此,系统帐户和口令的安全是极度重要的,必须通过配置来实现帐户和口令的安全。普通用户常常在安装系统后长期使用系统的默认设置,忽视了 Windows 系统默认设置的不安全性,而这些不安全性常常被攻击者利用,通过各种手段获得合法的帐户,进一步破解口令,从而达到非法登录系统的目的。所以,首先需要保障帐户和口令的安全。
  2. 文件系统
    磁盘数据被攻击者或本地的其它用户破坏和窃取是经常困扰用户的问题,文件系统的安全问题也是非常重要的。Windows 系统提供的磁盘格式有 FAT、FAT32 以及 NTFS。其中,FAT、FAT32 格式没有考虑对安全性方面的更高需求,例如无法设置用户访问权限等。NTFS文件系统是 Windows 操作系统中的一种安全的文件系统,管理员或用户可以设置每个文件夹及每个文件的访问权限,从而限制一些用户和用户组的访问,以保障数据的安全。
  3. 数据加密软件 EFS
    EFS(Encrypting File System,加密文件系统)是 Windows 2000 以上版本操作系统所特有的一个实用功能,对于 NTFS 卷上的文件和数据,都可以直接被操作系统加密保存,在很大程度上提高了数据的安全性。采用加密文件系统(EFS)加密的数据,能防止计算机、磁盘被窃或者被拆换后数据失窃的隐患。
    EFS 加密是基于公钥策略的。在使用 EFS 加密一个文件或文件夹时,系统首先会生成一个由伪随机数组成的 FEK (File Encryption Key,文件加密钥匙),然后将利用 FEK 和数据扩展标准 X 算法创建加密后的文件,并把它存储到硬盘上,同时删除未加密的原始文件。随后系统利用用户公钥加密 FEK,并把加密后的 FEK 存储在同一个加密文件中。而在访问被加密的文件时,系统首先利用当前用户的私钥解密 FEK,然后利用 FEK 解密出文件。在首次使用 EFS 时,如果用户还没有公钥/私钥对(统称为密钥),则会首先生成密钥,然后加密数据。如果用户登录到了域环境中,密钥的生成依赖于域控制器,否则它就依赖于本地机器。
    EFS 加密机制和操作系统紧密结合,用户不必为了加密数据安装额外的软件,从而节约了用户使用成本。EFS 加密系统对用户是透明的。如果用户加密了一些数据,那么用户对这些数据的访问将是完全允许的,并不会受到任何限制。而其他非授权用户试图访问加密过的数据时,就会收到“访问拒绝”的错误提示。EFS 加密的用户验证过程是在登录 Windows时进行的,只要登录到 Windows,就可以打开任何一个被授权的加密文件。
  4. 审核与日志
    微软 Windows 系统从安全的角度提供了审核与日志功能,让用户便于监测当前系统的运行状况。审核与日志是 Windows 系统中最基本的入侵检测方法,当有攻击者尝试对系统进行某些方式的攻击时,都会被安全审核功能记录下来并写入到日志文件中。一些 Windows下的应用程序,如 IIS(Internet 信息服务器),也带有相关的审核日志功能,例如,IIS 的FTP 日志和 WWW 日志等。IIS 每天生成一个日志文件,包含了该日的一切记录,例如,试图通过网络登录系统的 IP 地址等。文件名通常为 ex(年份)(月份)(日期),例如,ex080225,就是 2008 年 2 月 25 日产生的日志。IIS 日志在系统盘中%Systemroot%\system32\logfiles\w3svc1\目录下,FTP 日志在%Systemroot%\system32\logfiles\msftpsvc1\目录下。而系统日志、安全性日志和应用程序日志分别为%Systemroot%\system32\config 文件夹下的 3 个文件。
  5. 安全模板
    Windows 系统中的安全设置项目繁多,包括帐户策略,本地策略、事件日志、受限制的组、系统服务、注册表和文件系统等。每个项目都进行设置是相当复杂的,为了提高系统安全性设置的简易性,微软在 Windows 系统中提供了不同安全级别的安全模板,不同安全级别的模板包含了不同安全性要求的配置。用户只要简单地根据需要选择启用相应的模板,即可自动按照模板配置各项安全属性。对部分模板的意义做如下说明:
setup security.inf: 全新安装系统的默认安全设置
basicws.inf: 基本的安全级别
compatws.inf: 将系统的 NTFS 和 ACL 设置成安全层次较低的 NT4.0 设置
securews.inf: 提供较高安全性的安全级别
hisecws.inf: 提供高度安全性的安全级别
  • 1
  • 2
  • 3
  • 4
  • 5

除了以上的系统默认的安全模板,Windows 操作系统还支持用户自己构建安全模板。
6. MBSA(Microsoft Baseline Security Analyzer)
要检查当前系统是否符合一定的安全标准,手动逐项检查的过程是非常繁杂的。Microsoft 提供了自动检查 Windows 系统漏洞的安全审计工具 MBSA。它将从微软的升级服务器中下载最新的补丁包文件,检查 Windows 系统中是否安装了最新的安全补丁。此外,它还可以对系统漏洞、IIS 漏洞、SQLServer 数据以及 IE、OFFICE 等应用程序的漏洞进行扫描,以检查系统的各项配置是否符合安全性要求。除了微软的 MBSA 工具,其他的一些软件如瑞星杀毒软件、金山毒霸、360 安全卫士等都提供 Windows 操作系统漏洞扫描并从微软服务器下载补丁的功能。
IIS(Internet Information Server)是 Windows 系统中 Internet 信息和应用程序服务器。利用 IIS 可以配置 Web 和 FTP 服务器。 IIS4.0、IIS5.0 和 IIS6.0 的应用非常广泛,但由于这几个版本的 IIS 存在很多安全漏洞,它们的使用也带来了很多安全隐患。IIS 常见漏洞包括 idc&ida 漏洞、.htr 漏洞、NT Site Server Adsamples 漏洞、.printer 漏洞、Unicode 解析错误漏洞、Webdav 漏洞等。因此,了解如何加强 Web 服务器、FTP 服务器的安全性,防范由 IIS漏洞造成的入侵就显得尤为重要。在下面的实验中通过对 Web 服务器和 FTP 服务器的安全配置,了解其防范方法。
我们可以手动进行 IIS 的安全配置,包括 Web 服务器、FTP 服务器和 SMTP 服务器,也可以利用一些安全工具来进行。IISlockdown 是由微软开发的 IIS 安全配置工具,它按照模板的安全配置选项,通过关闭 IIS 服务器上的某些不必要的特性和服务,从而减少受攻击的威胁。此工具还与 URLscan 等协同工作,提供了多层次的防御和保护。
1.用户管理
Linux 系统支持以命令行或窗口方式管理用户和用户组。它提供了安全的用户和口令文件保护以及强大的口令设置规则,并对用户和用户组的权限进行细粒度的划分。
Linux 系统的用户和用户组的信息分别保存在/etc/shadow、/etc/passwd、/etc/group 和/etc/gshadow 等几个文件中,为这些文件设置较高的安全权限是完全必要的。在较高安全要求的系统中,可以将这些文件设置为不可更改。Linux 系统中也带有一些常用的口令字典,以便在用户设置的口令不太安全时及时提醒用户。
在对系统有较高安全需求时,可以限制只有部分用户有权使用用于切换用户的 su 命令。Linux 系统中提供了用于限定该命名使用权限的 wheel 用户组,只有该组的用户才有权限使用 su 命令,将准许使用 su 命名的用户添加到该组中,即可限制其它用户对该命名的使用。
2.文件管理
在 Linux 操作系统中,文件和目录的权限根据其所属的用户或用户组来划分:
(1) 文件所属的用户,即文件的创建者;
(2) 文件所属用户组的用户,即文件创建者所在的用户组中的其它用户;
(3) 其它用户,即文件所属用户组之外的其它用户。
每个文件或者目录的拥有者以及管理员 root 用户,可以为上述 3 种用户或用户组设置读、写或可执行的权限。用户也可以通过改变文件所属的用户和组改变 3 类用户的权限。
对文件夹设置 SGID 权限,任何在该目录中创建的文件和子目录都将与其父目录属于同样的用户组。这种管理有时是必要的,有时会带来一定的安全问题,因此在建立文件时要特别小心文件夹的 SGID 权限位。
另一个容易带来安全问题的文件是/home/*/.bash_history(*表示某用户名)。为了便于重复输入很长的命名,该文件保存了此用户曾经使用的一组数目(系统默认为 500 或 1000)的命名。这样就保留了一些重要信息,例如文件的路径,一些与用户有关的密码等,为攻击的黑客留下了可乘之机。可以通过设置/etc/profile 文件中的参数设置,减少保留的命名数目。
3.插入式身份认证模块 PAM
PAM(Pluggable Authentication Modules)是插入式身份认证模块,它提供身份认证功能防止未授权用户的访问,其身份认证功能高度模块化,可通过配置文件进行灵活配置。在高版本的 Linux 版本中自动启用了 PAM,用户也可以自行配置 PAM 文件。但是,任何很小的错误改动都可能导致所有用户被阻塞,所以,在进行相关文件改动之前,应当先备份系统内核。
4. 记录系统 syslogd
Linux 系统使用了一系列的日志文件,为管理员提供了很多关于系统安全状态的信息。Syslogd 是一种系统日志守护进程,它接受系统和运用程序、守护进程以及内核提供的消息,并根据在/etc/syslog.conf 文件中的配置,对这些消息在不同日志文件中进行记录和处理。绝大部分内部系统工具都会通过呼叫 syslog 接口来提供这些记录到日志中的消息。
系统管理员可以通过设置/etc/syslog.conf 文件来设置希望记录的消息类型或希望监视的设备。
1.Apache 服务器的安全配置
Apache 服务器是一种具有图形界面的 Internet 服务,具有很强的信息链接功能,使用户可以方便地访问 Web 服务器提供的信息和服务。Web 服务器服务采用 Browser/Server 结构,由服务器端程序和浏览器程序组成。常用的 Web 服务器如 Apache 以及 Windows 下 IIS 服务组件等,而浏览器端程序如 IE、Netscape、FireFox 等。
在众多的 Web 服务器产品中,Apache 是应用较广泛的一个。Apache Server 的前身是NCSA 的 httpd,目前由 Apache 软件基金会负责维护,它的开发人员全部为志愿者,不含任何商业行为。因为强大的功能,灵活的设置以及多平台的可移植性使得 Apache Server 取得了用户的广泛信赖。目前在 Red Hat Linux 9.0 中默认安装的是 Apache 2.0 服务器,它采用模块方式运行。
(1)Apache 的配置文件/etc/httpd/conf/httpd.conf
首先我们了解一下 Apache 2.0 服务器在 Red Hat Linux 9.0 中的配置文件,Apache 的配置文件 httpd.conf 在/etc/httpd/conf/目录下,文件中包含了对全局环境参数、主服务和虚拟主机服务等配置参数,下面对相关参数进行简单介绍。
1 全局环境参数:

 ServerTokens OS 当服务器响应主机头信息时显示 Apache 版本和操作系统名
	ServerRoot“/etc/httpd” 服务器的根目录设置
	PidFile“/var/run/httpd.pid” 运行 Apache 时使用的 PidFile 的路径(PidFile:服务器用于记录启动时进程 ID 的文件)
	TimeOut 300 空闲超时时间
	KeepAlive Off 保持连接,默认为不允许
	MaxKeepAliveRequests 100 每个连接的最大请求数,设置为 0 表示无限制
	KeepAliveTimeout 15 同一连接同一客户端两个请求之间的等待时间
	MaxClients 150 最大客户连接数。
	MaxRequestsPerChild 100 每个子进程在结束处理请求之前能处理的最大连接请求数
	Listen 80 设置服务器的监听端口
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

2 主要服务配置参数:

User apache、Group apache 设置运行 Apache 的用户和用户组
	ServerAdmin root@locallhost 设置 Apache 管理员的电子邮件地址
	ServerName sys_Linux 设置服务器名称,指定 Apache 用于识别自身的名字和端口号目录进行应答,可以使用符号链接和别名来指定向其它的位置
	DirectoryIndex index.html index.html.var 设置网站的默认首页
	AccessFileName.htaccess 指定保护目录文件的名称
	HostNameLookups Off 指定记录客户端的是名字还是 IP 地址,本指令为 On 时,记录主机名:本指令为 Off 时,记录 IP 地址
	ErrorLog “/var/log/httpd/error_log” 指定存放错误日志的路径和文件名
	LogLevel warn 指定错误日志信息的详细等级为 warn
	AddOutputFilter INCLUDES.shtml 使用过滤器执行 SSL
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
设置服务器根目录的访问权限:
  • 1
<Directory “/”>
Options FollowSymLinks 允许符号链接,访问不在本目录下的文件
AllowOverride None 禁止读取.htaccess 配置文件内容
</Directory>
  • 1
  • 2
  • 3
  • 4

设置目录/var/www/html/的访问权限:

<Directory “/var/www/html/”>
Options Indexes Includes FollowSymLinks
AllowOverride None
  • 1
  • 2
  • 3

Order allow,deny 先执行 Allow 访问规则,再执行 Deny 访问规则
Allow from all 设置 Allow 访问规则,允许所有链接

指定访问日志的记录格式为混合型,并指定访问日志的存放路径:(选中哪一种类型,即应将其变为非注释行,其它注释划掉)

#CustomLog logs/access_log common
CustomLog logs/access_log combined
#CustomLog logs/referrer_log referrer
#CustomLog logs/agent_log agent
#CustomLog logs/access_log combined
  • 1
  • 2
  • 3
  • 4
  • 5

3 虚拟主机参数:
如果希望在一台服务器上实现多个域名和主机名的服务,可通过设置虚拟主机来实现。

LockFile “/var/lock/httpd.lock” 指定文件 LockFile 的存放路径
CoreDumpDirectory “/etc/heepd” 指定文件目录
  • 1
  • 2

虚拟主机参数的设定:

<Virtual Host *>
ServerSignature email
Directory Index index.php index.htm; index.htm index.shtml
LogLevel warn
HostNameLookups off
</Virtual Host>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

(2)访问控制
在 Apache 中,通过 order、deny 和 allow 这 3 个指令来配置 Directory、Location、File容器的访问控制规则。
以 Directory 为例,如果对某一目录的访问进行控制,则按照下面格式在 Directory 语句的后面添加此目录名。例如,对根目录“/“的访问进行控制,控制规则为:

<Directory “/”>
 ……
</Directory>
  • 1
  • 2
  • 3

在中间可以插入由 order、deny 和 allow 指令组成的控制规则。
Order 用于说明访问规则的执行顺序,它有两种格式:

Order Allow,Deny:先执行允许访问规则,再执行拒绝访问规则,默认情况下处理被允许的用户外,拒绝所有其它用户访问。
Order Deny,Allow:先执行拒绝访问规则,再执行允许访问规则,默认情况下处理被禁止的用户外,允许所有其它的用户访问。
  • 1
  • 2

Deny 和 allow 指令则在 Order 指令之后规定详细的访问列表,有如下几种形式:

All:表示所有用户
域名:表示域内所有用户
IP 地址:可以是完整的 IP 或部分 IP
网址/子网掩码:格式如 192.168.101.1/24
  • 1
  • 2
  • 3
  • 4

例如,下面的访问控制规则:

<Directory “/”>
Order deny,allow
Deny from all
Allow from 192.168.0.10
</Directory>
  • 1
  • 2
  • 3
  • 4
  • 5

表示对根目录“/”的访问进行控制,Order 指令语句表示先执行 deny 规则,再执行 allow规则。在 deny 和 allow 指令语句中指明了具体的 deny 和 allow 访问规则,即拒绝所有用户的访问,只允许来自 IP 地址为 192.168.0.10 的用户访问。
(3)认证与授权
某些商务网站的资源,并不是对所有用户开放,而只对某些特殊用户开放,这就需要对用户的身份进行认证。下面我们介绍通过用户名和密码方式进行的用户身份认证和授权。
对用户的认证可以通过在配置文件 httpd.conf 中添加配置指令实现,也可以通过在.htaccess 文件中添加配置指令来实现。下面列出了认证配置指令及其说明:

AuthName:指令认证领域的名称
AuthType:指令使用的认证方式,有 basic 和 digest 两种方式
AuthGroupFile:指定认证组文件的位置
AuthUserFile:指定认证口令文件的位置
  • 1
  • 2
  • 3
  • 4

上面的认证配置指令指定了认证的具体细节,此外,还需为指定的用户或用户组进行授权,以便使这些用户和用户组能够通过认证,有权限访问指定的目录文件。授权的指令为 Require,它有 3 种使用格式:

Require user 用户名:授权给一个或多个用户
Require group 组名:授权给一个或多个组
Require valid-user:授权给认证口令文件中的所有用户
  • 1
  • 2
  • 3

例如,通过配置 httpd.conf 文件的方法,以实现用户访问/var/www/html/sec 目录下的文件时进行身份认证,则可通过修改 httpd.conf 文件的下令配置实现:

<Directory“/var/www/html/sec”>
AllowOverride None //利用.htacess 文件也是改变 Apache 配置的一种方式,AllowOverride 指令以及它后面的参数决定着如何利用.htacess 文件对 apache 进行配置,这里的参数 None是指不使用.htacess 文件的方式
AuthType Basic //使用 basic 认证方式
AuthName “sec” //认证领域名称为 sec
AuthUserFile /var/www/passwd/secpwd //认证口令文件
Require valid-user //授权给认证口令文件中的所有用户
</Directory>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

如果不采用配置 httpd.conf 文件的方法,也可采用在 htaccess 文件中添加配置指令的方法实现上面的安全配置,这首先也要修改 httpd.conf 文件:

<Directory “/var/www/html/sec”>
AllowOverride AuthConfig //参数 AuthConfig 是指使用.htacess 文件方式进行认证和授权
</Directory>
  • 1
  • 2
  • 3

然后执行命令 service httpd restart,重新启动 httpd,则在/var/www/html/sec 目录下会生成 htacess 文件。使用 vi 编辑.htacess 文件,添加下面的认证和授权配置指令即可。

AuthType Basic //使用 basic 认证方式
AuthName “sec” //认证领域名称为 sec
AuthUserFile /var/www/passwd/secpwd //认证口令文件
Require valid-user //授权给认证口令文件中的所有用户
  • 1
  • 2
  • 3
  • 4

(4)日志管理配置与日志的统计分析 为例维护网站的正常允许,对网站进行监控是非常必要的,通过对 Web 服务器的日志文件进行分析,可以有效掌握网站运行情况,加强对网站的维护和管理。
在 Apache 2.0 的多种日志中,错误日志和访问日志被作为默认配置的日志。我们可以通过下面 4 种日志配置指令,按照需要在 httpd.conf 配置文件中上述 2 种日志进行配置。

Errorlog 日志文件名 //指定错误日志存放路径及文件名
LogLevel 级别 //指令错误日志的记录等级,分为 emerge,alert,crit,error,warn,notice,info,debug 等 8 个等级
LogFormat 记录格式说明串 格式昵称 // 为某个日志记录格式命令
CustomLog 访问日志名 格式名 //指定访问日志的文件名和记录格式,格式有:connon,referer,agent,conbined
  • 1
  • 2
  • 3
  • 4

例如,Apache 配置文件中默认错误日志配置和访问日志配置为:

ErrorLog “/var/log/httpd/error_log” 指定存放错误日志的路径和文件名
LogLevel warn 指定错误日志信息的详细等级为 warn
CustomLog logs/access_log combined
  • 1
  • 2
  • 3

2.FTP 服务器(Vsftpd)的安全配置
FTP(File Transfer Protocol)为文件传输协议,主要用于网络间的文件传输。FTP 服务器的特点是它采用双端口工作方式,通常 FTP 服务器开放 21 号端口与客户端进行 FTP 控制命令的传输,这称为 FTP 的控制连接;而使用端口 20 作为服务器的数据连接端口与客户端建立数据传输通道,这称为 FTP 的数据连接。
Linux 操作系统中常用的 FTP 服务器有 3 种:wu-ftpd、Proftpd 和 Vsftpd。在这 3 种 FTP服务器中,Vsftpd 服务器以安全性、高速性和稳定性著称。Vsftpd(Very Secure FTP Daemon)的本意即为非常安全 FTP 服务器,它设计的出发点就是安全性。Vsftpd 是 Red Hat Linux9.0中自带的 FTP 服务器,对 Vsftpd 服务器的安全配置主要通过它的 3 个配置文件来实现,它们分别是/etc/vsftpd.ftpusers、/etc/vsftpd.user_list 和/etc/vsftpd/vsftpd.conf。
/etc/vsftpd.ftpusers 中自带了不能访问 FTP 服务器的用户,缺省情况下包括 root 用户。
/etc/vsftpd.user_list 中 指 定 的 用 户 , 当 /etc/vsftpd/vsftpd.conf 中 同 时 设 置 了
userlist_enable=YES 和 userlist_deny=YES 时,不能访问 FTP 服务器。
/etc/vsftpd/vsftpd.conf 是 Vsftpd 的主配置文件,包含了很多重要的安全配置参数,通过对这些参数的设置,可发挥 Vsftpd 的最大功能。文件中的每一行如果以“#”开头,此行的内容为注释文字,不会被 Vsftpd 执行。除了以“#”注释之外的其它参数,是 Vsftpd 执行的指令。对 vsftpd.conf 的主要配置参数解释如下:

anonymous_enable=YES //允许匿名登录
local_enable=YES //允许本地用户登录
write_enable= YES //允许任何形式的 FTP 写命令
local_umask=002 //默认本地用户的 umask 是 007,可设置为 022
anon_upload_enable= YES //允许匿名用户上传文件,需要建立一个 FTP 用户有写权限的目录,并且只有在上面的 write_enable=YES 才起作用
anon_mkdir_write_enable= YES //使匿名 FTP 用户有建立目录的权限
dirmessage_enable=YES //用户切换目录时显示该目录下的.message 文件的内容
xferlog_enable= YES //激活对上传/下载活动的日志记录
connect_from_port_20= YES // 确定 FTP 的数据传输端口从 20 开始
chown_uploads= YES //可以指定其它用户作为上传文件的所有者
chown_username=whoever //指定其它用户作为上传文件的所有者
xferlog_file=/var/log/fsftpd.log //指定的默认日志文件名
idle_session_timeout=600 // 指定日志文件为标准的 FTP 服务端日志格式
data_connection_timeout=120 //设定默认的空闲超时时间
noprive_user=ftpsecure //指定一个独立的用户,用作完全隔离且没有特权的独立用户
async_abor_enable= YES //识别异步 abor 请求,处于安全脚本考虑不推荐这么做
ascii_upload_enable= YES //上传设置为支持 ASCII 模式
ascii_download_enable= YES //下载设置为支持 ASCII 模式
ftpd_banner=Welcome to blah FTP service. //自定义登录信息
deny_email_file= YES //指定一个禁止的匿名右键地址列表文件
banned_email_file=/etc/vsftpd.banned_emails //缺省情况下匿名邮件地址列表文件
chroot_list_enable=YES //用一个列表限定哪些本地用户只能在自己根目录下活动
chroot_list_file=/etc/vsftpd.chroot_list //限定用户在自己根目录下活动的缺省列表文件
is_recurse_enable= YES //激活内建 Is 指令的“-R”选项
pam_service_name=vsftpd //PAM 认证名
userlist_enable= YES //本地用户通过 PAM 认证
listen=ES //允许独立运行模式的设置
tcp_warppers= YES //启动 tcp_wrapper
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28

Vsftpd 的用户分为 3 类:匿名用户、本地用户(local user)以及虚拟用户(guest)。匿名用户的用户名为 ftp、anonymous 或者是一串随即字符串,电子邮件格式密码或者不需密码。本地用户是一类在 FTP 服务器所属主机上拥有账号的用户,等同于其它 FTP 服务器的real 用户。虚拟用户是 FTP 服务的专用用户,虚拟用户只能访问 FTP 服务器资源而不能访问其它系统资源。

三、实验环境

1 台安装 Windows XP/2003 操作系统的计算机,磁盘格式配置为 NTFS,并预装MBSA(Microsoft Baseline Security Analyzer)工具。
安装 Windows 2000 Server/XP/2003 Server 操作系统的计算机,并且完全安装 IIS 服务。
安装 Red Hat 9.0 操作系统的计算机。
1 台安装 Windows XP/2003 操作系统的计算机作为客户机(可以使用本机),一台redhat9.0 作为 http 服务的提供者,要求网络在 nat 模式下,能够与客户机正常通信。

四、实验内容

需要说明的是,以下设置均需以管理员(Administrator)身份登录系统。在 Windows XP或 2003 操作系统中,相关安全设置稍有不同,但大同小异,下面主要以 Windows 2003 的设置步骤为例进行说明。
1.帐户和口令的安全设置
(1) 删除不再使用的帐户,禁用 Guest 帐户
共享帐户、Guest 帐户等具有较弱的安全保护,常常都是黑客们攻击的对象,系统的帐户越多,被攻击者攻击成功的可能性越大,因此要及时检查和删除不必要的帐户,必要时禁用 Guest 帐户。
① 检查和删除多余的帐户
右键单击桌面【我的电脑】图标,选择【管理】选项,进入“计算机管理”窗口,双击【本地用户和组】,选择【用户】选项进入如图 2.1 所示的用户界面。
在图 2.1 中,列出了系统的所有帐户。确认各帐户是否仍在使用,删除其中不用的帐户。如在图 2.1 中圆角矩形框中的用户即为笔者系统中多余的帐户和 Guest 帐户。如图 2.2 所示,可以鼠标右键多余帐户,选择【删除】按钮完成多余帐户的删除操作。
在这里插入图片描述
图 2.1 用户界面
在这里插入图片描述
图 2.2 删除多余帐户
② 禁用 Guest 帐户
进入如图 2.2 所示的用户界面,鼠标右键 Guest 用户,选择【属性】,进入 Guest 属性窗口,在“帐户已禁用”一栏前打上勾,单击【确定】按钮,如图 2.3 所示。设置之后,Guest帐户前会出现一个红色的叉。此时如果使用 Guest 帐户登录,则会显示“您的帐户已被停用,请向系统管理员咨询”。
在这里插入图片描述
图 2.3 Guest 属性
(2)启用帐户策略
打开“控制面板”→“管理工具”→“本地安全策略”,选择“帐户策略”下的“密码策略”,进入如图 2.4 所示的窗口。
其中,符合复杂性要求的密码是具有相当长度、同时含有数字、大小写字母和特殊字符的序列。双击其中每一项,可按照需要改变密码特性的设置。
① 双击“密码必须符合复杂性要求”,在弹出的如图 2.5 所示对话框中,选择“已启用”,单击【确定】完成操作。
现在来验证一下密码策略是否已经启动。首先进入图 2.1 所示的窗口,选择一个帐户,单击鼠标右键,选择【设置密码】,在接下来的窗口中单击【继续】按钮,进入图 2.6 设置密码窗口,并在此窗口中输入密码。此时设置的密码要符合设置的密码要求。例如,若输入111111,则弹出如图 2.7 所示的密码不符合要求的提示窗口;如输入密码为 123asd!@#,密码被系统接受。
在这里插入图片描述
图 2.4 密码策略
在这里插入图片描述
图 2.5 密码必须符合复杂性要求
在这里插入图片描述
图 2.7 密码不符合要求
② 双击图 2.4 中“密码长度最小值”,在弹出的如图 2.8 对话框中设置可被系统接纳的帐户密码长度最小值,例如设置为 6 个字符。一般为了达到较高的安全性,建议密码长度的最小值为 8。
在这里插入图片描述
图 2.8 密码长度最小值
③ 双击图 2.4 中“密码最长使用期限”,在弹出的如图 2.9 所示的对话框中设置系统要求的帐户密码的最长使用天数,默认设置为 42 天。设置密码最长使用期限,可以提醒用户定期修改密码,防止密码使用时间过长带来的安全隐患问题。
在这里插入图片描述
图 2.9 密码最长使用期限
④ 双击图 2.4 中“密码最短使用期限”,在弹出的如图 2.10 所示的对话框中设置密码最短使用天数。在密码最短使用期限内用户不能修改密码。这项设置是为了避免入侵的攻击者修改帐户密码。
在这里插入图片描述
图 2.10 密码最短使用期限
⑤双击图 2.4 中“强制密码历史”和“用可还原的加密来存储密码”,在相继弹出的类似对话框中,设置让系统记住的密码数量和开启用可还原的加密来储存密码。
至此,密码策略设置完毕。
在帐户策略中的第 2 项是帐户锁定策略,它决定系统锁定帐户的时间等相关设置。
单击图 2.4 中的“帐户锁定策略”,进入图 2.11 所示的帐户锁定策略窗口。
在这里插入图片描述
图 2.11 帐户锁定策略
⑥ 在图 2.11 中双击“帐户锁定阈值”,在弹出的如图 2.12 对话框中设置帐户被锁定之前经过的无效登录次数(如 3 次),以便防范攻击者利用管理员身份登录后无限次的猜测帐户的密码(穷举攻击法)。
在这里插入图片描述
图 2.12 帐户锁定阈值
⑦ 双击图 2.11 中的“帐户锁定时间”,在弹出的如图 2.13 所示的对话框中设置帐户被锁定的时间(如 20 分钟)。此后,当某帐户无效登录(如密码错误)的次数超过 3 次时,系统将锁定该帐户 20 分钟。
在这里插入图片描述
图 2.13 帐户锁定时间
(3)开机时设置为“不自动显示上次登录帐户”
Windows 默认设置为开机时自动显示上次登录的帐户,许多用户也采用了这一设置。这对系统来说是很不安全的,攻击者会从本地或 Terminal Service 的登录界面看到用户名。
禁止显示上次的登录用户名的具体操作步骤为:
①打开“控制面板”→“管理工具”→“本地安全策略”,选择“本地策略”下的“安全选项”,进入如图 2.14 所示的窗口。
在这里插入图片描述
图 2.14 安全选项
②双击图 2.14 中圆角矩形圈住的“交互式登录:不显示上次的用户”,在弹出的图 2.15中选择“已启用”,单击【确定】完成设置。
在这里插入图片描述
图 2.15 不显示上次的用户名
(4)禁止枚举账户名
为了便于远程用户共享本地文件,Windows 默认设置远程用户可以通过空连接枚举所有本地账户名,这给了攻击者可乘之机。
要禁止枚举账户名,可执行以下操作:
在如图 2.16 所示的窗体中双击“网络访问:不允许 SAM 帐户和共享的匿名枚举”,在接下来的弹出窗口中选择“已启用”,单击【确定】完成设置。
在这里插入图片描述
图 2.16 不允许枚举帐户和共享
此外,在“安全选项”中还有多项增强系统安全的选项,配置方法同上,这里不再赘述。
2.文件系统安全设置
(1)删除 Everyone 组的操作权限
由于新建的用户往往都归属于 Everyone 用户组,而 Everyone 组在缺省情况下对所有系统驱动器都有完全控制权,删除 Everyone 组的操作权限可以对新建用户的权限进行限制。
打开采用 NTFS 格式的磁盘,这里选择笔者 E 盘(无 E 盘可选择 C 盘)。右键单击 E 盘,选择【属性】,并在接下来的属性窗口中选择【安全】选项卡,如图 2.17 所示,点选“组或用户名称”栏目下的“Everyone”用户组,单击【删除】按钮完成 Everyone 用户组权限的删除操作。
在这里插入图片描述
图 2.17 文件夹安全属性
以上操作是仅仅删除 Everyone 组对 E 盘的操作权限,而原则上是需要根据实际需求,只保留允许访问磁盘的用户和用户组。在图 2.17 中,同样可以实现对其他用户组和用户的权限控制操作。单击【高级】按钮,可以查看 E 盘的高级安全设置,如权限、审核、所有者、有效权限,如图 2.18 所示。
在这里插入图片描述
图 2.18 磁盘高级安全设置
(2)对同一磁盘进行不同用户组权限分配
在 Windows 操作系统中,Administrators 是超级用户组,凡是隶属于此组的用户都是超级用户,拥有至高无上的权利。Users 是新建用户默认隶属的用户组,此用户组用户不能对系统进行有意或无意的改动,只能运行经过验证的应用程序,但不可以运行大多数旧版应用程序。
还是以笔者计算机磁盘 E 盘为例,Users 用户组在缺省情况下对 E 盘只能进行读取、运行、列出文件夹目录操作,如图 2.19 所示。这意味着 Users 用户组用户只能浏览 E 盘内数据,不能写入数据到 E 盘。如果需要 Users 用户组用户写入输入到 E 盘,这可以在图 2.19中“Users 的权限”栏下把“写入”权限对应的允许复选框打上勾,单击【确定】即可。
注意:由于 Administrators 用户组的权限远远高于 Users 用户组权限,所以 Administrators用户组用户对系统所进行的权限设置,Users 用户组用户没有权限进行修改。对于所有用户组来说,低权限用户组对系统的安全设置,较高权限用户组可以对其进行修改,反之则不成立。这也正是 NTFS 磁盘格式的比 FAT、FAT32 磁盘格式更安全的原因所在!
在这里插入图片描述
图 2.19 Users 用户组缺省权限
3.用加密软件 EFS 加密硬盘数据
(1)在计算机桌面鼠标右键【我的电脑】,选择【管理】,在弹出的“计算机管理”窗口中选择【本地用户和组】,再鼠标右击【用户】,选择【新用户】按钮创建一个名为 MyUser的新用户,如图 2.20 所示。
(2)打开磁盘格式为 NTFS 的磁盘,选择要进行加密的文件夹,这里选择笔者 E 盘上的“数据备份”文件夹。(可选择 C 盘,并在 C 盘下建立数据备份的文件夹以及文件,前提是取消之前对 user 用户的权限设置)
(3)鼠标右击该文件夹,打开“属性”窗口,选择【常规】选项卡,如图 2.21 所示。单击【高级】按钮,进入如图 2.22 所示的窗口,在“加密内容以便保护数据”前的复选框内打上勾,单击【确定】回到图 2.21 所示窗口。
(4)在图 2.21 所示窗口中单击【确定】按钮弹出如图 2.23 所示的加密窗口。在此窗口中选择“将更改应用于该文件夹、子文件夹和文件”选项,单击【确定】完成设置操作。
(5)加密完毕后保存当前用户下的文件,并注销当前用户,使用刚才新建的用户 MyUser登录系统(注意切换用户是须记住设置的用户名和密码)。再次访问“数据备份”文件夹,打开其中的文本文件时,弹出如图 2.24 所示的错误窗口。这说明该文件夹已经被加密,在没有授权的情况下无法打开。
(6)再次切换到 Adnimistrator 用户,以原来加密文件夹的管理员帐户登录系统。单击【开始】按钮,选择【运行】,在弹出的“运行”框中输入“mmc”命名,打开系统控制台。单击在左上角【文件】,选择【添加/删除管理单元】,在弹出的对话框中单击【添加】按钮,进入如图 2.25 所示窗口。在此窗口中选择“证书”,单击【添加】,弹出如图 2.26 所示窗口,选择“我的用户帐户”,单击【完成】按钮回到图 2.25 窗口,单击【关闭】按钮。
在这里插入图片描述
图 2.20 新建用户
在这里插入图片描述
图 2.21 常规属性窗口
在这里插入图片描述
图 2.22 文件夹高级属性
在这里插入图片描述
图 2.23 加密
在这里插入图片描述
图 2.24 拒绝访问窗口
在这里插入图片描述
图 2.25 添加证书
在这里插入图片描述
图 2.26 证书管理单元
在这里插入图片描述
图 2.27 系统控制台
(7)在如图 2.27 的控制台窗口中,单击左侧目录树中【证书】→【个人】→【证书】。可以看到用于秘密文件系统的证书显示在右侧的窗口中。双击此证书,单击【详细信息】选项卡,这可以看到证书中包含的详细信息,主要的一项是所包含的公钥,如图 2.28 所示。
在这里插入图片描述
图 2.28 证书详细信息
(8)在图 2.27 中选中用于 EFS 的证书,单击右键,在弹出的菜单中选择【所有任务】,在展开的菜单中,单击【导出】,则弹出“证书导出向导”窗口,单击【下一步】按钮,选择“是,导出私钥”,如图 2.29 所示。单击【下一步】到如图 2.30 所示的窗口,输入保护私钥的密码,单击【下一步】,在如图 2.31 所示的窗口中单击【浏览】按钮指定保存证书的路径和证书文件名,单击【下一步】完成证书的导出操作,如图 2.32 所示。
在这里插入图片描述
在这里插入图片描述
图 2.29 将私钥和证书一起导出
在这里插入图片描述
图 2.30 保护私钥的密码
在这里插入图片描述
图 2.31 指定导出的文件名
在这里插入图片描述
图 2.32 证书导出成功
(9)再次切换用户,以新建的 MyUser 登录系统,重复(6)、(7)步骤,右键【个人】,在菜单中选择【所有任务】,接着再选择【导入】进入证书导入向导,如图 2.33 所示,通过【浏览】按钮选择证书,单击【下一步】按钮。
(10)在如图 2.34 所示的窗口中输入证书保护密钥,单击【下一步】,选择将证书放入“个人”存储区中,单击【下一步】,完成证书导入操作。
在这里插入图片描述
在这里插入图片描述
图 2.33 导入证书文件
在这里插入图片描述
图 2.34 导输入证书保护密钥
(11)再次双击加密文件夹中的文本文件,文件可以正常打开。说明该用户已经成为加密文件的授权用户,如图 2.35 所示。
在这里插入图片描述
图 2.35 文件打开
4.启用审核与日志查看
(1)打开审核策略
①打开“控制面板”→“管理工具”→“本地安全策略”;
②打开“本地策略”中的“审核策略”,可以看到当前系统的审核策略,如图 2.36 所示;
在这里插入图片描述
图 2.36 审核策略
③双击每项策略可以选择是否启用该项策略。例如“审核帐户管理”将对每次建立新用户、删除用户等操作进行记录,“审核登录事件”将对每次用户的登录进行记录;“审核过程追踪”将对每次启动或者退出的程序或者进程进行记录,根据需要启用相关审核策略。审核策略启用后,审核结果放在各种事件日志中。具体启用什么策略,根据用户的实际需求来定。
(2)查看事件日志
①打开“控制面板”→“管理工具”→“事件查看器”,如图 2.37 所示,可以看到笔者计算机上的 5 种日志,其中主要的是前 3 种日志,其中安全性日志用于记录刚才上面审核策略中所设置的安全事情。
②单击左侧树状菜单中的“安全性”日志,可查看有效无效、登录尝试等安全事件的具体记录。如图 2.38 所示,双击右侧窗口中任何一项日志,可以查看此项日志的相关详细信息。例如,在双击圆角矩形圈住部分日志可弹出 Administrator 用户一次登录的详细事件信息,如图 2.39 所示,可以看出 Administrator 用户成功登录的日期、时间、类型、用户名等信息。
在这里插入图片描述
图 2.37 事件查看器
在这里插入图片描述
图 2.38 安全性日志
5.启用安全策略与安全模板
(1)启用安全模板
开始前,请记录当前系统的帐户策略和审核日志状态,以便与实验后的设置进行比较。
①单击【开始】,选择【运行】,在“运行”对话框中输入 mmc,打开系统控制台,如图 2.40 所示。
②单击工具栏上的【文件】,选择【添加/删除管理单元】,单击【添加】,在弹出的如图2.41 所示的窗口中分别选择“安全模板”、“安全配置和分析”,单击【添加】按钮后,关闭窗口,并单击【确定】按钮。
③此时系统控制台中根结点下添加了“安全模板”和“安全配置和分析”两个文件夹。打开“安全模板”文件夹,可以看到系统中存在的安全模板,如图 2.42 所示。右键单击某一个模板,选择【设置描述】,可以查看该模板的相关信息。单击任一个模板,右侧窗口会出现该模板中的安全策略,双击每种安全策略可看到其相关配置。
④在如图 2.42 所示窗口中右键单击“安全配置和分析”,选择【打开数据库】,在弹出的 对 话 框 中 输 入 欲 保 存 安 全 数 据 库 的 路 径 和 数 据 库 名 称 , 例 如 起 名 为MuComputerSecurity.sdb,如图 2.43 所示。单击【打开】按钮,在弹出的窗口中,根据计算机准备配置成的安全级别,选一个安全模板将其导入。
在这里插入图片描述
图 2.39 Administrator 登录成功日志
在这里插入图片描述
图 2.40 控制台
在这里插入图片描述
图 2.41 添加独立管理单元
在这里插入图片描述
图 2.42 安全模板
⑤右键单击“安全配置与分析”,选择【立即分析计算机】,单击【确定】按钮。系统开始按照上一步中选定的安全模板,对当前系统的安全设置是否符合要求进行分析。分析完毕后,可在目录中选择查看各安全设置的分析结果,如图 2.44 所示。
⑥右键单击“安全配置与分析”,选择【立即配置计算机】,则按照第④步中所选择的安全模板的要求对当前系统进行配置。
如果事先对系统的缺省配置选项做了记录,接着记录启用安全模板后系统的安全设置,与启用前进行比较,即可发现,如果选用的安全模板级别较高,则使用安全模板后系统的安全配置选项增加了许多。
在这里插入图片描述
图 2.43 打开数据库
在这里插入图片描述
图 2.44 分析结果
(2)创建安全模板
①重复前述第(1)部分第①步~第④步。在图 2.45 中右键单击模板所在路径(即图中
“C:\WINDOWS\security\templates”),选择【新建模板】,在弹出的对话框中填入新模板的名称,如 MyTem,在“描述”中填入描述信息,如图 2.46 所示,单击【确定】完成自设模板的添加操作,可看见结果如图 2.47 所示。
②双击 MyTem,在显示的安全策略列表中双击“帐户策略”下的“密码策略”,可发现其中任一项均显示“没有定义”。双击欲设置的安全策略(如“密码长度最小值”),弹出如图所示的对话框。
③在“在模板中定义这个策略设置”前打勾,在框中填入密码的最小长度为 7,单击【确定】完成此项设置操作。
④依次设定“帐户策略”、“本地策略”中的每项安全策略,直至完成安全模板的设置。
至此,自设安全模板 MyTem 创建完毕,可以导入系统中使用。
在这里插入图片描述
图 2.45 新加模板
在这里插入图片描述
图 2.46 输入模板名和描述
在这里插入图片描述
图 2.47 自设模板添加结果
在这里插入图片描述
图 2.48 密码长度最小值设置
6.利用 MBSA 检查和配置系统安全
微软推出的 MBSA(Microsoft Baseline Security Analyzer)是一个强大的系统检测工具,该软件包含大部分的微软软件检测器,除了检测漏洞之外,还提供了详细的解决方案以及补丁下载地址,使用非常方便!
(1)系统漏洞检测
①安装此软件后,首先以管理员身份登录系统,然后运行该软件,进入如图 2.49 所示的界面。从该界面可以了解到,可以单独对一台电脑进行漏洞扫描,也可以同时对一批电脑进行漏洞扫描,还可以查看已有的安全报告。
在这里插入图片描述
图 2.49 MBSA 欢迎界面
②在图 2.49 中单击【扫描一个电脑】,进入如图 2.50 所示的界面。在“计算机名称”和“IP 地址”中输入计算机名和 IP 地址,默认是本机,所以检测本机就可以使用默认设置。“安全报表名称”一栏是安全检测报告的文件名,也可以自由设置。接下来还可以根据需要勾选相应的检测选项,选项中,默认情况下是全部勾选的,如果计算机没有作为服务器,那么“检查 IIS 漏洞”、“检查 SQL 漏洞”建议不要勾选。勾选完毕后,单击【开始扫描】按钮就可以进行检测,进入图 2.51 所示的漏洞扫描过程。
在这里插入图片描述
图 2.51 漏洞扫描过程
(2)查看检测报告
在图 2.51 所示的扫描过程完了以后,就可以看到检测结果了,如图 2.52 所示。
在这里插入图片描述
图 2.52 安全性报告
其中,显示为红色或黄色的“X”表示存在的漏洞或有更新补丁没有安装,当然,显示为绿色的“√”表示没有任何安全问题;雪花图标表示该项目还可以进行优化,也可能是程序跳过了其中的某项测试;感叹号表示尚有更详细的信息;绿色的对勾表示该项目已通过测试;“已扫描什么”表明已经检查的项目,“详细结果”详细说明了该项目中出现的问题;“如何去纠正”说明了解决的方式。
这里单击图 2.52 中带“X”的“Windows Security Updates”条目的【详细结果】可进入如图 2.53 所示的界面。
在这里插入图片描述
图 2.53 详细结果
单击【如何去纠正】按钮,在弹出的窗口中显示了有关如何解决此漏洞的解决方案;根据提示,可以修改不符合安全性要求的设置。
在完成漏洞扫描并给予修改后,可以再次进行漏洞扫描,查看修改后的设置是否已经达到安全要求。

1.用 IIS 建立高安全性的 Web 服务器
为保护 Windows 2003 Server 系统的安全性,确认 IIS 与系统安装在不同的分区。如果IIS 安装在系统分区,IIS 的安全漏洞可直接威胁到系统的安全,建议卸载重新安装。
(1)删除不必要的虚拟目录
打开“:\Inetpub\wwwroot”(其中代表 IIS 安装所在分区的盘符),删除在 IIS 安装完成后,默认生成的所有目录,这些目录是众所周知的,容易给攻击者留下入侵的机会。
(2)停止默认 Web 站点
依次打开“控制面板”→“管理工具”→“Internet 信息服务(IIS)管理器”,右键“默认站点”,在弹出的菜单中选择【停止】,并根据实际需要启用自己创建的 Web 站点,如图 2.54所示。
默认 Web 站点的根目录,默认在 Inetpub\wwwroot,还有其它一序列的参数设置也都是众所周知的,如果采用这些默认设置,将大大减小攻击难度。
(3)IIS 中的文件和目录进行分类,区别设置权限
对于 Web 主目录中的文件和目录,单击鼠标右键,在“属性”中按需要给它们分配适当权限。一般情况下,静态文件允许读,拒绝写;ASP、PHP 等脚本文件、exe 可执行程序等允许执行,拒绝读、写;通常不要开放写权限。此外,所有的文件和目录要将 Everyone用户组的权限设置为只读权限,甚至删除 Everyone 组用户对 Web 目录的访问权限。
在这里插入图片描述
图 2.54 停止默认 Web 站点,启用自己的 Web 站点
(4)删除不必要的应用程序映射
在如图 2.54 所示的窗口中,右键需要配置的 Web 网站,在弹出的菜单中选择【属性】,在接下来窗口中选择【主目录】选项卡,如图 2.55 所示。单击【配置】按钮,进入如图 2.56所示的“应用程序配置”窗口,根据实际需要删除不必要的程序映射。以避免攻击者利用这些程序映射存在的漏洞对系统进行攻击。
在这里插入图片描述
图 2.55 主目录配置
在这里插入图片描述
图 2.56 应用程序映射
(5)维护日志安全
在如图 2.54 所示的窗口中,右键需要配置的网站,选择【属性】,并在弹出的“属性”窗口中选择【网站】选项卡,并在“启用日志记录”选项前打勾,如图 2.57 所示。单击【属性】按钮,进入如图 2.58 所示的窗口。点击【浏览】按钮或者直接在输入框中输入修改后的日志存放路径即可。
修改路径的日志文件要适当设置权限,它的文件权限建议 Administrators 和 SYSTEM 用户组用户为完全控制,Everyone 为只读;同时建议与 Web 主目录文件放在不同的分区,以增加攻击者利用路径浏览日志存放的路径难度,防止攻击者恶意篡改日志。
(6)修改端口值
在“Internet 信息服务(IIS)管理器”中,右击需要配置的网站,选择【属性】。进入如图2.57 所示的窗口,Web 服务器默认端口值为 80,这是众所周知的,而端口号是攻击者可以利用的一个便利条件。将端口号改为其它值,可以增加安 全性,当然也会给用户访问带来不便,系统管理员根据需要决定是否采用此条策略。
至此,简单的 Web 服务器安全配置已完成。事实上,虽然这些安全配置可以在很大程度上提高 Web 服务器的安全性,但作为真正实用的 Web 服务器,每天要接受大量的访问甚至大量的攻击,只有这些配置是远远不够的,还要采用一序列的安全措施,例如防火墙技术,网站防注入技术等。
在这里插入图片描述
图 2.57 启用日志记录
在这里插入图片描述
图 2.58 修改日志存放路径
在这里插入图片描述
图 2.59 修改端口值
2.FTP 服务器的安全配置
(1)停止默认 FTP 站点。
为了避免使用众所周知的默认 FTP 服务器设置,打开【开始】→【程序】→【管理工具】→【Internet 服务管理器】,右键“默认 FTP 站点”,在弹出的菜单中单击【停止】,当然,可以根据需要启用 FTP 站点,如图 2.60 所示。
在这里插入图片描述
图 2.60 停止默认的 FTP 站点,并启用自己的 FTP 站点
(2)FTP 选项卡内容里面,将默认的 TCP 端口的“21”改为其它值,具体的值可以管理员自行决定。
如图 2.61 所示,FTP 协议默认端口 21 已经被改成 25,改成其它的端口值使攻击者无法得到服务器的端口号,从而增大了攻击难度,但同时也会给用户带来不便。
在这里插入图片描述
图 2.61 修改端口值
(3)在 FTP 站点选项卡里,选中“启用日志记录”,如图 2.61 所示,单击【属性】按钮,弹出如图 2.62 所示的对话框。修改文件日志目录,将日志目录和 FTP 主目录分放在不同的路径下,并参照 Web 服务器的权限设置,设置文件和文件目录的权限,以保护日志的安全性。
在这里插入图片描述
图 2.62 修改日志存放目录
(4)在图 2.61 所示的安全账号选项卡里中,取消“允许匿名连接”选项,如图 2.63所示。鼠标右键图 2.60 所示的“MyFtp”站点,在弹出的菜单中选择【权限】,进入如图 2.64所示的窗口,删除其他一切用户,只保留 Administrators 用户组。这就要求只有知道账号和
在这里插入图片描述
图 2.63 取消匿名连接
密码的管理员才能登录和管理 FTP 服务器,限制了匿名用户等其它用户的连接行为。
在这里插入图片描述
图 2.64 只保留管理员账号
(5)在图 2.61 中选择【主目录】选项卡,设置 FTP 主目录,注意主目录不能放在系统磁盘分区上,并设置读取的权限,如图 2.65 所示。
在这里插入图片描述
图 2.65 FTP 主目录和用户权限
(6)在【目录安全性】选项卡中添加被拒绝或允许访问的 IP,如图 2.66 所示。
在选中【授权访问】的情况下,点击【添加】按钮可以添加被拒绝的 IP 或 IP 组,其它未提到的 IP 视为允许访问,在选中【拒绝访问】的情况下,点击【添加】按钮可以添加被允许的 IP 或 IP 组,其它未提到的 IP 视为禁止访问。
在这里插入图片描述
图 2.66 添加拒绝/允许访问的 IP
1.帐户和安全口令
(1)查看和添加帐户
①使用系统管理员帐户 root 登录文本模式,输入下面的命令行

[root@localhost root]# useradd myusername
  • 1

使用 useradd 命名新建名为 myusername 的新账号。
②使用 cat 命令查看账号列表,输入以下命令

[root@localhost root]# cat /etc/shadow
  • 1

得出列表最后的信息为:

gdm:!!:13999:0:99999:7:::postgres:!!:13999:0:99999:7:::
desktop:!!:13999:0:99999:7:::
dengshaoxun:$1$nmE9rWdY$LJkV9ohwaBJBOW.mRW1FH1:13999:0:99999:7:::
myusername:!!:14147:0:99999:7:::
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述

用如下命令切换到 myusername 帐户,然后再使用 cat 命令查看帐户清单,如果刚才的用户添加安全,那么普通用户 myusername 不能查看该文件的权限,提示如下:

[root@localhost root]# su myusername
[myusername@localhost root]$ cat /etc/shadow
cat: /etc/shadow: 权限不够
  • 1
  • 2
  • 3

在这里插入图片描述
(2)添加和更改密码
切换到 root 账号,添加 myusername 密码

[root@localhost root]# passwd myusername
  • 1

输入以上命令后,依次出现以下提示:

Changing password for user myusername.
New password:
Retype new password:
passwd: all authentication tokens updated successfully. 
  • 1
  • 2
  • 3
  • 4

注意:系统管理员无需输入原理密码即可利用 passwd 命令添加或修改任意用户的密码,但是普通用户只能修改自己的密码。在输入密码时,Linux 系统不会回显输入的密码数据。
在这里插入图片描述
(3)设置帐户管理
输入命令行

root@localhost root]# chage -m 0 -M 90 -E 0 -W 10 myusername
  • 1

此命令强制用户 myusername 首次登录时必须更改口令,同时还强制该用户以后每 90 天更改一次口令,并提前 10 天提示。
(4)帐户禁用与恢复
①输入下列命令行,以管理员身份锁定新建的 myusername 帐户,并出现锁定成功的提示。

[root@localhost root]# passwd -l myusername
Locking password for user myusername.
passwd: Success
  • 1
  • 2
  • 3

此刻如果使用 su 切换到 myusername 账号,则出现以下提示:

[root@localhost root]# su myusername
Your account has expired; please contact your system administrator
su: incorrect password
  • 1
  • 2
  • 3

表明锁定成功。
②输入以下命令行,检查用户 myusername 的当前状态

[root@localhost root]# passwd -S myusername
  • 1

Password locked. ③如果要将锁定帐户解锁,输入以下命令行,并出现相应的解锁提示

[root@localhost root]# passwd -u myusername
Unlocking password for user myusername.
passwd: Success.
  • 1
  • 2
  • 3

在这里插入图片描述
(5)建立用户组,将指定的用户添加到用户组中
①输入以下命令,建立名为 mygroup 的用户组

[root@localhost root]# groupadd mygroup
  • 1

②如果要修改用户组的名称,使用如下命令行

[root@localhost root]# groupmod -n mygroup1 mygroup
  • 1

将新建的用户组更改更名为 group1。
③输入以下命令,将用户 myusername 加入到新建的组 mygroup1 中并显示提示

[root@localhost root]# gpasswd -a myusername mygroup1
Adding user myusername to group mygroup1
  • 1
  • 2

④用下面的命令将 myusername 设置为该用户组的管理员

[root@localhost root]# gpasswd -A myusername mygroup1
  • 1

注意:被设置为管理员的用户可以将其它用户加入该组中,普通用户则没有此权限。
在这里插入图片描述
(6)设置密码规则
使用命令[root@localhost root]# vi /etc/login.defs 编辑/etc/login.defs 文件

# *REQUIRED*
# Directory where mailboxes reside, _or_ name of file, relative to the
# home directory. If you _do_ define both, MAIL_DIR takes precedence.
# QMAIL_DIR is for Qmail
#
#QMAIL_DIR Maildir
MAIL_DIR /var/spool/mail
#MAIL_FILE .mail
# Password aging controls:
#
# PASS_MAX_DAYS Maximum number of days a password may be used.
# PASS_MIN_DAYS Minimum number of days allowed between password
changes.
# PASS_MIN_LEN Minimum acceptable password length.
# PASS_WARN_AGE Number of days warning given before a password expires.
#
PASS_MAX_DAYS 99999
PASS_MIN_DAYS 0
PASS_MIN_LEN 5
PASS_WARN_AGE 7
#
# Min/max values for automatic uid selection in useradd
#
UID_MIN 500
UID_MAX 60000
#
# Min/max values for automatic gid selection in groupadd
#
GID_MIN 500
GID_MAX 60000
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30

将 PASS_MIN_LEN 参数改为 8,PASS_MAX_DAYS 参数改为 90 天。
在这里插入图片描述
在这里插入图片描述
(7)为帐户和组相关系统文件加上不可更改属性,防止非授权用户获得权限
①输入以下命令为密码文件加上不可更改属性

[root@localhost root]# chattr +i /etc/passwd
  • 1

此刻若使用如下命令新建用户:

[root@localhost root]# useradd dsx
  • 1

出现不可更改提示:

useradd: unable to open password file
  • 1

②可用同样的方法锁定/etc/shadow(用户口令加密文件)、/etc/group(用户组名列表)以及/etc/gshadow(组密码文件)。
③如果要去除文件的不可修改属性,则输入以下命令

[root@localhost root]# chattr -i /etc/passwd
  • 1

(8)删除用户和用户组
①输入以下命令,删除新建的用户

[root@localhost root]# userdel myusername
  • 1

②输入以下命令,删除新建的用户组

[root@localhost root]# groupdel mygroup1
  • 1

在这里插入图片描述
(1)新建文件夹和文件
①在终端输入下面的命令行:

[root@localhost root]# mkdir folder
  • 1

将在 root 目录下新建名为 folder 的文件夹。
②用 mkdir 命令在 folder 文件夹下建立一个名为 childfolder 的子文件夹:

[root@localhost root]# mkdir folder/childfolder
  • 1

③用 cd 命令进入 child 文件夹下,并建立一个名为 newfile 的文件:

[root@localhost folder]# cd folder
[root@localhost folder]# touch newfile
  • 1
  • 2

(2)编辑文件
①用 vi 命令编辑 newfile 文件,在“插入”模式下插入:

This is a newfile. 
  • 1

②按 ECS 键返回命令行格式,输入:“:wq”,保存退出。
(3)查看文件内容和相关信息
①使用 cat 命令查看文件内容

[root@localhost folder]# cat newfile
  • 1
This is a newfile. 
  • 1

②用 ll 命令查看相关的文件信息,输入如下:

[root@localhost folder]# ll newfile
  • 1

系统回显:

-rw-r--r-- 1 root root 19 925 23:57 newfile
  • 1

(4)设置文件的所属用户、用户组和权限
①用 chmod 命令将 newfile 文件的访问权限设置为所属用户有读写和执行的权限,用户组有读写的权限,其他用户没有任何权限。命令行如下:

[root@localhost folder]# chmod 750 newfile
  • 1

再次查看并记录用户权限:

[root@localhost folder]# ll newfile
-rwxr-x--- 1 root root 19 925 23:57 newfile
  • 1
  • 2

②分别使用 root 和 myusername 用户,尝试读写操作并记录试验结果。步骤如下:
root 用户:

[root@localhost folder]# cat newfile
This is a newfile. 
  • 1
  • 2

在这里插入图片描述
使用 myusername 用户:

[myusername@localhost folder]$ cat newfile
cat: newfile: 权限不够
  • 1
  • 2

注意:对于 root 用户,拥有至高无上的权利,可以访问并编辑任何文件。而其他用户不行。
在这里插入图片描述
3.查看和更改 PAM 模块设置
(1)查看用于控制口令选择和口令时效的 PAM 模块设置
①查看/etc/pam.d 文件夹中的文件列表:

[root@localhost root]# ls /etc/pam.d
  • 1

②打开文件/etc/pam.d/passwd,查看与用户口令有关的 PAM 设置。

[root@localhost root]# cat /etc/pam.d/passwd
#%PAM-1.0
auth required pam_stack.so service=system-auth
account required pam_stack.so service=system-auth
password required pam_stack.so service=system-auth
  • 1
  • 2
  • 3
  • 4
  • 5

3 查看文件/etc/pam.d/system-auth,结果如下:

[root@localhost root]# cat /etc/pam.d/system-auth
  • 1

显示:

#%PAM-1.0
# This file is auto-generated.
# User changes will be destroyed the next time authconfig is run.
auth required /lib/security/$ISA/pam_env.so
auth sufficient /lib/security/$ISA/pam_unix.so likeauth nullok
auth required /lib/security/$ISA/pam_deny.so
account required /lib/security/$ISA/pam_unix.so
password required /lib/security/$ISA/pam_cracklib.so retry=3 type=
password sufficient /lib/security/$ISA/pam_unix.so nullok use_authtokmd5 shadow
password required /lib/security/$ISA/pam_deny.so
session required /lib/security/$ISA/pam_limits.so
session required /lib/security/$ISA/pam_unix.so
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

在这里插入图片描述
④结合试验原理部分,解释口令部分的 PAM 设置。
在上面的 PAM 设置文件实例中,pam_unix.so 分别指定为 auth、password、account等 3 种模块。其中,作为 auth 模块,表示 pam_unix 模块将被用来进行 auth 类型的身份验证,即通过提示用户提供口令对用户进行身份认证,它后面的 nullok 参数表示也允许没有口令的用户,use_authtok 参数将使模块为从前面对模块中接受的口令重新设置新的口令。作为 password 模块,表示被用来更新口令,后面的 nullok 参数表示允许一个空口令的修改,md5 参数表示使用 md5 作为口令散列算法,shadow 表示使用阴影文件。作为 Account 模块,表示被用来验证用户的账户信息。
此外,可以看出模块 pam_env.so 在此处用于 auth 即身份认证模块。Pam_cracklib.so, 之用作 password 类型模块,用于检查一个口令的强度和长度,在这里可以设置密码的最小长度,以及最多失败登录次数。
(2)限制 su 命令的使用用户
①输入下面的命令行,用 cat 命令查看系统中是否存在名为 wheel 的用户组。如不存在,则新建该用户:

[root@localhost root]# cat /etc/group
  • 1

显示:

root:x:0:root ……
wheel:x:10:root
mail:x:12:mail ……
  • 1
  • 2
  • 3

在这里插入图片描述
在这里插入图片描述
②新建用户 newuser,并将其加入 wheel 组中

[root@localhost root]# adduser newuser
[root@localhost root]# gpasswd -a newuser wheel
Adding user newuser to group wheel
  • 1
  • 2
  • 3

③再次查看组信息,终端显示

root:x:0:root ……
wheel:x:10:root,newuser
mail:x:12:mail
  • 1
  • 2
  • 3

在这里插入图片描述
④输入下面的命令行,用 vi 编辑 su 文件(/etc/pam.d/su):

[root@localhost root]# vi /etc/pam.d/su
  • 1

在文件的头部加入如下的一行,然后保存退出。

auth required /lib/security/$ISA/pam_wheel.so group=wheel
  • 1

⑤输入下面的命令行,更改文件权限,限制只有 wheel 用户组的成员可以使用 su 命令。

[root@localhost root]# chown root:wheel /bin/su
[root@localhost root]# chmod 4750 /bin/su
  • 1
  • 2

⑥用 su 命令在 wheel 用户成员 root、newuser 以及普通用户 myusername 之间相互切换,可以看到如下 myusername 用户被限制使用 su 命令的结果:

[root@localhost root]# su newuser
[newuser@localhost root]$ su myusername
Password:
[myusername@localhost root]$ su root
bash: /bin/su: 权限不够
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
4.检查 syslog 日志设置以及日志文件
5.(1)打开/etc/syslog.conf 文件,查看 syslog 日志的相关设置

myusername@localhost root]$ cat /etc/syslog.conf
  • 1

回显如下:

# Log all kernel messages to the console.
# Logging much else clutters up the screen.
#kern.* /dev/console
# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;news.none;authpriv.none;cron.none /var/log/messages
# The authpriv file has restricted access.
authpriv.* /var/log/secure
# Log all the mail messages in one place.
mail.* /var/log/maillog
# Log cron stuff
cron.* /var/log/cron
# Everybody gets emergency messages
*.emerg *
# Save news errors of level crit and higher in a special file.
uucp,news.crit /var/log/spooler
# Save boot messages also to boot.log
local7.* /var/log/boot.log
#
# INN
#
news.=crit /var/log/news/news.crit
news.=err /var/log/news/news.err
news.notice /var/log/news/news.notice
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24

通过仔细阅读此文件内容,可理解各项设置的意义,可以找出与电子邮件、用户身份认证以及系统不可相关的操作和大部分记录消息存储的文件。
在这里插入图片描述
在这里插入图片描述
②打开/var/log/message 文件,查看系统的相关记录消息,找出与用户身份认证的记
录。
③新建用户 user,并以该用户名重复 2 次失败的系统登录
④再次查看/var/log/message 文件,查看关于失败登录的记录消息如下

Sep 26 03:09:31 localhost sshd(pam_unix)[2537]: authentication failure; logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=192.168.0.10 user=loginuserSep 26 03:09:51 localhost sshd(pam_unix)[2537]: 2 more authentication failures;
logname= uid=0 euid=0 tty=NODEVssh ruser= rhost=192.168.0.10 user=loginuser
  • 1
  • 2

在这里插入图片描述
1.Apache 服务器的安全配置
(1)Apache 的安装
通过下面命令查看是否安装了 Apache

[root@localhost /]# rpm -qa|grep httpd
  • 1

如果回显如下内容,则说明已经安装了 Apache

httpd-manual-2.0.40-21
httpd-2.0.40-21
redhat-config-httpd-1.0.1-18
  • 1
  • 2
  • 3

如果系统没有安装 Apache,可以按以下步骤安装:
①将 RedHat9.0 的第一张安装光盘放入光驱,挂载:

[root@localhost root]# mount /mnt/cdrom
  • 1

②进入光盘的 RedHat/RPMS 目录:

[root@localhost root]# cd /mnt/cdrom/RedHat/RPMS
  • 1

③安装所需要的 RPM 包:

[root@localhost RPMS]# rpm -ivh httpd-2.0.40-21.i386.rpm
[root@localhost RPMS]# rpm -ivh httpd-manual-2.0.40-21.i386.rpm
  • 1
  • 2

④退出安装目录,卸载光盘

[root@localhost RPMS]# cd ~
[root@localhost root]# umount /mnt/cdrom
  • 1
  • 2

(2)Apache 的启动
用下面命令查看 Apache 是否启动:

[root@localhost root]# service httpd status
  • 1

如果出现以下信息:

httpd (pid 3066 3065 3064 3063 3062 3061 3060 3059 3056) 正在运行...
  • 1

则说明 Apache 已经启动。
如出现以下信息:

httpd 已停
  • 1

则说明 Apache 尚未启动
用下面命令启动 Apache:

[root@localhost root]#service httpd start
  • 1

用下面命令可以查看 httpd 的所有运行进程:

[root@localhost root]# ps -ef|grep httpd
  • 1

显示如下:

root 3096 2541 0 05:59 pts/0 00:00:00 grep httpd
  • 1

在这里插入图片描述
(3)Apache 的配置
启动了 Apache 后,在其默认配置下,已经可以提供服务了,在客户机的 IE 浏览器地址
栏键入服务器 IP 地址(192.168.0.20),可以出现图 2.67 所示的网页。
在这里插入图片描述
图 2.67 Apache 的检测页
这是 httpd 服务的检测页,当在客户机上可以打开该页时,说明服务器已经正常工作了。
下面对 Apache 进行一些基本配置,体会配置文件的作用。用 vi 编辑 Apache 的配置文件 httpd.conf:

[root@localhost root]# vi /etc/httpd/conf/httpd.conf
  • 1

对下面的几项参数进行配置:

KeepAlive On //将 KeepAlive 的值设为 On 来提高访问性能
MaxClients 100 //根据服务器容量和性能修改该值,默认值是 150,本次实验中,我们设定值为 50
ServerAdmin //该地址是服务器管理员的电子邮件地址,可以键入常用邮箱
ServerName //该处为设置服务器的正式域名,在本例中,我们仍采取 IP 地址登录,这一步不进行设置,读者也可根据个人情况进行设置
DirectoryIndex //该处为添加默认主页文件名
IndexOptions //在该处添加 FoldersFirst,表示让目录列在文件的前面
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述
在这里插入图片描述
(4)访问控制
这里对服务器信息的访问为例,说明访问控制的配置方法。下面的实验中,通过配置httpd.conf 文件中的访问控制规则,只允许来自 IP 地址为 192.168.0.10 的用户访问/server-info,而拒绝其它用户的访问。
①修改主配置文件:

[root@localhost root]# vi /etc/httpd/conf/httpd.conf
  • 1

去掉注释符使下面的配置语句有效,改动如下:

<Location /server-info>
SetHandler server-infoOrder deny,allow
Deny from all
Allow from 192.168.0.10
</Location>
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
②重启 httpd:

[root@localhost root]# service httpd restart
  • 1

③在客户机 192.168.0.10 上连接 http://192.168.0.20/server-info,如图 2.68 所示。
在这里插入图片描述
图 2.68 Apache 配置信息
出 现 图 2.68 所 示 的 网 页 连 接 , 说 明 192.168.0.10 客 户 机 可 以 访 问http://192.168.0.20/server-info。
④在其它客户机上连接 http://192.168.0.20/server-info 如图 2.69 所示。
在这里插入图片描述
图 2.69 禁止查看 server-info
出 现 如 图 2.69 所 示 的 网 页 连 接 , 说 明 其 它 客 户 机 被 禁 止 访 问http://192.168.0.20/server-info,即访问控制机制生效。
(5)认证与授权
下面采用配置 httpd.conf 文件的方法,实现用户访问/var/www/html/TestWeb 目录下的文件时进行身份认证(若配置文件中没有需要自己将如下代码写入配置文件,且需要创建TestWeb 目录)。
①修改主配置文件:

<Directory "/var/www/html/TestWeb">
AllowOverride None
AuthType Basic
AuthName "security" AuthUserFile /var/www/passwd/security
Require valid-user
</Directory>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

在这里插入图片描述

②创建口令文件 security, 并添加一个用户 testwebuser,密码 bamboo,域 security:

[root@localhost root]# cd /var/www
[root@localhost www]# mkdir passwd
[root@localhost www]# cd passwd
[root@localhost passwd]# htpasswd -c security testwebuser
New password:
Re-type new password:
Adding password for user testwebuser
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
③改口令文件的所有者和用户组均为 apache:

[root@localhost passwd]# chown apache.apache security
  • 1

④重启 httpd:[root@localhost passwd]# service httpd restart
在这里插入图片描述
⑤在客户机上登录 http://服务器 IP 地址/private/,显示如图 2.70 所示的页面。
在这里插入图片描述
图 2.70 用户认证
在图 2.70 中输入用户名和密码 testwebuser/bamboo,则会显示如图 2.71 所示的用户认证通过的页面。
在这里插入图片描述
图 2.71 用户认证通过页面
⑥如果不输入用户名和口令,直接取消,会出现如图 2.72 所示页面。
在这里插入图片描述
(6)日志的管理和统计分析
根据配置文件中对错误日志和访问日志的配置,查看错误日志和访问日志。
例如,如果 httpd.conf 配置文件中的配置为;

ErrorLog /etc/httpd/logs/error_log
CustomLog /etc/httpd/logs/access_log
  • 1
  • 2

通过 cat 命令查看错误日志和访问日志:

[root@localhost host]#cat /etc/httpd/logs/error_log
[root@lcalhost host]#cat /etc/httpd/logs/access_log
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
2.vsftpd 服务器的安全配置
(1)vsftpd 的安装和启动
在 RedHat 9.0 中,完全安装时 vsftpd 是已经安装好的,查看是否已安装 vsftpd,可通过下面命令:

[root@localhost root]# rpm -qa|grep vsftpd
  • 1

如果显示:vsftpd-1.1.3-8 则说明已经安装。
如果未安装,可以按照下面步骤安装:
将 Red Hat Linux9.0 的第 3 张安装光盘放入光驱:

[root@localhost root]# mount /mnt/cdrom
[root@localhost root]# cd /mnt/cdrom/RedHat/RPMS
[root@localhost RPMS]# rpm -ivh vsftpd-1.1.3-8.i386.rpm
[root@localhost root]# umount /mnt/cdrom
  • 1
  • 2
  • 3
  • 4

在这里插入图片描述
安装后,可通过下面命令启动和停止 vsftpd:
[root@localhost root]# service vsftpd start
[root@localhost root]# service vsftpd stop
在这里插入图片描述
(2)独立 FTP 服务器的安全配置
RedHat Linux9.0 的 vsftpd 服务器在默认情况下被配置为以独立方式运行,作为一个功能强大的独立 FTP 服务器提供对外服务,下面我们首先介绍独立 FTP 服务器的安全配置方法。
用 vi 编辑 FTP 的配置文件/etc/vsftpd/vsftpd.conf,配置指令参数以提高 FTP 服务器的安全性。下面是常用的安全配置选项。
①禁止匿名用户登录:

anonymous_enable=NO //不允许匿名登录 FTP
anon_upload_enable=NO //禁止匿名用户上传文件
anon_mkdir_write_enable=NO //禁止匿名用户的创建目录和写的权限
  • 1
  • 2
  • 3

②对本地用户的登录和访问进行控制:

允许本地用户登录:local_enable=YES
允许本地用户的写权限:write_enable=YES
利用 vsftpd.user_list 文件对本地用户的访问进行控制:userlist_enable=YES
  • 1
  • 2
  • 3

③控制用户登录后能切换到自身根目录以外的目录
当 chroot_local_user=YES,表示本地用户不局限于在自己根目录下活动:
当 chroot_local_user=NO,且 chroot_list_enable=YES,chroot_list_file=/etc/vsftpd.chroot_list
时,表示在该文件列表里添加的用户不局限于在自己根目录下活动,其它用户全部受限。
④设置日志选项:

xferlog_enable=YES //激活对上传/下载活动的日志记录
xferlog_file=/var/log/vsftpd.log //采用默认的日志文件名
xferlog_std_format=YES //指定日志文件为标准的 FTP 服务端日志格式
  • 1
  • 2
  • 3

⑤设置安全选项:

connect_from_port_20=YES //确定 FTP 的数据传输端口从 20 开始
pasv_min_port=50000 //设置客户端连接时的端口起始范围
pasv_max_port=50000 //设置客户端连接时端口结束范围,这个参数与上一条参数共同限制了客户端连接时的端口范围,提高了安全性。
  • 1
  • 2
  • 3

⑥设置性能选项:

idle_session_timeout=600 //会话空闲时间 600s 后中断
data_connection_timeout=120 //数据连接时间 120s 后中断
accept_timeout=60 //客户端空闲 60s 后中断
connect_timeout=60 //客户端中断 60s 后自动激活连接
max_clients=10 //客户端并发连接数
max_per_ip=1 //每个客户端的最大并发连接数
local_max_rate=50000 //本地用户的最大传输速率为 50kb/s
anno_max_rate=50000 //匿名用户的最大传输速率为 30kb/s
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

在这里插入图片描述
⑦独立模式下和其它认证方法的结合:

listen=yes //vsftpd 服务器以独立运行模式运行,如果由 xinetd 程序运行,此功能需停用
tcp_wrappers=YES //vsftpd 与 tcp wrapper 结合共同维护安全,可利用 tcp wrapper 中的 housts.allow 和 housts.deny 文件定义允许和拒绝连接的主机
pam_service_name=vsftpd //vsftpd 使用 PAM 服务的名称
  • 1
  • 2
  • 3

(3)xinetd 方式下 FTP 服务器的安全配置
vsftpd 服务器除了可以被配置为以独立方式运行外,还可以配置为由 xinedtd 启动。如果 FTP 仅作为计算机或服务器的辅助功能,则可配置 vsftpd 服务器由 xinetd 自动启动,以减少维护强度。具体配置步骤如下。
①修改 vsftpd.conf 配置文件
在下面的配置参数前添加注释符“#”,或者将其布尔值改为 NO:

#listen=yes
#tcp_wrappers=YES
  • 1
  • 2

在这里插入图片描述
②编辑 xinetd 配置文件拷贝 vsftpd 中自带的 vsftpd.xinetd 文件到/etc/xinetd.d 目录:

cp/usr/share/doc/vsftpd-1.1.3/vsftpd.xinetd /etc/xinetd.d/
  • 1

在这里插入图片描述
编辑 vsftpd.xinetd 文件:
将文件中 disable=yes 修改为 disable=no
在{}中添加限制主机访问的语句:

only_from IP 或主机名 //只允许指定 IP 地址或主机名的计算机用户访问
no_acess IP 或主机名 //限制指定 IP 地址或主机名的计算机用户访问
  • 1
  • 2

在这里插入图片描述
在这里插入图片描述
③修改 vsftpd 的启动流程
如原有独立 vsftpd 服务器在运行,则先停止 vsftpd 服务器:

service vsftpd stop
  • 1

删除独立 vsftpd 的启动选项(如若不是 K50,请进路径查看):

rm /etc/rc.d/rc3.d/K50vsftpd
  • 1

重新启动 xinetd 守护进程,由 xinetd 启动 vsftpd:

service xinetd restart
  • 1

在这里插入图片描述

五、思考题

1.如果同一个办公室几个同事共用一台计算机,每个用户如何保证自己信息的安全性,应如何进行安全设置?
答:在Windows操作系统下所有用户都使用自己的普通账号来使用计算机,通过设置各用户的文件访问权限,就可保护共用同一台计算机的多个用户的私人文件,保持用户独立的使用环境和空间。
2.Windows 系统中一个用户用 EFS 加密的数据,另外一个用户能对这些加密数据进行查看、复制吗?
答:不能
3.重新安装 Windows 操作系统对访问使用 EFS 加密的数据有影响吗?
答:有
1.在 IIS 中配置站点时,如何让访问端访问网站时需输入用户名和密码才能进入网站?
答:权限设置,访问端要输入用户名和密码才能进入网站
2.如何让浏览器端某些 ip 用户不能访问网站?
答:权限设置,让他没有权限访问
3.如何配置匿名访问的 ftp 服务器?如何设置 ftp 客户端只能读取数据,而不能写入ftp 文件夹?
答:编辑vsftpd的主配置文件/etc/vsftpd/vsftpd.conf文件,对文件中相关的指令进行添加、修改。设置为只读,不设置读入。
1.在 Linux 中,如何设置一个文件夹的访问权限?
答:通过设置chmod命令修改文件、文件夹的访问权限
2.在 Linux 中,如何限制其它用户使用 su 命名?
答:禁止非whell组用户切换到root,或编辑/etc/pam.d/su将部分#去掉
3.在 Linux 中,如何启用和禁用用户账号?
答:通过usermod -L username禁用用户,或在/etc/passwd用户前加#
1.在 Apache 安全配置中,如何设置只允许一部分 ip 访问网站?
答:Order deny,allow Allow from 192.168.1.10Deny from all
2.在 Apache 安全配置中,如何设置网站文件夹的可读写权限?
答:开启分布式权限
3.在 Apache 安全配置中,如何保证日志文件的安全性?
答:文件夹的拥有者权限需要更改成非root,并将云主机的ssh改成非root,将文件夹中只需要只读的文件,设置成只读,linux 下用命令 “chmod -R 444 文件夹路径”

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/983771
推荐阅读
相关标签
  

闽ICP备14008679号