Linux系统配置与安全实践指南

内容分享2小时前发布
0 0 0

table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}

124、从你的系统中删除 myprinter 打印机条目。

a. 点击“解锁”按钮,必要时输入根密码。

b. 在“打印设置”窗口中,右键点击 myprinter 图标并选择“删除”。

c. 出现提示时,再次选择“删除”。

125、在主Apache配置文件中分配给DocumentRoot的目录下创建一个名为index.html的文件。该文件内容应为 “My Own Web Server”。

配置DocumentRoot目录

首先,确定

DocumentRoot

目录,默认情况下为

/var/www/html

然后,使用以下命令创建文件并写入内容:


# echo "My Own Web Server" > /var/www/html/index.html

如果

DocumentRoot

目录不是默认值,将路径替换为实际的

DocumentRoot

目录路径。

126、启动 Apache 网络服务器,并将其设置为在开机时自动启动。检查它是否可以从本地主机的网页浏览器访问。(如果运行正常,你应该会看到显示的文字 “My Own Web Server”。)

在 Red Hat Enterprise Linux(RHEL 6 及更早版本)和较旧的 Fedora 发行版中,以 root 用户身份输入以下命令:


# chkconfig httpd on
# service httpd start

在最近的 Fedora 系统和 RHEL 7 中,使用

systemctl

命令启用并启动

httpd


# systemctl enable httpd.service
# systemctl start httpd.service
# systemctl status httpd.service

之后在本地主机的网页浏览器中访问,若能看到 “My Own Web Server” 则表示运行正常。

127、使用netstat命令查看httpd服务器正在监听哪些端口。

可使用以下命令:


# netstat -tupln | grep httpd

示例输出如下:


tcp6 0 0 :::80 :::* LISTEN 2496/httpd
tcp6 0 0 :::443 :::* LISTEN 2496/httpd

这表明 httpd 进程正在监听 80 和 443 端口。

128、使用openssl或类似命令,创建你自己的RSA私钥和自签名SSL证书。

若openssl包未安装,执行以下命令安装:

bash
# yum install openssl

生成一个1024位的RSA私钥并保存到文件:

bash
# cd /etc/pki/tls/private
# openssl genrsa -out server.key 1024
# chmod 600 server.key


若计划在机器上有多个SSL主机(需要多个IP地址),可使用其他文件名,并确保在Apache配置中指定正确的文件名。在更高安全环境中,可在

openssl

命令行的

genrsa

参数后添加

-des3

参数加密密钥,提示输入密码时按Enter:

bash
# openssl genrsa -des3 -out server.key 1024

若不打算让证书签名或想测试配置,生成自签名证书并保存到

/etc/pki/tls/certs

目录下名为

server.crt

的文件中。

129、配置你的 Apache Web 服务器,使用你的密钥和自签名证书来提供安全(HTTPS)内容。

安装

openssl

包:若未安装,使用命令

bash
# yum install openssl


进行安装。

生成 1024 位 RSA 私钥并保存到文件:

使用命令进入目录

bash
# cd /etc/pki/tls/private


生成私钥

bash
# openssl genrsa -out server.key 1024


设置权限

bash
# chmod 600 server.key


若有多台 SSL 主机,可使用其他文件名,并在 Apache 配置中指定正确文件名;在高安全环境中,可使用加密密钥命令

bash
# openssl genrsa -des3 -out server.key 1024

若不打算让证书签名或测试配置,在

/etc/pki/tls/certs

目录生成自签名证书并保存为

server.crt

文件。

同时,确保

mod_ssl

包已安装

bash
# yum install mod_ssl


该包包含实现 SSL 的模块

mod_ssl.so

和 SSL 主机配置文件

/etc/httpd/conf.d/ssl.conf

,可对其中相关设置进行修改,如:


Listen 443 https



SSLCertificateFile



SSLCertificateKeyFile

等。

