LinuxProbe-Exercise

2022年01月14日 阅读数:3
这篇文章主要向大家介绍LinuxProbe-Exercise,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

第〇章

1.将系统默认的运行目标修改成“多用户的文本界面”模式,可直接用ln命令把多用户模式目标文件连接到/etc/systemd/system/目录:
[root@linuxprobe ~]# ln -sf /lib/systemd/system/multi-user.target /etc/systemd/system/default.target
 
2. 服务的启动、重启、中止、重载、查看状态等经常使用命令:
老系统命令
新系统命令
做用
service foo start
systemctl start httpd
启动服务
service foo restart
systemctl restart httpd
重启服务
service foo stop
systemctl stop httpd
中止服务
service foo reload
systemctl reload httpd
从新加载配置文件(不终止服务)
service foo status
systemctl status httpd
查看服务状态

 

3.服务开机启动、不启动、查看各级别下服务启动状态等经常使用命令
老系统命令
新系统命令
做用
chkconfig foo on
systemctl enable httpd
开机自动启动
chkconfig foo off
systemctl disable httpd
开机不自动启动
chkconfig foo
systemctl is-enabled httpd
查看特定服务是否为开机自启动
chkconfig --list
systemctl list-unit-files --type=httpd
查看各个级别下服务的启动与禁用状况

 

第二章

1.man命令中经常使用按键以及做用
按键
做用
空格键
向下翻一页
PaGe down
向下翻一页
PaGe up
向上翻一页
home
直接前往首页
end
直接前往尾页
/
从上至下搜索某个关键词,如“/linux”
?
从下至上搜索某个关键词,如“?linux”
n
定位到下一个搜索到的关键词
N
定位到上一个搜索到的关键词
q
退出帮助文档

 

2.man命令中帮助信息的结构以及意义
结构名称
表明意义
NAME
命令的名称
SYNOPSIS
参数的大体使用方法
DESCRIPTION
介绍说明
EXAMPLES
演示(附带简单说明)
OVERVIEW
概述
DEFAULTS
默认的功能
OPTIONS
具体的可用选项(带介绍)
ENVIRONMENT
环境变量
FILES
用到的文件
SEE ALSO
相关的资料
HISTORY
维护历史与联系方式

 

3.ps命令中的参数以及做用
参数
做用
-a
显示全部进程(包括其余用户的进程)
-u
用户以及其余详细信息
-x
显示没有控制终端的进程

 

4.grep命令中的参数及其做用
参数
做用
-b
将可执行文件(binary)看成文本文件(text)来搜索
-c
仅显示找到的行数
-i
忽略大小写
-n
显示行号
-v
反向选择——仅列出没有“关键词”的行。

 

5.在整个文件系统中找出全部归属于linuxprobe用户的文件并复制到/root/findresults目录中
[root@linuxprobe ~]# find / -user linuxprobe -exec cp -a {} /root/findresults/ \;

第三章

1.输入重定向中用到的符号及其做用
符号
做用
命令 < 文件
将文件做为命令的标准输入
命令 << 分界符
从标准输入中读入,直到碰见分界符才中止
命令 < 文件1 > 文件2
将文件1做为命令的标准输入并将标准输出到文件2

 

2.输出重定向中用到的符号及其做用
符号
做用
命令 > 文件
将标准输出重定向到一个文件中(清空原有文件的数据)
命令 2> 文件
将错误输出重定向到一个文件中(清空原有文件的数据)
命令 >> 文件
将标准输出重定向到一个文件中(追加到原有内容的后面)
命令 2>> 文件
将错误输出重定向到一个文件中(追加到原有内容的后面)
命令 >> 文件 2>&1
命令 &>> 文件
将标准输出与错误输出共同写入到文件中(追加到原有内容的后面)

 

3.经过标准输出重定向将man bash命令本来要输出到屏幕的信息写入到文件readme.txt中,而后显示readme.txt文件中的内容
[root@linuxprobe ~]# man bash > readme.txt [root@linuxprobe ~]# cat readme.txt
 
