• 红帽认证:
    • RHCSA RHCE + 50%,链接前往
    • 补考RHCSA: 1500元,补考RHCE: 2500元
    • 考试安排,了解
    • 考试原题+考题精讲+考前辅导视频+模拟环境。
  • redhat enterprise linux 7 (Centos, Fedora)
    • 都是被redhat收购或是旗下的产品了
  • 有效期3年,过后仍可以查询到证书,只是不能继续考下一个证(RHCA)

    第二节课

  • 链接前往

  • RPM: 降低软件的安装难度(通过安装规则实现)
    • YUM: 降低软件的安装难度(解决软件的依赖关系)
  • systemd 初始化进程。

    • systemctl start/stop/restart 服务名称 启动、停止、重启服务
    • systemctl status 服务名称 查看服务状态
    • systemctl enable 服务名称 加入到启动项

      第2章,必须掌握的linux命令

  • 链接前往

  • man, 查看命令的帮助文档(Manual)。
  • date "+%Y-%m-%d +%T" ,按照格式,输出年月日 时分秒
    • date "+%Y-%m-%d %H:%M:%S"
  • 进程(ps,top),有5个状态
    • R: 正在运行,正在为用户提供服务
    • S: 正在休眠,等待为用户提供服务
    • D: 进程不可中断
    • Z: 僵死、僵尸进程
    • T: 已经停止。
  • pidof sshd , 查看进程的PID
    • kill 进程号码 帮助你停止掉某个服务
  • 查看服务器状态。
    • ifconfig , 查看网卡名称、IP地址和子网掩码、mac地址、RX和TX(收发数据包)、broadcast广播地址。
    • uname -a , 详细的内核信息
    • uptime , 显示负载压力,top 的第一行输出内容。
    • free -h , 显示内存使用量情况 —human
    • who , 显示当前登录用户的名称
    • last , 显示登陆系统用户的列表
    • history , 历史命令记录
      • !25 , 重新执行编号为25 的命令
    • sosreport ,将服务器情况收集起来成 tar.xz 包,方便被人排查。
  • ls -al , 所有以 . 开头的文件,都是隐藏文件。
  • cd ~ , 返回用户家目录。
  • cat , 查看短的文件内容。(最多显示一个屏幕上的内容称作短)
    • more , 查看大的文件内容。
  • head -10 a.txt , 查看文件的前10行 head -n 10 a.txt
    • tail -n 10 a.txt , 查看文件的后10行
  • wc -l a.txt , 统计文件的行数
    • -w , 统计文件的单词数
    • -c , 统计字节数
  • stat anaconda-ks.cfg , 查看文件的时间
    • Access 文件查看的最后一次时间
    • Modify 文件内容修改的最后一次时间
    • Change 属性修改的最后一次时间。
    • touch -d "17:46" b.txt , 修改文件后,将更新的时间修改回原来的时间。
  • cut -d : -f 1 /etc/passwd , 提取文件中,以 : 为间隔符的第一列的信息。
  • diff -c a.txt b.txt , 对比两个文件是否相同。
  • dd if=a.txt of=aa.txt bs=5 count=1 , 复制5个字节,取一次
    • if =input file
    • of =output file
    • count 块, bs 大小
    • 还可以数据备份
  • file 文件名称 , 查看文件的类型,不需要通过颜色来判断。

    第四节课

  • tar -czvf aa.tar.gz /etc , 打包文件

    • tar -zxvf aa.tar.gz , 解压文件。
  • grep -n "network" anaconda-ks.cfg , 搜索文件中包含特定内容的行。
  • find / -user linuxprobe , 搜索属于指定用户的文件。
    • find . -name anaconda-ks.cfg -exec cp -rf {} /home/linuxprobe/xiaobai/ \; , 需要注意后面的反斜杠格式。
      • 会提示存在同样的文件,但其实已经是替换过的,时间变了。
  • 覆盖性操作, ifconfig > aa.txt
    • 追加性操作, ifconfig >> aa.txt
    • 报错性信息,输入到文件, ls -l hahababa 2> aa.txt 。同样可追加
    • 全部输出重定向, &>
    • 文件导入 <
  • | 管道符
    • echo redhat | passwd --stdin linuxprobe , 将redhat 作为用户 linuxprobe 的密码。
      • stdin 是文件描述符,代表标准输入
        • stdout 标准输出
        • stderr 标准错误输出
    • echo "hohohohohohohoho" | mail -s " XIAOXIN" root , 直接在命令中发邮件。
  • 通配符
      • 通配0个或 多个
    • ? 通配一个,必须要有一个
    • [0-9] 精准匹配,通配一位数字,[00-99] 通配两位数字
  • 转义符
    • echo "Price is \$$PRICE" , 双引号中的
    • echo Price is '$$$$$$$$$$$$$' $PRICE , 单引号转义多个字符。\$$PRICE
    • XIAOHUA=uptime`` , 反引号中的是命令。
  • alias 别名, alias hh="grep -n "network" anaconda-ks.cfg"
  • whereis which , 区别内部和外部命令。
  • PATH=$PATH:/home/linuxprobe/bin , 修改变量。
    • vim /etc/profile ; export WORK=/home/wwwroot ,升级成全局变量。其他用户也可使用
    • HOME,SHELL,MAIL,LANG
  • su - ,help中作此解释,

    • -, -l, --login make the shell a login shell

      第五节课

  • 第四章节,链接前往

    vim

  • vim, 进入文件后,有三种模式,命令模式、输入(编辑)模式、末行模式(保存、退出、设置环境)

  • 5 dd ,剪切光标(往下5行)所在行
    • 按下u , 可以撤销上一步操作。 4yy p 复制粘贴
  • 编写一个脚本,包括三部分(声明,注释,命令)

    1. #!/bin/bash
    2. #this is a test 以下是一些内置变量
    3. echo $0
    4. echo $1,$3,$5
    5. echo $#,$*
    • sh a.sh a b c d 进行测试,
    • $0 表示脚本名称, $# 表示接收到参数的总个数, $* 表示参数的名称列表,$? 显示上一条命令是否执行成功(返回值是0,表示成功)
      • [ -d /etc/fstab ] ,进行目录测试, echo $? ,返回值为1,表示失败。
        • -f 判断是否是一般文件
      • [ $USER = root ] ,判断用户是否是root
      • [ $USER = root ] && echo "i am root" || echo "i am just a user"
      • [free -m |grep Mem: |awk ‘{print $4}’-le 1024 ] && echo "内存不够了" || echo "内存仍然很充裕" 简单的判断内存使用量
    • && 当前面的命令成立时,执行后面的语句
      • || 当前面的命令不成立时,执行后面的语句
    • [ 5 -ge 10 ] ; echo $?5是否大于等于10, 整数比较运算符是有规范的
      • 同样在第四章的4.2.3 判断用户的参数
    • 目录是否存在,不存在则新建。
      1. #!/bin/bash
      2. #this is a test
      3. DIR=/home/wwwroot/haha
      4. if [ ! -e $DIR ]
      5. then
      6. mkdir -p $DIR
      7. fi
  • [ -z $HAHA ] ; echo $? , 查看HAHA 这个变量是否已被别人使用。1 表示已经有了变量了

  • 编写脚本,批量创建用户。 ```bash

    !/bin/bash

    !/bin/sh

    this is a test

    read -p “Enter: “ PASSWD for UNAME in cat users.txt do id $UNAME &> /dev/null if [ $? -eq 0 ] ; then echo “Already Exists.” else useradd $UNAME &> /dev/null echo “$PASSWD” | passwd —stdin $UNAME &> /dev/null if [ $? -eq 0 ] then echo “$UNAME,Create success” else echo “$UNAME,Create failure” fi

fi done

  1. - for 有范围的时候用,while 有条件的时候用。
  2. - 生成一个随机数,并进行猜测。
  3. ```bash
  4. #!/bin/bash
  5. #!/bin/sh
  6. #this is a test
  7. PRICE=$(expr $RANDOM % 1000 )
  8. TIMES=0
  9. while true
  10. do
  11. read -p "Enter: " INT
  12. let TIMES++
  13. if [ $INT -eq $PRICE ]
  14. then
  15. echo "OKOK!!!"
  16. echo "$TIMES"
  17. exit 0
  18. elif [ $INT -gt $PRICE ]
  19. then
  20. echo "HIGH"
  21. else
  22. echo "LOW"
  23. fi
  24. done
  • case 编写脚本,判断输入的是数字还是字母

    1. #!/bin/bash
    2. #!/bin/sh
    3. #this is a test
    4. read -p "Enter: " KEY
    5. case "$KEY" in
    6. [a-z]|[A-Z])
    7. echo "zhe shi ZIMU"
    8. ;;
    9. [0-9])
    10. echo "zhe shi shuzi"
    11. ;;
    12. *)
    13. echo "zhe shi zifu"
    14. esac

    第六节课

    定时任务

  • 一次性: at

    • 周期性: crond(服务名称)、crontab 配置工具命令
  • at 时间 , CTRL+D 即可保存后退出。

    • at -l ,查看任务
    • at -c 1 , 查看第一条任务详情
    • atrm 1 , 删除第一条任务
    • 参考链接前往

      第5章,用户身份与文件权限

  • 链接前往

  • 管理员 root: UID:0
    • 系统用户: UID: 1~999
      • 只能管理服务,不能够登陆到系统。
    • 普通用户: UID: 1000~
  • 基本组,用户与生俱来的组
    • 扩展组,后天添加的
  • useradd -u 8888 user1 , 指定用户的uid为8888
    • 编辑 /etc/passwd 文件,更改user1 的相关内容。
    • usermod -u 3333 user1 , 将用户user1的uid更改为3333
    • usermod -g 1003 user1 , 将用户user1的基本组id更改为1003
    • useradd -G root user2 , 创建的同时指定user2的扩展组为root
  • userdel user1 , 删除user1,只会删除用户信息,不会删除用户数据(家目录等)
    • userdel -r user1 , 会同时删除用户的数据。
  • 对目录来说:
    • r,对目录查看其文件列表的权限
    • w,对目录中的文件删除、移动、改名的权限
    • x,对目录切换(进入)的权限。
  • SUID, 使文件执行者临时获得文件所有者的权限。 u+s 4 chmod u+s 文件名

    • SGID, 使文件执行者临时获得文件所有组的权限,归属上级目录。 g+s 2 chmod -R g+s 文件名
      • 在文件夹内创建的文件都归属于文件夹所属组
    • SBIT, 粘滞位(保护位),防止被他人删除。 o+t 1 chmod-R o+t 文件名
    • chmod 7654 a.txtrwSr-sr-T 既有基本权限也有特殊权限。
      • 有了x,赋予特殊权限SUID后,x会变成s;之前没有x的话,- 会变成 S(sgid同理,只是位置不同)
      • 之前有x,赋予特殊权限SBIT后,x会变成t;之前没有x的话,- 会变成 T

        第七节课

  • chattr +i anaconda-ks.cfg 设置隐藏权限,attribute

    • +i表示不能对文件删除。+a表示文件的内容只能增加不能减少/覆盖。-i -a 将文件的隐藏权限去除
    • lsattr anaconda-ks.cfg查看文件的隐藏权限。
  • 针对某个用户(某个用户组)的权限:文件访问控制列表(权限)FACL(file access control list)
    • setfacl -Rm u:linuxprobe:rwx a.txt , 设置权限
      • -R 是对目录操作,g 是对用户组操作
    • getfacl a.txt , 查看权限,而且ll 查看时会发现最后面变成了+
  • sudo服务, visudo进行增添用户和编辑内容

    • ALL 参数指的是 服务端地址,后面的ALL 是具体的执行命令
    • 普通用户切换到管理员,不希望泄露密码。可解决
    • 普通切换到管理员,可以做所有的事情,很危险。可解决

      第6章,存储结构与磁盘划分

  • 链接前往

  • 根据FHS协议,了解各目录的存放内容。 | 目录名称 | 应放置文件的内容 | | :—- | :—- | | /boot | 开机所需文件—内核、开机菜单以及所需配置文件等 | | /dev | 以文件形式存放任何设备与接口 | | /etc | 配置文件 | | /home | 用户主目录 | | /bin | 存放单用户模式下还可以操作的命令 | | /lib | 开机时用到的函数库,以及/bin与/sbin下面的命令要调用的函数 | | /sbin | 开机过程中需要的命令 | | /media | 用于挂载设备文件的目录 | | /opt | 放置第三方的软件 | | /root | 系统管理员的家目录 | | /srv | 一些网络服务的数据文件目录 | | /tmp | 任何人均可使用的“共享”临时目录 | | /proc | 虚拟文件系统,例如系统内核、进程、外部设备及网络状态等 | | /usr/local | 用户自行安装的软件 | | /usr/sbin | Linux系统开机时不会使用到的软件/命令/脚本 | | /usr/share | 帮助与说明文件,也可放置共享文件 | | /var | 主要存放经常变化的文件,如日志(数据库、网站数据) | | /lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里 |

  • 查看文件,可以用:绝对路径和相对路径。

  • udev规范,根据文件名称大概知道存储的信息。

    • /dev/cdrom 光盘,两个以上光驱命名: /dev/sr*
    • /dev/sd* 硬盘存储设备
      • dev: 硬件设备文件所在目录; hd 表示IDE设备,sd表示SCSI设备;a,b,c(*)表示硬盘识别的顺序号;1,2,5表示分区的编码号(只是一个标识,不代表前面必须有sda4,sda3)
        • 主分区、扩展分区是1~4,逻辑分区是从5开始
      • 设备唯一标识符 UUID, blkid命令查看
    • RHEL7使用的文件系统:XFS
      • inode, 对文件信息信息的描述(名称、大小、属性、权限、时间),指针指向block
      • block块,
      • VFS技术, 用户不需关心底层的文件系统,直接命令。

        第八节课

  • 还是第六章,6.5~6.8

  • 分区, fdisk
    • 格式化 mkfs.xfs /dev/sdb1
    • 挂载 mount mount 绝对路径下的设备名称 挂载目录 ,要使用就需要挂载
      • 永久生效,需要写入到 /etc/fstab 文件
  • 使用虚拟机直接“添加”一块新硬盘。
    • fdisk 命令,d 删除分区; p 显示分区表; n 新建分区; w 保存并退出
    • last sector,“设置磁盘的结束分区”, +600Mp 打印出分区情况, w , 保存并退出
    • ls -l /dev/sdb* , 查看文件。或者 lsblk
    • partprobe ,强制将分区信息同步到内核
    • mkfs.ext4 /dev/sdb1 ,格式化成ext4 格式的文件
    • mount /dev/sdb1 /media/haha/ df -h ,查看挂载信息(或直接 mount)
      • 将设备与目录相关联,作用是让系统能够使用硬盘资源。
    • /dev/sdb1 /media/haha ext4 defaults 0 0 编辑/etc/fstab 文件,
      • 第一个0 是自动备份; 第二个0 是开机自检
      • 这里有一道真题,考试的时候,题中说的600M就是挂载600M磁盘。
    • 创建扩展分区,(e,extended) +10G ,创建好后, p 查看分区情况
      • 扩展分区不能保存数据,继续创建逻辑分区, n l logical (numbered from 5)
      • 起始扇区默认,结束 +2G ,是从扩展分区获取的 w 保存后退出
        • partprobe 同步分区信息。
      • mkswap /dev/sdb5 , 格式化成swap 分区
      • swapon /dev/sdb5 , 加入到swap中去, free -h 查看swap是否增加
      • /dev/sdb5 swap swap defaults 0 0 编辑/etc/fstab 文件,
        • 默认是0 0 , 加快启动速度的
      • 这里有一道真题的。
    • 给原有xfs文件系统,添加quota 技术, xxx xxx xfs defaults,uquota 0 0
      • 重启,验证生效 mount |grep boot
    • inode 限制文件总的个数, block 限制文件总的大小,通过磁盘配额限制用户读写
      • xfs_quota -x -c 'limit bsoft=3m bhard=6m isoft=3 ihard=6 linuxprobe' /boot/ ,限制linuxprobe用户在 /boot/ 目录下创建文件个数最大是6个,创建文件大小最大是6M。否则会提示如下:

image.png

  1. - ` xfs_quota -x -c report /boot `
  2. - 从中创建新文件, ` dd if=/dev/zero of=haha count=1 bs=8M` ,超过了会提示如下:

image.png

  1. - ` edquota linuxprobe ` 编辑磁盘配额,直接编辑 hard 列即可(前面是已经使用的)。删除的话直接删除
  2. - ` tail -f /var/log/messages` 查看日志

链接文件

  • 软链接 - windows的快捷方式
    • 硬链接 - 创建出来一个新的inode文件,指向实际block。
      • 对目录和跨分区、跨硬盘的不能做
    • ln -s anaconda-ks.cfg newfile.cfg ,创建软链接
    • ln ~/anaconda-ks.cfg newfile.cfg , 创建硬链接,2 表示inode个数

image.png

第七章,使用RAID与LVM磁盘阵列技术

  • 链接前往
  • RAID0, 负载均衡,速度2X,不需等待上一步操作写入完成就可执行下一个操作。但是不容错 striping

    • RAID1 可解决,相当于给源文件做了备份。但是,磁盘容量相当于加倍了 mirroring
    • RAID5,最少三个磁盘。相当于压缩了数据(奇偶校验和)。 parity across disks
    • RAID10,RAID0和RAID1组合,最少4个磁盘。推荐。+热备盘+异地备份

      第九节课

  • 使用虚拟机直接“添加”4块20G 新硬盘。lsblk 查看设备情况

  • mdadm -Cv /dev/md0 -a yes -n 4 -l 10 /dev/sd[b-e]
    • 一般的, RAID后的新盘叫md0; -a yes 检查md0 是否被占用,可不加;-l 10 级别(level)是10;
  • mdadm -Q /dev/md0 , 查看RAID组md0 的基本信息; mdadm -D /dev/md0 , 查看详细信息
    • 因为有备份,所以可用率50%,md0 的容量会减半。
    • Resync Status : 88% complete ,同步状态。同步完后,才进行下一步 - 分区和格式化和挂载
    • UUID : c9a12fb3:11876fd4:aea93903:97849a7e , 设备的UUID值
  • fdisk /dev/md0np , 创建主分区; 会出现 /dev/md0p1 ; w 保存后退出
    • partprobe 同步一下,就可以查看到设备 /dev/md0p1; lsblk 查看设备情况
    • mkfs.xfs /dev/md0p1 格式化分区,
    • mount /dev/md0p1 /media/haha/ 挂载到目录, df -h 查看挂载情况
    • vim /etc/fstab 编辑文件, UUID=b4c599a8-95a2-4e37-b387-e56723e939de /media/haha xfs defaults 0 0
      • blkid |grep md0p1 查看设备的UUID,名称
    • 重启后, df -h 验证成功
  • cp -rf /etc/* /media/haha 复制文件到RAID组的挂载点
    • 虚拟机-设置-移除RAID组中某一块磁盘,模拟强制破坏一下磁盘,查看md0 的状态,显示removed

image.png

  • 查看 /media/haha 目录下的文件有无丢失,验证没有丢失。
  • 事故模拟。。。
    • mdadm /dev/md0 -f /dev/sdc mdadm /dev/md0 -r /dev/sdc mdadm -D 查看详细信息
    • 虚拟机设置,新增一块硬盘,将新硬盘加入到raid组 mdadm /dev/md0 -a /dev/sdc 详细信息,显示spare rebuilding
      • RAID5+热备盘 演示。
  • mdadm -Cv /dev/md0 -n 3 -l 5 -x 1 /dev/sd[b-e]
    • -x 热备盘是1个
  • mdadm -Q /dev/md0 mdadm -D /dev/md0 查看md0 信息
  • /dev/md0 /media/haha ext4 defaults 0 0 写入到 /etc/fstab 文件中
  • mkfs.ext4 /dev/md0 , 格式化成ext4 格式的
  • mount -a 挂载使 /etc/fstab 文件配置生效; df -h 验证成功。
  • 同样移除RAID组中某一块磁盘,查看md0 状态。
    • 可以看到,sde 正在spare rebuilding, sdd 处于faulty状态,注意查看”Rebuild Status”
    • mdadm -r /dev/md0 /dev/sdc 移除异常的磁盘, mdadm -D /dev/md0
    • cat /media/haha/yum.conf 数据正常的。
      • 在原RAID组中添加硬盘。
  • umount /dev/md0 mdadm /dev/md0 -a /dev/sde 将sde加入到RAID组中
  • mdadm -D /dev/md0 查看RAID 信息
  • mount -a 挂载好; df -h 查看挂载情况

    LVM技术

  • LVM(逻辑卷管理器)对磁盘空间动态调整。 | 功能/命令 | 物理卷管理(支持) | 卷组管理(合并) | 逻辑卷管理(切割) | | :—- | :—- | :—- | :—- | | 扫描 | pvscan | vgscan | lvscan | | 建立 | pvcreate | vgcreate | lvcreate | | 显示 | pvdisplay | vgdisplay | lvdisplay | | 删除 | pvremove | vgremove | lvremove | | 扩展 | | vgextend | lvextend | | 缩小 | | vgreduce | lvreduce |

    • 命令基本一致,就是开头有区别。
    • pvcreate /dev/sdb /dev/sdc , 使硬盘支持LVM
    • vgcreate newstorage /dev/sd[b-c] , 创建卷组 newstorage
      • vgdisplay 查看卷组信息”Free PE / Size”
    • lvcreate -n haha -l 100 newstorage , 创建逻辑卷 haha
      • -l 表示PE的个数,4M*100,400M的空间。 或者 -L 400M 。
      • vgcreate -s 16M datastore /dev/sda6 卷组的PE尺寸为16MiB
      • lvdisplay , 查看卷组信息
      • lvs 查看
    • mkfs.ext4 /dev/newstorage/haha , 进行格式化
      • ll -d /dev/newstorage/ 设备文件在 /dev/ 下
    • mount /dev/newstorage/haha /media/haha/ , 逻辑卷挂载到目录上
      • df -h , 查看挂载情况
    • /dev/newstorage/haha /media/haha ext4 defaults 0 0 , 写入到文件中 /etc/fstab

      扩容

    • 先卸载掉, umount /media/haha/

      • 扩展时,同样是不会丢失数据的。可以先把文件复制到 /media/haha/ 目录下,稍后验证
    • lvextend -L 800M /dev/newstorage/haha , 扩容逻辑卷,容量为800M
    • e2fsck -f /dev/newstorage/haha , 强制扫描一下设备,看有无损坏
    • resize2fs /dev/newstorage/haha , resize to filesystem, 更新下设备信息
    • mount -a , 重新挂载下逻辑卷
    • 这里有一道真题的。主要考的是LVM的扩展。

      缩小

    • 需要先备份好,有风险。

    • umount /media/haha df -h
    • e2fsck -f /dev/newstorage/haha , 先扫描检查下设备
    • resize2fs /dev/newstorage/haha 300M , 表示通知一下系统, 注意这里的顺序和上面的相反
    • lvreduce -L 300M /dev/newstorage/haha , 缩小容量到300M
    • 重新挂载, mount
    • mount -a df -h , 重新挂载下,验证下 /media/haha/ 目录下的文件正常

      创建快照

    • 快照:要保证当前设备是挂载中的

    • lvcreate -L 300M -s -n SNAP /dev/newstorage/haha
      • -s 表示快照;-n 表示名称;查看大小用 vgdisplay “Alloc PE / Size”
      • 快照只能被还原一次,默认会释放(删除)还原后的快照。
      • 创建完成后,”Alloc PE / Size” 就会变成两倍
    • 将 /media/haha/ 目录下的文件删除,然后进行还原(恢复)。
    • umount /media/haha lvconvert --merge /dev/newstorage/SNAP
      • —merge 表示合并;
      • fuser -m -k /haha/ 自动将霸占 /haha/ 的程序杀死, 加 -i会在杀死前询问。参考
    • mount -a df -h 看到又重新挂载上了。验证下 /media/haha/ 目录下的文件

      • mount -a 生效的前提是在 /etc/fstab 文件中已经写入了挂载命令并可正确执行

        不再使用

    • 将逻辑卷删除。

    • 删除顺序反过来,LV, VG, PV
    • vim /etc/fstab 将逻辑卷的挂载命令删除或注释
    • umount /dev/newstorage/haha 卸载设备。 df -h
    • lvremove /dev/newstorage/haha
    • vgremove newstorage
    • pvremove /dev/sd[b-c]
    • lvdisplay vgdisplay pvdisplay 查看下LV, VG的信息

      第十节课

  • 配置网卡,保证网络可以连通

    • 桥接模式:复制和真机一样的网络模式
    • NAT模式:虚拟机中有虚拟的路由器,转发并上网。 VMware networker adapter vmnet8
    • host only:只能在虚拟机局域网内进行传输。 VMware networker adapter vmnet1
      • 保证IP前三位要一致,最后一位1~254,最后一位不能重复,和本机连通后可以通过ssh连接上
  • 网络方面的知识。思科 CCNA教程
  • 配置网卡的方法:

    • vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
      • ONBOOT=YES 一定要开启
      • IPADDR=192.168.50.2 PREFIX0=24 IPADDR 要和你配置的vmnet1 上的IP一样
      • 编辑-虚拟网络编辑器; 虚拟机-设置-网络适配器; vmnet1注意重启生效。就这么几个地方
    • 使用 nmtui 命令,图形化编辑网卡信息,更改addresses 信息,重启network服务,ping进行测试
    • nm-connection-editor 命令,更改IPv4 Settings 信息
      • GENERAL 选项卡的前两个一定要勾选上

        第八章,Iptables与Firewalld防火墙

  • 链接前往

  • SNAT 源地址转换协议
    • DNAT 目的地址转换协议
  • iptables 命令
    • 防火墙策略从上往下匹配(优先级)。一旦匹配上就不会继续往下匹配了
    • iptables -L 查看所有防火墙策略规则
    • iptables -F 清空默认所有的防火墙策略规则
      • ACCEPT REJECT DROP LOG
      • 考试的时候,一定要用REJECT;
    • iptables -P INPUT DROP 全部拒绝
      • iptables -I INPUT -p icmp -j ACCEPT 写进希望允许的规则
      • iptables -I INPUT -s 192.168.50.1/24 -p tcp --dport 22 -j ACCEPT 允许ssh的请求
      • -I 是将规则写入到最前面(优先级最高); -A 是写入到最后面
    • 连续添加两条规则后,要删除某一条规则 iptables -D INPUT 1 策略序号

image.png

  • iptables -P INPUT ACCEPT iptables -F iptables -L 三连
  • iptables -I INPUT -p tcp --dport 22,80,443 -j REJECT 写入拒绝策略,通过22端口从外部访问内部的时候禁止访问
    • 只说禁止端口号,要把tcp,udp都禁止上
    • iptables -L 并且,从外部还是可以ping通的
    • 查看服务属于哪种协议 cat /etc/services |grep ssh
    • 再进行ssh连接下服务器,发现连接不上了。
    • 白名单功能。在添加一条允许访问,并且在拒绝策略的上面。 注意策略顺序
      • iptables -I INPUT -s 192.168.50.173 -p tcp --dport 22 -j ACCEPT
      • -s source-来源,一个网段-192.168.10.0/24

image.png

firewalld防火墙

  • firewall-cmd 基于命令行
    • zone 区域(模板,快速切换防火墙策略)
      • firewall-cmd --get-default-zone 查询到默认的区域
      • firewall-cmd --set-default-zone=work 切换生效的区域
    • 当前生效 runtime, 重启后失效(默认)
      • 永久生效(当前不生效,重启后才生效),需要加参数—permanent
    • firewall-cmd --reload 不方便重启服务器,也可以这样
    • firewall-cmd --zone=public --query-service=https 查询某个服务是否在区域内
    • firewall-cmd --permanent --zone=public -add-service=https 添加到永久生效表中
      • 移除就是remove
    • firewall-cmd --reload 表示将永久生效表内的策略覆盖到当前表中
    • firewall-cmd --panic-on 紧急状态时,切断服务器中所有的网络连接, off解除紧急模式
    • 区域与网卡绑定,A网卡-外部,B网卡-公司内部财务,C网卡-公司内部老板
      • firewall-cmd --permanent --zone=work --change-interface=eno16777728
      • firewall-cmd --permanent --get-zone-of-interface=eno16777728 查询下这块网卡绑定的区域,注意是重启后才生效
    • firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10 转发来自外部的888端口的tcp协议的访问,至192.168.10.10:22端口
      • firewall-cmd --reload
      • firewall-cmd --zone=public --query-port=80/tcp 查询端口号、放行、移除
    • 富规则。精准匹配
      • firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject" 拒绝来自某个网段(用户)的ipv4 访问ssh服务
        • firewall-cmd --reload
  • firewall-config 基于图形化
    • 打勾就可以。
    • 考试的时候,全部勾选上,因为是只看结果。
    • 注意上面的 “Configuration” 改成Permanent
  • 一块网卡可对应多个IP地址
  • 只是对服务进行限制,tcp wrappers 是对网络应用层操作。

    • /etc/hosts.allow 允许放行, 优先级高于deny
    • /etc/hosts.deny 拒绝禁止
    • sshd : 192.168.50. 限制某个网段的所有主机访问该服务器的ssh
    • 编辑 hosts.alow 文件, sshd : 192.168.50.20 OK可以从主机通过ssh连接上

      第九章,使用ssh服务管理远程主机

  • 链接,前往

  • nmcli connection show 查看网卡规划

    • nmcli connection add con-name company ifname eno16777728 autoconnect no type ethernet ip4 192.168.50.88/24 gw4 192.168.50.1
    • nmcli connection show
    • nmcli connection add con-name house type ethernet ifname eno16777728 此情况是通过仅主机模式时,本地DHCP服务将IP分配给虚拟机
    • nmcli connection up company 启用名为 company 的模板(网卡规划)

      bonding技术

  • 绑定技术 bonding, 端口聚合技术 team。 使网速更快;提高传输速率;安全,自动备援;

  • 虚拟机添加两块网卡进行测试
    • ifconfig 分别编辑两块网卡信息,以及汇总后的bond0 的信息(没有的新建)
    • vim ifcfg-eno16777728 vim ifcfg-eno33554968 vim ifcfg-bond0
      1. TYPE=Ethernet
      2. BOOTPROTO=none
      3. ONBOOT=yes
      4. USERCTL=no
      5. DEVICE=eno16777728
      6. MASTER=bond0
      7. SLAVE=yes
  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. ONBOOT=yes
  4. USERCTL=no
  5. DEVICE=eno33554968
  6. MASTER=bond0
  7. SLAVE=yes
  1. TYPE=Ethernet
  2. BOOTPROTO=none
  3. ONBOOT=yes
  4. USERCTL=no
  5. DEVICE=bond0
  6. #MASTER=bond0
  7. IPADDR=192.168.50.26
  8. PREFIX=24
  9. #NETMASK=255.255.255.0
  10. #DNS=192.168.50.1
  11. NM_CONTROLLED=no #NetworkManager服务
  • vim /etc/modprobe.d/bond.conf 使内核支持bonding 技术
    1. alias bond0 bonding
    2. options bond0 miimon=100 mode=6 # 切换时间100毫秒
  • 启动不成功,很可能是没有加载bonding 模块所致。
    • lsmod |grep bonding
    • modprobe bonding 再次lsmod 一下,可以看到开启了
    • systemctl restart network 再次重启下网络。
    • 此时只有bond0 显示有IP地址,其余两块网卡是没有的。 如果不正确,多检查下网卡配置信息,并ifconfig eno1111111 down/up 关闭和启动网卡,并重启网络试试。
    • 在用xshell 连接一下,速度就很快了
    • 测试:移除某一块网卡,会断一次,后续仍然可以ping 通
      • 但是,只能移除后面新增的那块网卡。。。。

        以上就是RHCSA的内容

        ssh见下一页

        附注

        RHCA:
  1. selinux 关闭防火墙
  2. NetworkManager 关闭网卡的控制