130、使用网页浏览器与你的 Web 服务器建立 HTTPS 连接,并查看你创建的证书内容。

在运行 Apache 服务器的系统上,在浏览器的地址栏中输入

https://localhost

。你应该会看到一条消息,显示“此连接不受信任”。

要完成连接,请执行以下操作:

a. 点击“我了解风险”。

b. 点击“添加例外”。

c. 点击“获取证书”。

d. 点击“确认安全例外”。

131、创建一个名为 /etc/httpd/conf.d/example.org.conf 的文件,开启基于名称的虚拟主机功能,并创建一个虚拟主机,实现以下功能:- 监听所有接口的 80 端口- 服务器管理员邮箱为 joe@example.org- 服务器名称为 joe.example.org- 文档根目录为 /var/www/html/example.org- 目录索引至少包含 index.html在文档根目录下创建一个 index.html 文件,文件内容为“Welcome to the House of Joe”。

以下是实现上述需求的步骤:

创建

/etc/httpd/conf.d/example.org.conf

文件,并添加以下内容:


NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin joe@example.org
    ServerName joe.example.org
    DocumentRoot /var/www/html/example.org
    DirectoryIndex index.html
</VirtualHost>

创建

index.html

文件并添加指定内容:


echo "Welcome to the House of Joe" > /var/www/html/example.org/index.html

132、在运行 Web 服务器的机器上,将文本 joe.example.org 添加到 /etc/hosts 文件中本地主机条目的末尾。然后在网页浏览器的地址栏中输入 http://joe.example.org。页面显示时,你应该会看到“Welcome to the House of Joe”。

要完成此操作,可按以下步骤进行:

重新加载上一练习中修改的

httpd.conf

文件:

bash
# apachectl graceful

使用任意文本编辑器编辑

/etc/hosts

文件,使本地主机行如下所示:

127.0.0.1 localhost.localdomain localhost joe.example.org

在运行 httpd 的本地系统的浏览器中,在地址栏输入

http://joe.example.org

以访问 Apache Web 服务器。

133、确定哪个软件包提供了非常安全的 FTP 守护进程服务。

vsftpd 软件包提供了非常安全的 FTP 守护进程服务。

134、在你的系统上安装非常安全的 FTP 守护进程包,并搜索该包中的配置文件。

在 Fedora 或 Red Hat Enterprise Linux 7 系统上,输入以下命令:


# yum install vsftpd
# rpm -qc vsftpd | less

在 Red Hat Enterprise Linux 6 系统上,安装命令同样为:


# yum install vsftpd

搜索配置文件命令为:


# rpm -qc vsftpd | less

如果是 Ubuntu 系统,使用命令:


$ sudo apt-get install vsftpd

安装,搜索配置文件命令不变。

135、启动非常安全的 FTP 守护进程服务,并将其设置为系统启动时自动启动。

在 Fedora 或 Red Hat Enterprise Linux 7 系统上,输入以下命令:


# systemctl start vsftpd.service
# systemctl enable vsftpd.service

在 Red Hat Enterprise Linux 6 系统上,输入以下命令:


# service vsftpd start
# chkconfig vsftpd on

136、在运行FTP服务器的系统上,在匿名FTP目录中创建一个名为test的文件,该文件包含“Welcome to your vsftpd server”这句话。


# echo "Welcome to your vsftpd server" > /var/ftp/test

137、在运行FTP服务器的系统上,使用Web浏览器打开匿名FTP主目录中的测试文件,并确保能看到该文件的内容。

启动Firefox网络浏览器,在地址栏中输入

ftp://localhost/test

,然后按回车键。文本

Welcome to your Very Secure FTP Daemon server

应出现在Firefox窗口中。

138、配置你的 vsftpd 服务器,允许匿名用户将文件上传到名为 in 的目录。

编辑

vsftpd.conf

文件,取消以下两行代码的注释:

anon_upload_enable=YES
anon_mkdir_write_enable=YES

