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