4.首先经过覆盖写入模式向readme.txt文件写入多行数据(该文件中已包含上一个实验的man命令信息)
[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt 
[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt 
[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt 
[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt 
[root@linuxprobe ~]# echo "Welcome to LinuxProbe.Com" > readme.txt 
[root@linuxprobe ~]# cat readme.txt Welcome to LinuxProbe.Com
  再经过追加写入模式向readme.txt文件写入一次数据,而后在执行cat命令以后
[root@linuxprobe ~]# echo "Quality linux learning materials" >> readme.txt 
[root@linuxprobe ~]# cat readme.txt Welcome to LinuxProbe.Com Quality linux learning materials
 
5.查看当前目录中某个文件的信息,这里以linuxprobe文件为例。因为这个文件是真实存在的,所以使用标准输出便可将本来要输出到屏幕的信息写入到文件中,而错误的输出重定向则依然把信息输出到了屏幕上。
[root@linuxprobe ~]# ls -l linuxprobe > /root/stderr.txt 
[root@linuxprobe ~]# ls -l linuxprobe 2> /root/stderr.txt
-rw-r--r--. 1 root root 0 Mar 1 13:30 linuxprobe
  以一个不存在的文件进行实验演示
[root@linuxprobe ~]# ls -l xxxxxx > /root/stderr.txt 
cannot access xxxxxx: No such file or directory 
[root@linuxprobe ~]# ls -l xxxxxx 2> /root/stderr.txt [root@linuxprobe ~]# cat /root/stderr.txt 
ls: cannot access xxxxxx: No such file or directory
 
6.不区分标准输出和错误输出,只要命令有输出信息则所有追加写入到文件中
[root@linuxprobe ~]# ls -l linuxprobe &>> readme.txt 
[root@linuxprobe ~]# ls -l xxxxxx &>> readme.txt -rw-r--r--. 1 root root 0 Mar 1 13:30 linuxprobe cannot access xxxxxx: No such file or directory
 
7.使用输入重定向把readme.txt文件导入给wc -l命令,统计一下文件中的内容行数
[root@linuxprobe ~]# wc -l < readme.txt 2

第四章

1.搭建并配置软件仓库
  进入/etc/yum.repos.d目录后建立软件仓库的配置文件:
[root@linuxprobe ~]# cd /etc/yum.repos.d/ 
[root@linuxprobe yum.repos.d]# vim rhel8.repo
  建立挂载点后进行挂载操做,并设置成开机自动挂载
[root@linuxprobe yum.repos.d]# mkdir -p /media/cdrom 
[root@linuxprobe yum.repos.d]# mount /dev/cdrom /media/cdrom
  尝试使用软件仓库的dnf命令来安装Web服务,软件包名称为httpd,安装后出现“Complete!”则表明配置正确
[root@linuxprobe ~]# dnf install httpd -y
 
2.假设在每周1、3、五的凌晨3:25,都须要使用tar命令把某个网站的数据目录进行打包处理,使其做为一个备份文件。
  使用crontab -e命令来建立计划任务,为本身建立计划任务时无须使用-u参数。
  crontab –e命令的具体实现效果和crontab -l命令的结果以下
[root@linuxprobe ~]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
 
3.若是在crond服务中须要同时包含多条计划任务的命令语句,应每行仅写一条。
  例如咱们再添加一条计划任务,它的功能是每周一至周五的凌晨1点自动清空/tmp目录内的全部文件。
  尤为须要注意的是,在crond服务的计划任务参数中,全部命令必定要用绝对路径的方式来写,若是不知道绝对路径,请用whereis命令进行查询
[root@linuxprobe ~]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz /usr/share/man/man1p/rm.1p.gz
[root@linuxprobe ~]# crontab -e
crontab: installing new crontab
[root@linuxprobe ~]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.tar.gz /home/wwwroot
0  1 * * 1-5   /usr/bin/rm -rf /tmp/*

第五章

1.用户的解释器被设置为nologin,则表明该用户不能登陆到系统中
[root@linuxprobe ~]# useradd -d /home/linux -u 8888 -s /sbin/nologin linuxdown
[root@linuxprobe ~]# id linuxdown
uid=8888(linuxdown) gid=8888(linuxdown) groups=8888(linuxdown)

 

2.将用户linuxprobe加入到root用户组中
[root@linuxprobe ~]# usermod -G root linuxprobe

 

3.文件的隐藏属性
                                              chattr命令中的参数及其做用
参数
做用
i
没法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件
a
仅容许补充(追加)内容,没法覆盖/删除内容(Append Only)
S
文件内容在变动后当即同步到硬盘(sync)
s
完全从硬盘中删除,不可恢复(用0填充原文件所在硬盘区域)
A
再也不修改这个文件或目录的最后访问时间(atime)
b
再也不修改文件或目录的存取时间
D
检查压缩文件中的错误
d
使用dump命令备份时忽略本文件/目录
c
默认将文件或目录进行压缩
u
当删除该文件后依然保留其在硬盘中的数据,方便往后恢复
t
让文件系统支持尾部合并(tail-merging)
x
能够直接访问压缩文件中的内容
 
[root@linuxprobe ~]# echo "for Test" > linuxprobe
[root@linuxprobe ~]# chattr +a linuxprobe
[root@linuxprobe ~]# rm linuxprobe
rm: remove regular file ‘linuxprobe’? y
rm: cannot remove ‘linuxprobe’: Operation not permitted

第六章

第七章

1.部署RAID磁盘阵列。
  其中,-C参数表明建立一个RAID阵列卡;
    -v参数显示建立的过程,同时在后面追加一个设备名称/dev/md0,这样/dev/md0就是建立后的RAID磁盘阵列的名称;
    -n 4参数表明使用4块硬盘来部署这个RAID磁盘阵列;
    -l 10参数则表明RAID 10方案;
    最后再加上4块硬盘设备的名称
[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sdb /dev/sdc /dev/sdd /dev/sde
  能够用-D参数进行查看。也能够用-Q参数查看简要信息
[root@linuxprobe ~]# mdadm -Q /dev/md0
  把制做好的RAID磁盘阵列格式化为Ext4格式
[root@linuxprobe ~]# mkfs.ext4 /dev/md0
  建立挂载点,将硬盘设备进行挂载操做
[root@linuxprobe ~]# mkdir /RAID
[root@linuxprobe ~]# mount /dev/md0 /RAID
[root@linuxprobe ~]# df -h
  查看/dev/md0磁盘阵列设备的详细信息,确认RAID级别(Raid Level)、阵列大小(Array Size)和总硬盘数(Total Devices)都是否正确
[root@linuxprobe ~]# mdadm -D /dev/md0
  若是想让建立好的RAID磁盘阵列可以一直提供服务,不会因每次的重启操做而取消,那么必定要记得将信息添加到/etc/fstab文件中
[root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
[root@linuxprobe ~]# cat /etc/fstab
...

 

2. 损坏磁盘阵列及修复
  在确认有一块物理硬盘设备出现损坏而不能再继续正常使用后,应该使用mdadm命令将其移除,而后查看RAID磁盘阵列的状态
[root@linuxprobe ~]# mdadm /dev/md0 -f /dev/sdb
mdadm: set /dev/sdb faulty in /dev/md0
[root@linuxprobe ~]# mdadm -D /dev/md0
  刚刚使用的-f参数是让硬盘模拟损坏的效果。为了可以完全地将故障盘移除,还要再执行一步操做
[root@linuxprobe ~]# mdadm /dev/md0 -r /dev/sdb
mdadm: hot removed /dev/sdb from /dev/md0
   更换硬盘后再次使用-a参数进行添加操做,系统默认会自动开始数据的同步工做。使用-D参数便可看到整个过程和进度(用百分比表示)
[root@linuxprobe ~]# mdadm /dev/md0 -a /dev/sdb
mdadm: added /dev/sdb
[root@linuxprobe ~]# mdadm -D /dev/md0

 

3.建立一个RAID 5磁盘阵列+备份盘。
  参数-n 3表明建立这个RAID 5磁盘阵列所需的硬盘数,参数-l 5表明RAID的级别,而参数-x 1则表明有一块备份盘。当查看/dev/md0(即RAID 5磁盘阵列的名称)磁盘阵列的时候,就能看到有一块备份盘在等待中了。
[root@linuxprobe ~]# mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sdb /dev/sdc /dev/sdd /dev/sde
...
[root@linuxprobe ~]# mdadm -D /dev/md0
...
   如今将部署好的RAID 5磁盘阵列格式化为Ext4文件格式,而后挂载到目录上,以后就可以使用了
[root@linuxprobe ~]# mkfs.ext4 /dev/md0
...
[root@linuxprobe ~]# mkdir /RAID
[root@linuxprobe ~]# echo "/dev/md0 /RAID ext4 defaults 0 0" >> /etc/fstab
   由3块硬盘组成的RAID 5磁盘阵列,其对应的可用空间是n-1,也就是40GB。
 
4.根据需求把合并后的卷组切割出一个约为150MB的逻辑卷设备,最后把这个逻辑卷设备格式化成Ext4文件系统后挂载使用。
  第1步:让新添加的两块硬盘设备支持LVM技术。
[root@linuxprobe ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
  第2步:把两块硬盘设备加入到storage卷组中,而后查看卷组的状态。
[root@linuxprobe ~]# vgcreate storage /dev/sdb /dev/sdc Volume group "storage" successfully created [root@linuxprobe ~]# vgdisplay ...
  第3步:再切割出一个约为150MB的逻辑卷设备。
    在对逻辑卷进行切割时有两种计量单位。第一种是以容量为单位,所使用的参数为-L。例如,使用-L 150M生成一个大小为150MB的逻辑卷。另一种是以基本单元的个数为单位,所使用的参数为-l。每一个基本单元的大小默认为4MB。例如,使用-l 37能够生成一个大小为37×4MB=148MB的逻辑卷。
[root@linuxprobe ~]# lvcreate -n vo -l 37 storage
 Logical volume "vo" created.
[root@linuxprobe ~]# lvdisplay 
...
   第4步:把生成好的逻辑卷进行格式化,而后挂载使用。
Linux系统会把LVM中的逻辑卷设备存放在/dev设备目录中(实际上就是个快捷方式),同时会以卷组的名称来创建一个目录,其中保存了逻辑卷的设备映射文件(即/dev/卷组名称/逻辑卷名称)。
[root@linuxprobe ~]# mkfs.ext4 /dev/storage/vo 
...
[root@linuxprobe ~]# mkdir /linuxprobe
[root@linuxprobe ~]# mount /dev/storage/vo /linuxprobe
   第5步:查看挂载状态,并写入配置文件,使其永久生效。
[root@linuxprobe ~]# df -h
...
[root@linuxprobe ~]# echo "/dev/storage/vo /linuxprobe ext4 defaults 0 0" >> /etc/fstab
[root@linuxprobe ~]# cat /etc/fstab
...

 

5.扩容逻辑卷
  扩容前请必定要记得卸载设备和挂载点的关联。
[root@linuxprobe ~]# umount /linuxprobe
   第1步:把上一个实验中的逻辑卷vo扩展至290MB。
[root@linuxprobe ~]# lvextend -L 290M /dev/storage/vo
...
   第2步:检查硬盘的完整性,确认目录结构、内容和文件内容没有丢失。通常状况下没有报错,均为正常状况。
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo
   第3步:重置设备在系统中的容量。刚刚是对LV(逻辑卷)设备进行了扩容操做,但系统内核尚未同步到这部分新修改的信息,须要手动进行同步。
[root@linuxprobe ~]# resize2fs /dev/storage/vo
   第4步:从新挂载硬盘设备并查看挂载状态。
[root@linuxprobe ~]# mount -a
[root@linuxprobe ~]# df -h
...

 

6.缩小逻辑卷
  在执行缩容操做前记得先把文件系统卸载掉。
[root@linuxprobe ~]# umount /linuxprobe

 

  第1步:检查文件系统的完整性。
[root@linuxprobe ~]# e2fsck -f /dev/storage/vo 
...

 

  第2步:通知系统内核将逻辑卷vo的容量减少到120MB。
[root@linuxprobe ~]# resize2fs /dev/storage/vo 120M

 

  第3步:将LV逻辑卷的容量修改成120M。
[root@linuxprobe ~]# lvreduce -L 120M /dev/storage/vo

 

  第4步:从新挂载文件系统并查看系统状态。
[root@linuxprobe ~]# mount -a 
[root@linuxprobe ~]# df -h 
...

 

 
7.逻辑卷快照
在正式操做前,先看看VG(卷组)中的容量是否够用:
[root@linuxprobe ~]# vgdisplay

 

第1步:使使用-s参数生成一个快照卷,使用-L参数指定切割的大小,须要与要作快照的设备容量保持一致。
  另外,还须要在命令后面写上是针对哪一个逻辑卷执行的快照操做,稍后数据也会还原到这个相应的设备上。
[root@linuxprobe ~]# lvcreate -L 120M -s -n SNAP /dev/storage/vo Logical volume "SNAP" created 
[root@linuxprobe ~]# lvdisplay ...

 

第2步:在逻辑卷所挂载的目录中建立一个100MB的垃圾文件,而后再查看快照卷的状态。能够发现存储空间的占用量上升了。
[root@linuxprobe ~]# dd if=/dev/zero of=/linuxprobe/files count=1 bs=100M 1+0 records in 1+0 records out 104857600 bytes (105 MB, 100 MiB) copied, 0.312057 s, 336 MB/s 
[root@linuxprobe ~]# lvdisplay ...

 

第3步:为了校验快照卷的效果,须要对逻辑卷进行快照还原操做。在此以前记得先卸载掉逻辑卷设备与目录的挂载。
lvconvert命令用于管理逻辑卷的快照,语法格式为“lvconvert [参数]快照卷名称”。
[root@linuxprobe ~]# umount /linuxprobe 
[root@linuxprobe ~]# lvconvert --merge /dev/storage/SNAP Merging of volume storage/SNAP started. storage/vo: Merged: 36.41% storage/vo: Merged: 100.00%

 

第4步:快照卷会被自动删除掉,而且刚刚在逻辑卷设备被执行快照操做后再建立出来的100MB的垃圾文件也被清除了。
[root@linuxprobe ~]# mount -a 
[root@linuxprobe ~]# cd /linuxprobe/ 
[root@linuxprobe linuxprobe]# ls lost+found readme.txt [root@linuxprobe linuxprobe]# cat readme.txt 
Welcome to Linuxprobe.com

 

8. 删除逻辑卷
第1步:取消逻辑卷与目录的挂载关联,删除配置文件中永久生效的设备参数。
[root@linuxprobe ~]# umount /linuxprobe 
[root@linuxprobe ~]# vim /etc/fstab

 

第2步:删除逻辑卷设备,须要输入y来确认操做。
[root@linuxprobe ~]# lvremove /dev/storage/vo

 

第3步:删除卷组,此处只写卷组名称便可,不须要设备的绝对路径。
[root@linuxprobe ~]# vgremove storage Volume group "storage" successfully removed

 

第4步:删除物理卷设备。
[root@linuxprobe ~]# pvremove /dev/sdb /dev/sdc 
Labels on physical volume "/dev/sdb" successfully wiped. 
Labels on physical volume "/dev/sdc" successfully wiped.

第八章

Iptables

1.在iptables命令后添加-L参数查看已有的防火墙规则链。
[root@linuxprobe ~]# iptables -L

 

2.在iptables命令后添加-F参数清空已有的防火墙规则链。
[root@linuxprobe ~]# iptables -F

 

3.把INPUT规则链的默认策略设置为拒绝。
[root@linuxprobe ~]# iptables -P INPUT DROP

 

4.向INPUT链中添加容许ICMP流量进入的策略规则。
[root@linuxprobe ~]# iptables -I INPUT -p icmp -j ACCEPT

 

5.删除INPUT规则链中刚刚加入的那条策略(容许ICMP流量),并把默认策略设置为容许。
[root@linuxprobe ~]# iptables -D INPUT 1 
[root@linuxprobe ~]# iptables -P INPUT ACCEPT

 

6.将INPUT规则链设置为只容许指定网段的主机访问本机的22端口,拒绝来自其余全部主机的流量。
要对某台主机进行匹配,可直接写出它的IP地址;如需对网段进行匹配,则须要写为子网掩码的形式(好比192.168.10.0/24)。
[root@linuxprobe ~]# iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j ACCEPT 
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 22 -j REJECT

 

7.向INPUT规则链中添加拒绝全部人访问本机12345端口的策略规则。
[root@linuxprobe ~]# iptables -I INPUT -p tcp --dport 12345 -j REJECT 
[root@linuxprobe ~]# iptables -I INPUT -p udp --dport 12345 -j REJECT

 

8.向INPUT规则链中添加拒绝192.168.10.5主机访问本机80端口(Web服务)的策略规则。
[root@linuxprobe ~]# iptables -I INPUT -p tcp -s 192.168.10.5 --dport 80 -j REJECT

 

9.向INPUT规则链中添加拒绝全部主机访问本机1000~1024端口的策略规则。
前面在添加防火墙策略时,使用的是-I参数,它默认会把规则添加到最上面的位置,所以优先级是最高的。若是工做中须要添加一条最后“兜底”的规则,那就用-A参数
[root@linuxprobe ~]# iptables -A INPUT -p tcp --dport 1000:1024 -j REJECT 
[root@linuxprobe ~]# iptables -A INPUT -p udp --dport 1000:1024 -j REJECT

 

10.使用iptables命令配置的防火墙规则默认会在系统下一次重启时失效,若是想让配置的防火墙策略永久生效,还要执行保存命令
[root@linuxprobe ~]# iptables-save

 

FIrewalld

1.查看firewalld服务当前所使用的区域。
[root@linuxprobe ~]# firewall-cmd --get-default-zone public

 

2.查询指定网卡在firewalld服务中绑定的区域。
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens160 public

 

3.把网卡默认区域修改成external,并在系统重启后生效。
[root@linuxprobe ~]# firewall-cmd --permanent --zone=external --change-interface=ens160 The interface is under control of NetworkManager, setting zone to 'external'. 
success
[root@linuxprobe ~]# firewall-cmd --permanent --get-zone-of-interface=ens160
external

 

4.把firewalld服务的默认区域设置为public。
默认区域也叫全局配置,指的是对全部网卡都生效的配置,优先级较低。在下面的代码中能够看到,当前默认区域为public,而ens160网卡的区域为external。此时即是以网卡的区域名称为准。
[root@linuxprobe ~]# firewall-cmd --set-default-zone=public 
Warning: ZONE_ALREADY_SET: public success [root@linuxprobe ~]# firewall-cmd --get-default-zone public
[root@linuxprobe ~]# firewall-cmd --get-zone-of-interface=ens160 externa

 

5.启动和关闭firewalld防火墙服务的应急情况模式。
使用--panic-on参数会当即切断一切网络链接,而使用--panic-off则会恢复网络链接。
[root@linuxprobe ~]# firewall-cmd --panic-on success 
[root@linuxprobe ~]# firewall-cmd --panic-off success

 

6.查询SSH和HTTPS协议的流量是否容许放行。
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=ssh yes 
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https no

 

7.把HTTPS协议的流量设置为永久容许放行,并当即生效。
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=https 
success 
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https 
no

 

不想重启服务器的话,就用--reload参数
[root@linuxprobe ~]# firewall-cmd --reload 
success 
[root@linuxprobe ~]# firewall-cmd --zone=public --query-service=https 
yes

 

8.把HTTP协议的流量设置为永久拒绝,并当即生效。
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --remove-service=http 
Warning: NOT_ENABLED: http success
[root@linuxprobe ~]# firewall-cmd --reload 
success

 

9.把访问8080和8081端口的流量策略设置为容许,但仅限当前生效。
[root@linuxprobe ~]# firewall-cmd --zone=public --add-port=8080-8081/tcp 
success 
[root@linuxprobe ~]# firewall-cmd --zone=public --list-ports 8080-8081/tcp

 

10.把本来访问本机888端口的流量转发到22端口,要且求当前和长期均有效。
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10 
success 
[root@linuxprobe ~]# firewall-cmd --reload 
success

 

11.在firewalld服务中配置一条富规则,使其拒绝192.168.10.0/24网段的全部用户访问本机的ssh服务(22端口)
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject" 
success 
[root@linuxprobe ~]# firewall-cmd --reload 
success

 

第九章

1.使用nmcli命令来配置网卡设备的绑定参数
建立出一个bond网卡
使用nmcli命令配置网络信息有必定的难度,因此我们放到了第9章才开始讲解。首先使用以下命令建立一个bond网卡。其中,命令与参数的意思是建立一个类型为bond(绑定)、名称为bond0、网卡名为bond0的绑定设备,绑定模式为balance-rr:
[root@linuxprobe ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=balance-rr" 
Connection 'bond0' (b37b720d-c5fa-43f8-8578-820d19811f32) 
 successfully added.

 

 
向bond0添加从属网卡
[root@linuxprobe ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port1 ifname ens160 master bond0 
Connection 'bond0-port1' (8a2f77ee-cc92-4c11-9292-d577ccf8753d) successfully added. 
[root@linuxprobe ~]# nmcli connection add type ethernet slave-type bond con-name bond0-port2 ifname ens192 master bond0 
Connection 'bond0-port2' (b1ca9c47-3051-480a-9623-fbe4bf731a89) successfully added.

 

配置bond0设备的网卡信息
[root@linuxprobe ~]# nmcli connection modify bond0 ipv4.addresses 192.168.10.10/24 
[root@linuxprobe ~]# nmcli connection modify bond0 ipv4.gateway 192.168.10.1 
[root@linuxprobe ~]# nmcli connection modify bond0 ipv4.dns 192.168.10.1 
[root@linuxprobe ~]# nmcli connection modify bond0 ipv4.dns-search linuxprobe.com 
[root@linuxprobe ~]# nmcli connection modify bond0 ipv4.method manual

 

启动
[root@linuxprobe ~]# nmcli connection up bond0 
Connection successfully activated (master waiting for slaves) (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/22) 
[root@linuxprobe ~]# nmcli device status ...

 

2.安全密钥验证
第1步:在客户端主机中生成“密钥对”,记住是客户端
[root@Client ~]# ssh-keygen
 ...

 

第2步:把客户端主机中生成的公钥文件传送至远程服务器。
[root@Client ~]# ssh-copy-id 192.168.10.10

 

第3步:对服务器进行设置,使其只容许密钥验证,拒绝传统的密码验证方式。记得在修改配置文件后保存并重启sshd服务程序
[root@Server ~]# vim /etc/ssh/sshd_config  
………………省略部分输出信息……………… 
70 # To disable tunneled clear text passwords, change to no here! 71 #PasswordAuthentication yes 
72 #PermitEmptyPasswords no 
73 PasswordAuthentication no 
74 
………………省略部分输出信息……………… 
[root@Server ~]# systemctl restart sshd

 

第4步:客户端尝试登陆到服务器,此时无须输入密码也可成功登陆
[root@Client ~]# ssh 192.168.10.10

第十章

1.基于IP地址
第1步:分别在/home/wwwroot中建立用于保存不一样网站数据的3个目录,并向其中分别写入网站的首页文件。每一个首页文件中应有明确区分不一样网站内容的信息,方便稍后能更直观地检查效果。
[root@linuxprobe ~]# mkdir -p /home/wwwroot/10 
[root@linuxprobe ~]# mkdir -p /home/wwwroot/20
[root@linuxprobe ~]# mkdir -p /home/wwwroot/30
[root@linuxprobe ~]# echo "IP:192.168.10.10" > /home/wwwroot/10/index.html [root@linuxprobe ~]# echo "IP:192.168.10.20" > /home/wwwroot/20/index.html [root@linuxprobe ~]# echo "IP:192.168.10.30" > /home/wwwroot/30/index.html

 

第2步:从httpd服务的配置文件中大约第132行处开始,分别追加写入3个基于IP地址的虚拟主机网站参数,而后保存并退出。记得须要重启httpd服务,这些配置才生效。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf 
………………省略部分输出信息……………… 
132 <VirtualHost 192.168.10.10> 
133 DocumentRoot /home/wwwroot/10 
134 ServerName www.linuxprobe.com 
135 <Directory /home/wwwroot/10> 
136 AllowOverride None 
137 Require all granted 
138 </Directory> 
139 </VirtualHost>    
140 <VirtualHost 192.168.10.20> 
141 DocumentRoot /home/wwwroot/20 
142 ServerName www.linuxcool.com 
143 <Directory /home/wwwroot/20> 
144 AllowOverride None 
145 Require all granted 
146 </Directory> 
147 </VirtualHost>    
148 <VirtualHost 192.168.10.30> 
149 DocumentRoot /home/wwwroot/30 
150 ServerName www.linuxdown.com 
151 <Directory /home/wwwroot/30> 
152 AllowOverride None 
153 Require all granted 
154 </Directory> 
155 </VirtualHost> 
………………省略部分输出信息……………… 
[root@linuxprobe ~]# systemctl restart httpd

 

第3步:此时访问网站,则会看到httpd服务程序的默认首页面中显示“权限不足”。手动把新的网站数据目录的SELinux安全上下文设置正确(见前文的实验),并使用restorecon命令让新设置的SELinux安全上下文当即生效。
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/10/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/20/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/30/* 
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot

 

2.基于主机域名
(这里以192.168.10.10为例)
第1步:手动定义IP地址与域名之间对应关系的配置文件,保存并退出后会当即生效。能够经过分别ping这些域名来验证域名是否已经成功解析为IP地址。
[root@linuxprobe ~]# vim /etc/hosts 
127.0.0.1 localhost 
localhost.localdomain 
localhost4 
localhost4.localdomain4 ::1 localhost localhost.localdomain localhost6 
localhost6.localdomain6 192.168.10.10 www.linuxprobe.com www.linuxcool.com www.linuxdown.com

 

第2步:分别在/home/wwwroot中建立用于保存不一样网站数据的3个目录,并向其中分别写入网站的首页文件。每一个首页文件中应有明确区分不一样网站内容的信息,方便稍后能更直观地检查效果。
[root@linuxprobe ~]# mkdir -p /home/wwwroot/linuxprobe 
[root@linuxprobe ~]# mkdir -p /home/wwwroot/linuxcool
[root@linuxprobe ~]# mkdir -p /home/wwwroot/linuxdown
[root@linuxprobe ~]# echo "www.linuxprobe.com" > /home/wwwroot/linuxprobe/index.html [root@linuxprobe ~]# echo "www.linuxcool.com" > /home/wwwroot/linuxcool/index.html [root@linuxprobe ~]# echo "www.linuxdown.com" > /home/wwwroot/linuxdown/index.html

 

第3步:从httpd服务的配置文件中大约第132行处开始,分别追加写入3个基于主机名的虚拟主机网站参数,而后保存并退出。记得须要重启httpd服务,这些配置才生效。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf 
………………省略部分输出信息……………… 
132 <VirtualHost 192.168.10.10> 
133 Documentroot /home/wwwroot/linuxprobe 
134 ServerName www.linuxprobe.com 
135 <Directory /home/wwwroot/linuxprobe> 
136 AllowOverride None 
137 Require all granted 
138 </Directory> 
139 </VirtualHost>   
140 <VirtualHost 192.168.10.10> 
141 Documentroot /home/wwwroot/linuxcool 
142 ServerName www.linuxcool.com 
143 <Directory /home/wwwroot/linuxcool> 
144 AllowOverride None 
145 Require all granted 
146 </Directory> 
147 </VirtualHost>   
148 <VirtualHost 192.168.10.10> 
149 Documentroot /home/wwwroot/linuxdown 
150 ServerName www.linuxdown.com 
151 <Directory /home/wwwroot/linuxdown> 
152 AllowOverride None 
153 Require all granted 
154 </Directory> 
155 </VirtualHost> 
………………省略部分输出信息……………… 
[root@linuxprobe ~]# systemctl restart httpd

 

第4步:由于当前的网站数据目录仍是在/home/wwwroot目录中,所以仍是必需要正确设置网站数据目录文件的SELinux安全上下文,使其与网站服务功能相吻合。最后记得用restorecon命令让新配置的SELinux安全上下文当即生效,这样就能够当即访问到虚拟主机网站了
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxprobe 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxprobe/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxcool 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxcool/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxdown 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/linuxdown/* 
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot

 

3.基于端口号
第1步:分别在/home/wwwroot中建立用于保存不一样网站数据的3个目录,并向其中分别写入网站的首页文件。每一个首页文件中应有明确区分不一样网站内容的信息,方便稍后能更直观地检查效果。
[root@linuxprobe ~]# mkdir -p /home/wwwroot/6111 
[root@linuxprobe ~]# mkdir -p /home/wwwroot/6222
[root@linuxprobe ~]# mkdir -p /home/wwwroot/6333
[root@linuxprobe ~]# echo "port:6111" > /home/wwwroot/6111/index.html [root@linuxprobe ~]# echo "port:6222" > /home/wwwroot/6222/index.html [root@linuxprobe ~]# echo "port:6333" > /home/wwwroot/6333/index.html

 

第2步:在httpd服务配置文件的第46行~48行分别添加用于监听61十一、6222和6333端口的参数。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf  
………………省略部分输出信息……………… 
37 # Listen: Allows you to bind Apache to specific IP addresses and/or 
38 # ports, instead of the default. See also the 
39 # directive. 
40 # 
41 # Change this to Listen on specific IP addresses as shown below to 
42 # prevent Apache from glomming onto all bound IP addresses. 
43 # 
44 #Listen 12.34.56.78:80 
45 Listen 80 
46 Listen 6111 
47 Listen 6222 
48 Listen 6333 
………………省略部分输出信息……………… 

 

第3步:从httpd服务的配置文件中大约第134行处开始,分别追加写入3个基于端口号的虚拟主机网站参数,而后保存并退出。记得须要重启httpd服务,这些配置才生效。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf 
………………省略部分输出信息……………… 
134 <VirtualHost 192.168.10.10:6111> 
135 DocumentRoot /home/wwwroot/6111 
136 ServerName www.linuxprobe.com 
137 <Directory /home/wwwroot/6111> 
138 AllowOverride None 
139 Require all granted 
140 </Directory> 
141 </VirtualHost> 
142 <VirtualHost 192.168.10.10:6222> 
143 DocumentRoot /home/wwwroot/6222 
144 ServerName www.linuxcool.com 
145 <Directory /home/wwwroot/6222> 
146 AllowOverride None 
147 Require all granted 
148 </Directory> 
149 </VirtualHost> 
150 <VirtualHost 192.168.10.10:6333> 
151 DocumentRoot /home/wwwroot/6333 
152 ServerName www.linuxdown.com 
153 <Directory /home/wwwroot/6333> 
154 AllowOverride None 
155 Require all granted 
156 </Directory> 
157 </VirtualHost>
 ………………省略部分输出信息………………

 

第4步:由于咱们把网站数据目录存放在/home/wwwroot目录中,所以仍是必需要正确设置网站数据目录文件的SELinux安全上下文,使其与网站服务功能相吻合。最后记得用restorecon命令让新配置的SELinux安全上下文当即生效。
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6111/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6222/* 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333 
[root@linuxprobe ~]# semanage fcontext -a -t httpd_sys_content_t /home/wwwroot/6333/* 
[root@linuxprobe ~]# restorecon -Rv /home/wwwroot/

 

可使用semanage命令查询并过滤出全部与HTTP协议相关且SELinux服务容许的端口列表。
[root@linuxprobe ~]# semanage port -l | grep http 
http_cache_port_t tcp 8080, 8118, 8123, 10001-10010
http_cache_port_t udp 3130
http_port_t tcp 80, 81, 443, 488, 8008, 8009, 8443, 9000
pegasus_http_port_t tcp 5988
pegasus_https_port_t tcp 5989

 

第5步:SELinux容许的与HTTP协议相关的端口号中默认没有包含61十一、6222和6333,所以须要将这3个端口号手动添加进去。该操做会当即生效,并且在系统重启事后依然有效。设置好后再重启httpd服务程序,而后就能够看到网页内容了。
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6111 
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6222
[root@linuxprobe ~]# semanage port -a -t http_port_t -p tcp 6333
[root@linuxprobe ~]# semanage port -l | grep http

 

4.Apache的访问控制
第1步:先在服务器上的网站数据目录中新建一个子目录,并在这个子目录中建立一个包含Successful单词的首页文件。
[root@linuxprobe ~]# mkdir /var/www/html/server 
[root@linuxprobe ~]# echo "Successful" > /var/www/html/server/index.html

 

第2步:打开httpd服务的配置文件,在第161行后面添加下述规则来限制源主机的访问。这段规则的含义是容许使用Firefox浏览器的主机访问服务器上的首页文件,除此以外的全部请求都将被拒绝。
[root@linuxprobe ~]# vim /etc/httpd/conf/httpd.conf 
………………省略部分输出信息……………… 
161 <Directory "/var/www/html/server"> 
162 SetEnvIf User-Agent "Firefox" ff=1 
163 Order allow,deny 
164 Allow from env=ff 
165 </Directory> 
………………省略部分输出信息……………… 
[root@linuxprobe ~]# systemctl restart httpd 
[root@linuxprobe ~]# firefox

第十一章

1.把FTP协议添加到firewalld服务的容许列表中
[root@linuxprobe ~]# iptables -F 
[root@linuxprobe ~]# iptables-save 
[root@linuxprobe ~]# firewall-cmd --permanent --zone=public --add-service=ftp success 
[root@linuxprobe ~]# firewall-cmd --reload success

 

2.向匿名用户开放的权限参数以及做用
参数
做用
anonymous_enable=YES
容许匿名访问模式
anon_umask=022
匿名用户上传文件的umask值
anon_upload_enable=YES
容许匿名用户上传文件
anon_mkdir_write_enable=YES
容许匿名用户建立目录
anon_other_write_enable=YES
容许匿名用户修改目录名称或删除目录
 
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf 
1 anonymous_enable=YES 
2 anon_umask=022 
3 anon_upload_enable=YES 
4 anon_mkdir_write_enable=YES 
5 anon_other_write_enable=YES 
6 local_enable=YES 
7 write_enable=YES 
8 local_umask=022 
9 dirmessage_enable=YES 
10 xferlog_enable=YES 
11 connect_from_port_20=YES 
12 xferlog_std_format=YES 
13 listen=NO 
14 listen_ipv6=YES 
15 pam_service_name=vsftpd 
16 userlist_enable=YES

 

3.本地用户模式使用的权限参数以及做用
参数
做用
anonymous_enable=NO
禁止匿名访问模式
local_enable=YES
容许本地用户模式
write_enable=YES
设置可写权限
local_umask=022
本地用户模式建立文件的umask值
userlist_deny=YES
启用“禁止用户名单”,名单文件为ftpusers和user_list
userlist_enable=YES
开启用户做用名单文件功能
 
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf 
1 anonymous_enable=NO 
2 local_enable=YES 
3 write_enable=YES 
4 local_umask=022 
5 dirmessage_enable=YES 
6 xferlog_enable=YES 
7 connect_from_port_20=YES 
8 xferlog_std_format=YES 
9 listen=NO 
10 listen_ipv6=YES 
11 pam_service_name=vsftpd 
12 userlist_enable=YES

 

4.利用PAM文件进行认证时使用的参数以及做用
参数
做用
anonymous_enable=NO
禁止匿名开放模式
local_enable=YES
容许本地用户模式
guest_enable=YES
开启虚拟用户模式
guest_username=virtual
指定虚拟用户帐户
pam_service_name=vsftpd.vu
指定PAM文件
allow_writeable_chroot=YES
容许对禁锢的FTP根目录执行写入操做,并且不拒绝用户的登陆请求
 
[root@linuxprobe ~]# vim /etc/vsftpd/vsftpd.conf 
1 anonymous_enable=NO 
2 local_enable=YES 
3 write_enable=YES 
4 guest_enable=YES 
5 guest_username=virtual 
6 allow_writeable_chroot=YES 
7 local_umask=022 
8 dirmessage_enable=YES 
9 xferlog_enable=YES 
10 connect_from_port_20=YES 
11 xferlog_std_format=YES 
12 listen=NO 
13 listen_ipv6=YES 
14 pam_service_name=vsftpd.vu 
15 userlist_enable=YES

第十二章

第十三章

第十四章

自动管理IP地址
“机房运营部门:明天会有100名学员自带笔记本电脑来我司培训学习,请保证他们可以使用机房的本地DHCP服务器自动获取IP地址并正常上网”。
   机房所用的网络地址以及参数信息
参数名称
默认租约时间
21600秒
最大租约时间
43200秒
IP地址范围
192.168.10.50~192.168.10.150
子网掩码
255.255.255.0
网关地址
192.168.10.1
DNS服务器地址
192.168.10.1
搜索域
linuxprobe.com
 
[root@linuxprobe ~]# vim /etc/dhcp/dhcpd.conf 
ddns-update-style none; 
ignore client-updates; 
subnet 192.168.10.0 netmask 255.255.255.0 { 
range 192.168.10.50 192.168.10.150; 
option subnet-mask 255.255.255.0; 
option routers 192.168.10.1; 
option domain-name "linuxprobe.com"; 
option domain-name-servers 192.168.10.1; 
default-lease-time 21600; 
max-lease-time 43200; }

第十五章

第十六章

第十七章

第十八章

数据库的备份及恢复
[root@linuxprobe ~]# mysqldump -u root -p linuxprobe > /root/linuxprobeDB.dump

第十九章

第二十章