创建上传目录并设置权限:

bash
# mkdir /var/ftp/in
# chown ftp:ftp /var/ftp/in
# chmod 775 /var/ftp/in

确保防火墙开放且 SELinux 布尔值设置正确。

重启 vsftpd 服务。

139、安装 lftp FTP 客户端(如果没有第二台 Linux 系统,则在运行 FTP 服务器的同一主机上安装 lftp)。若无法将文件上传到 in 目录,应该进行哪些检查?


作为 root 用户运行以下命令安装 lftp:

```bash
# yum install lftp

若无法上传文件到 in 目录,重新检查

vsftpd.conf

设置,并查看

/var/ftp/in

目录的所有权和权限,同时检查防火墙、SELinux 和 TCP 包装器是否配置为允许访问该文件。



##140、使用你选择的任意 FTP 客户端,将 kernel.org 目录下的 man - pages - 3.41.tar.gz 文件下载到本地系统的 /tmp 目录。
以下以 lftp 和 gFTP 为例说明操作步骤:

1. 使用 lftp 客户端:
   - 打开终端,输入 `lftp ftp://kernel.org` 连接到 kernel.org 的 FTP 服务器。
   - 输入 `cd` 命令进入包含 `man-pages-3.41.tar.gz` 文件的目录。
   - 输入 `get -O /tmp man-pages-3.41.tar.gz` 命令将文件下载到 /tmp 目录。

2. 使用 gFTP 客户端:
   - 启动 gFTP,在地址栏输入 `ftp://kernel.org`,输入用户名(如 anonymous)并回车连接到服务器。
   - 在右侧窗口中找到包含 `man-pages-3.41.tar.gz` 文件的目录。
   - 选择该文件,点击屏幕中间指向左侧的箭头,在弹出的保存位置窗口中选择 /tmp 目录,然后点击保存开始下载。

##141、在你想用作 NFS 服务器的 Linux 系统上,安装配置 NFS 服务所需的软件包。
对于 Fedora 和 RHEL,NFS 服务器软件可从 `nfs-utils` 软件包获取,若未安装,可使用命令:

```bash
# yum install nfs-utils

进行安装;对于 Ubuntu 及类似系统,需要

nfs-kernel-server

软件包,若未安装,可使用命令:


# apt-get install nfs-kernel-server

进行安装。

142、在NFS服务器上,检查你刚刚启动的NFS服务的状态。

以root用户身份在NFS服务器上输入以下命令:


# systemctl status nfs-server.service

143、在第二个 Linux 系统(NFS 客户端)上,查看 NFS 服务器上可用的共享。(如果没有第二个系统,也可以在同一系统上进行此操作)。如果看不到共享的 NFS 目录,需再次尝试以确保能查看。

下面是从 NFS 客户端输入的命令:


# showmount -e nfsserver

144、在 NFS 客户端上,创建一个名为 /var/remote 的目录,并将 NFS 服务器上的 /var/mystuff 目录临时挂载到该挂载点。

以 root 用户身份在 NFS 客户端输入以下命令:


# mkdir /var/remote
# mount -t nfs nfsserver:/var/mystuff /var/remote

145、从 NFS 服务器将一些文件复制到 /var/mystuff 目录。从 NFS 客户端,确保你能看到刚刚添加到该目录的文件,并确保你不能从客户端向该目录写入文件。

在 NFS 服务器上,输入以下命令复制文件:


# cp /etc/hosts /etc/services /var/mystuff

从 NFS 客户端,使用以下命令确认:


# ls /var/mystuff

应显示

hosts


services

使用:


# touch /var/mystuff/file1

应显示错误信息:


touch: cannot touch '/var/mystuff/file1': Read-only file system

146、启动你的计算机,一旦看到 BIOS 屏幕,按照 BIOS 屏幕上的指示进入设置模式。

启动计算机,当看到 BIOS 屏幕后,根据屏幕上提示按下对应的功能键(如常见的 F1、F2 或 F12 等)进入设置模式。以戴尔工作站为例,看到 BIOS 屏幕后立即按 F2 可进入设置模式。

147、从BIOS设置屏幕,确定你的计算机是32位还是64位,是否支持虚拟化,以及你的网络接口卡是否支持PXE引导。

确定计算机是32位还是64位:

在BIOS设置屏幕中,不同计算机的界面不同,一般可使用箭头键和制表键在不同列之间移动,按回车键选择条目。

以戴尔工作站为例,在“System”标题下,高亮显示“Processor Info”查看处理器类型,若显示相关信息则可知是64位技术计算机,其他计算机可在“Processor Info”或类似部分查看。

确定是否支持虚拟化:

若要运行RHEL系统作为虚拟主机,计算机的CPU必须支持英特尔虚拟技术或AMD安全虚拟机(SVM)。

即便CPU有此支持,也可能未在BIOS中启用。可进入BIOS设置屏幕,查找“Virtualization”选项(可能在“Performance”类别下),确保其设置为“On”。

确定网络接口卡是否支持PXE引导:

以戴尔工作站为例,在“Onboard Devices”标题下,高亮显示“Integrated NIC”并按回车键,右侧出现的“Integrated NIC”屏幕可选择启用或禁用NIC(“On”或“Off”),或启用PXE或RPL(若打算通过网络引导计算机)。

148、重启计算机,在BIOS屏幕消失后,当看到启动Linux系统的倒计时时,应该进行什么操作来进入GRUB引导加载程序?

按任意键进入GRUB引导加载程序。

149、从GRUB引导加载程序添加一个选项,以引导到运行级别1,以便你可以进行一些系统维护。

中断GRUB引导过程,输入“e”选择你想要的引导项,将光标定位到内核行并再次输入“e”;

在引导映像名称后添加运行级别1,即在

kernel

行末尾添加“

1

”;

按“Enter”键返回编辑屏幕;

输入“b”以新选项引导计算机。若要永久保存该选项,需编辑

/boot/grub/grub.conf

文件。

150、系统启动后,如何查看内核环形缓冲区中显示内核启动时活动的消息?

从 shell 输入以下命令:


# dmesg | less

或者在使用 systemd 的系统上,输入:


# journalctl -k

151、在 Fedora 或 RHEL 系统中,进行一次试验性的 yum 更新,并排除所有可用的内核包。


# yum update --exclude='kernel*' (当提示时,若有更新可用,输入 N 以不实际进行更新)

152、检查系统上哪些进程正在监听传入连接。

可以使用

netstat

命令。

命令示例:


# netstat -tupln | grep httpd

该命令列出所有正在监听 TCP(

t

)和 UDP(

u

)服务的进程的名称和进程 ID(

p

),以及它们正在监听的端口号(

n

),并过滤出与

httpd

进程相关的行。

153、检查外部网络接口上哪些端口是开放的。

可以使用

nmap

命令来检查。安装

nmap


yum install nmap

)后,使用系统主机名或IP地址进行扫描,例如:


# nmap 192.168.0.119

输出结果中显示状态为

open

的端口即为开放端口。

154、在一个终端窗口中运行top命令。打开第二个终端窗口,清除页面缓存,然后在top屏幕上查看是否有更多的常驻内存(RES)可用。

要完成此操作,首先在一个终端窗口中输入

top

命令并按回车键,运行

top

命令以监控系统资源使用情况。

接着打开第二个终端窗口,以root用户身份输入以下命令并按回车键:


echo 3 > /proc/sys/vm/drop_caches

此操作会让系统丢弃不活跃的页面缓存。

之后回到第一个运行

top

命令的终端窗口,观察

RES

列的数据,看是否有更多的

RES

内存可用。

155、检查系统d日志中与以下服务相关的日志消息:NetworkManager.service、sshd.service和auditd.service。

可分别输入以下命令:

journalctl -u NetworkManager.service

journalctl -u sshd.service

journalctl -u auditd.service

156、使用单个命令确定您账户的密码有效期以及是否会过期。

可以使用

chage -l username

命令,其中

username

是具体的用户名,然后通过

grep

命令筛选出所需信息,如:


chage -l tim | grep days


chage -l tim | grep Password

157、使用auditd守护进程开始对/etc/shadow文件的写入操作进行审计,然后检查审计设置。

要开始审计,在命令行输入:


# auditctl -w /etc/shadow -p w

要检查审计设置,在命令行输入:


auditctl -l

158、从auditd守护进程生成关于 /etc/shadow 文件的报告,然后关闭对该文件的审计。

要生成报告,在命令行输入:


ausearch -f /etc/shadow

要关闭审计,应先通过以下命令查看当前规则:


auditctl -l

找到针对

/etc/shadow

文件的规则编号,然后使用以下命令删除该规则以关闭对该文件的审计:


auditctl -D <规则编号>

原答案中

auditctl -W /etc/shadow -p w

是添加对文件写操作的审计规则,并非关闭审计的操作。

159、安装 lemon 软件包,损坏 /usr/bin/lemon 文件(可以将 /etc/services 文件复制到该位置),验证该文件是否被篡改,然后移除 lemon 软件包。

在 Linux 系统中可按以下步骤操作:

安装 lemon 包:


yum install lemon

(适用于 Red Hat 系)


apt-get install lemon

(适用于 Debian 系)

损坏文件:


cp /etc/services /usr/bin/lemon

验证文件是否被篡改:

– 对于 Red Hat 系:

rpm -V lemon


– 对于 Ubuntu:

debsums lemon

移除 lemon 包:


yum remove lemon

(适用于 Red Hat 系)


apt-get remove lemon

(适用于 Debian 系)

160、你怀疑系统今天遭受了恶意攻击,重要的二进制文件被修改了。应该使用什么命令来查找这些被修改的文件?

可以在命令行输入

find /bin /sbin /usr/bin /usr/sbin -mtime -1

来查找

/bin


/sbin


/usr/bin


/usr/sbin

目录中被修改的文件。

161、安装并运行chkrootkit,查看系统是否安装了rootkit。

根据不同的发行版,按以下步骤操作:

a. 若为Fedora或RHEL发行版,在命令行输入

yum install chkrootkit

进行安装;

b. 若为Ubuntu或基于Debian的发行版,在命令行输入

sudo apt-get install chkrootkit

进行安装;

c. 安装完成后,在命令行输入

chkrootkit

运行检查并查看结果。

162、安装aide软件包,运行aide命令初始化aide数据库,将数据库复制到正确位置,然后运行aide命令检查系统上的重要文件是否被修改。


# yum install aide
# aide -i
# cp /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
# aide -C

163、使用gpg2实用程序和对称密钥加密文件。

可以使用以下命令实现:

首先使用

tar

命令创建一个压缩的 tar 存档(

backup.tar.gz

):

bash
# tar -cvzf /tmp/backup.tar.gz /etc

然后使用

gpg2

实用程序加密该文件:

bash
# gpg2 -c --force-mdc -o /tmp/backup.tar.gz.gpg /tmp/backup.tar.gz

执行上述命令后,系统会提示你输入并重复输入密码,该密码用于保护加密文件使用的单个密钥。

加密完成后,原始文件会保留,同时会创建一个新的加密文件

backup.tar.gz.gpg

164、使用gpg2工具生成一个公钥环。

可使用以下命令生成密钥对和密钥环,在生成过程中根据提示选择加密算法、密钥大小、有效期、用户ID和密码短语等信息:


$ gpg2 --gen-key

后续可使用以下命令查看生成的密钥环:


$ gpg2 --list-keys
© 版权声明

相关文章

暂无评论

none
暂无评论...