2.新手必须掌握的 Linux 命令
- 2.1 强大好用的 Shell
shell(也称为终端或壳)充当的是人与内核(硬件)之间的翻译官。 - 2.2 执行查看帮助命令
man man 命令来查看 man 命令自身的帮助信息。 - 2.3 常用的系统工作命令
- echo 命令
用于在终端输出字符串或变量提取后的值。 - date 命令
用于显示及设置系统的实践或日期。 - reboot 命令
用于重启系统。 - poweroff 命令
用于关闭系统。 - wget 命令
用于在终端下载网络文件。 - ps 命令
用于查看系统中的进程状态。 - top 命令
用于动态地监视进程活动与系统负载等信息。 - pidof 命令
用于查询某个指定服务进程的 PID 值。 - kill 命令
用于终止某个指定 PID 的服务进程。 - killall 命令
用于终止某个指定名称的服务所对应的全部进程。
- echo 命令
- 2.4 系统状态检测命令
- ifconfig 命令
用于获取网卡配置与网络状态等信息。 - uname 命令
用于查看系统内核与系统版本等信息。 - uptime 命令
用于查看系统的负载信息。 - free 命令
用于显示当前系统中内存的使用量信息。 - who 命令
用于查看当前登入主机的用户终端信息。 - last 命令
用于查看所有系统的登录记录。 - history 命令
用于显示历史执行过的命令。 - sosreport 命令
用于收集系统配置及架构信息并输出诊断文档。
- ifconfig 命令
- 2.5 工作目录切换命令
- pwd 命令
用于显示用户当前所处的工作目录。 - cd 命令
用于切换工作路径。 - ls 命令
用于显示目录中的文件信息。
- pwd 命令
- 2.6 文本文件编辑命令
- cat 命令
用于查看纯文本文件(内容较少的)。 - more 命令
用于查看纯文本文件(内容较多的)。 - head 命令
用于查看纯文本文档的前 N 行。 - tail 命令
用于查看纯文本文档的后 N 行。 - tr 命令
用于替换文本文件中的字符。 - wc 命令
用于统计指定文本的行数,字数,字节数。 - stat 命令
用于查看文件的具体存储信息和时间等信息。 - cut 命令
用于按 “ 列 ” 提取文本字符。 - diff 命令
用于比较多个文本文件的差异。
- cat 命令
- 2.7 文本目录管理命令
- touch 命令
用于创建空白文本或设置文本的时间。 - mkdir 命令
用于创建空白文件或设置文本的时间。 - cp 命令
用于复制文件或目录。 - mv 命令
用于剪切文件或将文件重命名。 - rm 命令
用于删除文件或目录。 - dd 命令
用于按照指定大小和个数的数据块来复制文件或转换文件。 - file 命令
用于查看数据文件的类型。
- touch 命令
- 2.8 打包命令与搜索命令
- tar 命令
用于对文件进行打包压缩或解压。 - grep 命令
用于在文本中执行关键词的搜索。 - find 命令
用于按照指定条件来查找文件。
- tar 命令
- 复习
- 执行 Linux 系统命令时,添加参数的目的是为了能够更贴合用户的实际需求进行工作。
- Linux 系统命令,命令参数及命令对象之间,普遍应该使用一个或多个空格进行间隔。
- 在 Linux 系统中,有下面5种进程 :
a. R(运行):进程正在进行或在运行队列中等待。
b. S(中断):进程处于休眠中,当某个条件形成后或者接收到信号时,则脱离该状态。
c. D(不可中断):进程不响应系统异步信号,即便用 kill 命令也不能将其中断。
d. Z(僵死):进程已经终止,但进程描述符依然存在,直到父进程调用 wait4()系统函数 后将进程释放。
e. T(停止):进程收到停止信号后停止运行。 echo $SHELL
:用 echo 命令把 SHELL 变量值输出到屏幕终端的命令。- Q:尝试使用 Linux 命令关闭 PID 为 5529 的服务进程。
A:执行 kill 5529 命令即可;若知道服务的名称,则可以使用 killall 命令进行关闭。 - 使用 ifconfig 命令查看网络状态信息时,需要重点查看的4项信息分别是:网卡名称,IP地址,网卡物理地址以及 RX/TX 的收发流量数据大小。
- Q:使用 uptime 命令查看系统负载时,对应的负载数值如果是 0.91,0.56,0.32,那么最近的15分钟内负载压力最大的是哪个时间段?
A:通过负载数值可以看出,最近1分钟内的负载压力是最大的。 - 使用 history 命令查看历史记录的执行记录时,还可以通过 “!数字” 的命令格式重复执行某一次的命令记录,从而避免了重复输入较长命令的麻烦。
- 在使用 mkdir 命令创建有嵌套关系的目录时,应该加上 -p 递归迭代参数,从而自动化创建有嵌套关系的目录。
- 在使用 rm 命令删除文件或目录是=时,可使用 -f 参数,来避免二次确认。
- 若有一个名为 backup,tar.gz 的压缩包文件,应该执行 tar -xzvf backup.tar.gz 命令来解压。
- 使用 grep 命令对某个文件进行关键词搜索时,可使用 -v 参数来进行匹配内容的反向选择。
3.管道符,重定向与环境变量
- 3.1 输入输出重定向
标准输入重定向(STDIN,文件描述符为0)
标准输出重定向(STDOUT,文件描述符为1)
错误输出重定向(STDERR,文件描述符为2) - 3.2 管道命令符
命令A|命令B|命令C - 3.3 命令行的通配符
如果只想查看文件名为 sda 开头,但是后面还紧跟其他某一个字符的文件的相关信息,需要用到问号来进行通配。 - 3.4 常用的转义字符
反斜杠(\):使反斜杠后面的一个变量变为单纯的字符串。
单引号("):转义其中所有的变量为单纯的字符串。
双引号(""):保留其中的变量属性,不进行转义处理。
反引号(‘’):把其中的命令执行后返回结果。 - 3.5 重要的变量环境
echo $PATH
-
复习:
- 把 ls 命令的正常输出信息追加写入到 error.txt 文件中的命令是
ls >> error.txt
- 管道符的作用: 把左面(前面)命令的输出值作为右面(后面)命令的输入值以便进一步处理信息。
- Bash 解释器的通配符中,星号(*)代表
零个或多个
字符。 - PATH 变量的作用是:设定解释器搜索所执行的命令的路径。
- 使用 export LINUX 可以把名为 LINUX 的一般变量转换成全局变量。
- 把 ls 命令的正常输出信息追加写入到 error.txt 文件中的命令是
4.Vim 编辑器与 Shell 命令脚本
- 4.1 Vim 文本编辑器
命令模式
输入模式
末行模式 - 4.1.1 编写简单文档
vim practice.txt
编写名为 practice.txt 的文档。
- 4.1.2 配置主机名称
vim /etc/hostname
- 4.1.3 配置网卡信息
cd /etc/sysconfig/network-scripts/
vim ifcfg-eno16777736
systemctl restart network
- 4.1.4 配置 Yum 软件仓库
name=linuxprobe
baseurl=file:///media/cdrom
gpgcheck=1
- 4.2 编写 Shell 脚本
交互式:用户每输入一条命令就立即执行。
批处理:由用户实现编写好一个完整的 Shell 脚本,Shell 会一次性执行脚本中诸多命令。 - 4.2.1 编写简单的脚本
vim example.sh
#!/bin/bash
#For Example BY linuxprobe.com
pwd
ls -al
- 4.2.2 接收用户的参数
[root@linuxprobe ~]# vim example.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别为$*。"
echo "第1个参数为$1,第5个为$5。"
[root@linuxprobe ~]# sh exmaple.sh one two three four five six
当前脚本名称为 example.sh
总共有6个参数,分别是 one two three four five six。
第1个参数为 one,第5个为 five。
- 4.2.3 判断用户的参数
文本测试语句
逻辑测试语句
整数值比较语句
字符串比较语句 - 4.3 流程控制语句
- 4.3.1 if 条件测试语句
- 4.3.2 for 条件循环语句
- 4.3.3 while 条件循环语句
- 4.3.4 case 条件测试语句
- 4.4 计划任务服务程序
一次性计划任务
长期性计划任务
crontab -l //创建计划任务
- 复习:
- Q:怎么从输入模式切换到末行模式
A:先敲击 Esc 键退回到命令模式,然后再敲击冒号(:)键后进入末行模式 - 一个完整的 Shell 脚本应该包括 脚本声明,注释信息和可执行语句(即命令)。
- 在 Shell 脚本中,$0 代表脚本文件的名称,$3 则代表该脚本在执行时接收的第三个参数。
- if 条件测试语句包括单分支,双分支与多分支等3种结构,其中多分支结构是最灵活且最复杂的结构,其结构形式为
if...then...elif...then...else...fi
。 - for 语句循环条件的循环结构为
for 变量名 in 取值列表 do 命令序列 done
- 若在 while 条件循环语句中使用 true 作为循环条件,则此脚本中循环部分会无限地重复执行下去,直到碰到 exit 命令才会结束。
- 如果需要依据用户的输出参数执行不同的操作,最方便的条件测试语句是 case。
- Linux 系统的长期计划任务所使用的服务是 crond 服务程序,参数格式是 “分,时,日,月,星期,命令”。
5.用户身份与文件权限
- 5.1 用户身份与能力
管理员 UID 为 0;
系统用户 UID 为 1~999;
普通用户 UID 从 1000 开始。 - 5.1.1 useradd 命令
用于创建新的用户。 - 5.1.2 groupadd 命令
用于创建用户组。 - 5.1.3 usermod 命令
用于修改用户的属性。 - 5.1.4 passwd 命令
用于修改用户密码,过期时间,认证信息等。 - 5.1.5 userdel 命令
用于删除用户。 - 5.2 文件权限与归属
-:普通文件
d:目录文件
l:链接文件
b:块设备文件
c:字符设备文件
p:管道文件 - 5.3 文件的特殊权限
- 5.3.1 SUID
让二进制程序的执行者临时拥有属主的权限(仅对拥有执行权限的二进制程序有效)。 - 5.3.2 SGID
1. 让执行者临时拥有属组的权限。
2. 在某个目录中创建的文件自动集成该目录的用户组。
chmod 和 chown 命令? - 5.3.3 SBIT
可确保用户只能删除自己的文件,而不能删除其他用户的文件。 - 5.4 文件的隐藏属性
- 5.4.1 chattr 命令
用于设置文件的隐藏属性。 - 5.4.2 lsattr 命令
用于显示文件的隐藏权限。 - 5.5 文件访问控制列表
- 5.5.1 setfacl 命令
用于管理文件的 ACL (文件的访问控制列表)规则。 - 5.5.2 getfacl 命令
用于显示文件上设置的 ACL 信息。 - 5.6 su 命令与 sudo 命令
su 命令可以解决切换用户身份的需求,使得当前用户在不退出登陆的情况下,顺场地切换到其他用户。 - 复习:
1. 若某个文件的所有者具有文件的 读 /写 /执行 权限,其余人仅有读权限。那么应该用数字法表示所有者权限为 rwx ,所属组和其他人权限为 r–,即 744。
2. 某链接文件的权限用数字法表示为 755,那么对应的字符法表示应写成 lrwxr-xr-x。
3. 若对文件设置了隐藏权限 +i,则意味着 无法对文件进行修改;若对目录设置了该参数,则仅能修改其中的子文件内容而不能新建或删除文件。
4. 使用 ACL 来限制 linuxprobe 用户组,使得该组中的所有成员不得在 /tmp 目录中写入内容。setfacl -Rm g:linuxprobe:r-x /tmp
。
5. 当普通用户使用 sudo 命令时,系统在默认情况下需要认证当前登录用户的密码,若不想要认证,可添加 NOPASSWD 参数。
6.存储结构与磁盘划分
- 6.1 一切从“ / ” 开始
绝对路径
相对路径
Linux 系统中的一切文件都是从“根(/)”目录开始的,并按照文件系统层次化标准(FHS)采用树形结构来存放文件。 - 6.2 物理设备的命名规则
/dev /sda5
dev:硬件设备文件所在的目录
sd:表示 SCSI 设备; hd:表示 IDE 设备
硬盘的顺序号,以字母 a,b,c…表示
分区的顺序,以数字1,2,3…表示
- 6.3 文件系统与数据资料
Ext4:Ext3 的改进版本,能够批量分配 block 块,极大提高了读写效率。
XFS:一种高性能的日志文件系统。 - 6.4 挂载硬件设备
- 6.4.1 mount 命令
用于挂载文件系统。 - 6.4.2 umount 命令
用于撤销已经挂载的设备文件。 - 6.5 添加硬件设备
udev 服务命名规则。 - 6.5.1 fdisk 命令
用于管理磁盘分区。
mkfs 命令:把常用的文件系统名称用后缀的方式保存成了多个命令文件。 - 6.5.2 du 命令
用于查看文件数据占用量。 - 6.6 添加交换分区
使用 SWAP 分区专用的格式化命令 mkswap - 6.7 磁盘容量配额
软限制
硬限制 - 6.7.1 xfs_quota 命令
专门针对 XFS 文件系统来管理 quota 磁盘容量配额服务。 - 6.7.2 edquota 命令
用于编辑用户的 quota 配额限制。 - 6.8 软硬方式链接
硬链接
软链接- In 命令
用于创建链接文件。
- In 命令
- 复习:
- /home 目录与 /root 目录内存放的文件
相同点:都是用来存放用户的家目录数据。
不同点:/root 目录存放的是 root管理员的家目录数据。 - Q:假如一个设备的文件名称为 /dev/sdb,可以确定它是主板第二个插槽上的设备吗?
A:不一定,因为设备的文件名称是由系统的识别顺序来决定的。 - Q:如果硬盘中需要 5 个分区,至少需要几个逻辑分区?
A:可以选用创建 3 个主分区 +1 个扩展分区的方法,然后把拓展分区再分成 2 个逻辑分区,即有了 5 个分区。 - /dev/sda5 是逻辑分区!
- udev 设备管理器服务决定了设备在 /dev 目录中的名称。
- 挂载操作:当用户需要使用硬盘设备或分区中的数据时,需要先将其与一个已存在的目录文件进行关联,而这个关联动作就是 “ 挂载 ”。
- 在配置 quota 磁盘容量配额服务时,软限制数值可以小于硬限制数值。
- 若原始文件被改名,那么之前创建的硬链接还可以访问到这个原始文件。
- /home 目录与 /root 目录内存放的文件
7.使用 RAID 与 LVM 磁盘阵列技术
- 7.1 RAID(独立冗余磁盘阵列)
- 7.1.1 RAID 0
- 7.1.2 RAID 1
- 7.1.3 RAID 5
- 7.1.4 RAID 10
- 7.1.5 部署磁盘阵列
mdadm 命令用于管理 Linux 系统中的软件 RAID 硬盘阵列。 - 7.1.6 损坏磁盘列阵及修复
- 7.1.7 磁盘阵列 + 备份盘
RAID 中的这种备份盘技术非常实用。 - 7.2 LVM(逻辑卷管理器)
- 7.2.1 部署逻辑卷
功能/命令 物理卷管理 卷组管理 逻辑卷管理 扫描 pvscan vgscan lvscan 建立 pvcreate vgcreate lvcreate 显示 pvdisplay vgdisplay lvdisplay 删除 pvremove vgremove lvremove 扩展 vgextend lvextend 缩小 vgreduce lvreduce - 7.2.2 扩容逻辑卷
- 7.2.3 缩小逻辑卷
- 7.2.4 逻辑卷快照
- 7.2.5 删除逻辑卷
- 复习:
- RAID 技术可以解决存储设备的读写速度问题及数据的冗余备份问题。
- Q:RAID 0 和 RAID 5 哪个更安全?
A:RAID 0 没有数据冗余功能,因此 RAID 5 更安全。 - 假设使用 4 块硬盘来部署 RAID 10 方案,外加一块备份盘,最多允许 5 块硬盘设备中的 3 块设备同时损坏。
- 位于 LVM 最底层的是物理卷,然后是通过物理卷组成卷组。
- LVM 对逻辑卷的扩容和缩容操作都需要先取消逻辑卷与目录的挂载关联;
扩容操作是先扩容后检查文件系统完整性,而缩容操作为了保证数据的安全,需要先检查文件系统完整性再缩容。 - LVM 的快照卷只可使用一次,而且使用后即自动删除。
- LVM 的删除顺序依次是 逻辑卷,卷组 和 物理卷。
8.iptables 与 firewalld 防火墙
- 8.1 防火墙管理工具
iptables 服务会把配置好的防火墙策略交由内核层面的 netfilter 网络过滤器来处理。
firewalld 服务是把配置好的防火墙策略交由内核层面的 nftables 包过滤框架来处理。 - 8.2 iptables
- 8.2.1 策略与规则链
ACCEPT(允许流量通过)
REJECT(拒绝流量通过)
LOG(记录日志信息)
DROP(拒绝流量通过) - 8.2.2 iptables 中基本的命令参数
iptables -L
查看已有的防火墙规则链
iptables -F
清空已有的防火墙规则链 - 8.3 firewalld
- 8.3.1 终端管理工具
流量转发命令格式为firewall-cmd --permanent --zone=<区域> --add-forward-port=port=<源端口号>:proto=<协议>:toport=<目标端口号>:toaddr=<目标 IP 地址>
- 8.3.2 图形管理工具
firewalld-config ————GUI工具
SNAT (源网络地址转换)技术:为了解决 IP 地址匮乏而设计的技术,它可以使得多个内网中的用户通过同一个外网 IP 接入 Internet(互联网)。 - 8.4 服务的访问控制列表
TCP Wrappers 默认启用的一款流量监控程序。
先依次匹配允许策略配置文件,然后再依次匹配拒绝策略配置文件,如果都没有匹配到,则默认放行流量。 - 复习:
- Q:如何把 iptables 服务的 INPUT 规则链默认策略设置为 DROP?
A:执行命令iptables -P INPUT DROP
即可。 - Q:怎样编写一条防火墙策略规则,使得 iptables 服务可以禁止源自 192.168.10.0/24 网段的流量访问本机的 sshd 服务(22端口)?
A:执行命令iptables -I INPUT -s 192.168.10.0/24 -p tcp --dport 22 -j REJECT
即可。 - firewalld 中区域的作用:可以依据不同的工作场景来调用不同的 firewalld 区域,实现大量防火墙策略规则的快速切换。
- 在 firewalld 中把默认的区域设置为 dmz :
firewalld-cmd --set-default-zone=dmz
。 - 让 firewalld 中以永久(Permanent)模式配置的防火墙策略规则立即生效:
firewalld-cmd --reload
。
- Q:如何把 iptables 服务的 INPUT 规则链默认策略设置为 DROP?
9.使用 ssh 服务管理远程主机
- 9.1 配置网络服务
- 9.1.1 配置网络参数
激活网卡:使用 Vim 编辑器将网卡配置文件中的 ONBOOT 参数修改成 yes。 - 9.1.2 创建网络会话
nmcli 一款基于命令行的网络配置工具,轻松地查看网络信息或网络状态。
nmcli connection show
- 9.1.3 绑定两块显卡
- 9.2 远程控制服务
- 9.2.1 配置 sshd 服务
# vim /etc/ssh/sshd_config
48 PermitRootLogin no
- 9.2.2 安全密钥验证
ssh -keygen
在客户端主机中生成“密钥对”。 - 9.2.3 远程传输命令
scp 是一个基于 SSH 协议在网络之间进行安全传输的命令。 - 9.3 不间断会话服务
screen 是一款能够实现多窗口远程控制的开源服务程序。 - 9.3.1 管理远程会话
screen -S 参数创建会话窗口
screen -d 将指定会话进行离线处理
screen -r 回复指定会话
screen -x 一次性恢复所有会话
screen -ls 显示当前已有的会话
screen -wipe 把当前无法使用的会话删除
- 9.3.2 会话共享功能
screen 服务程序能够让用户实现远程控制的不间断会话服务,即便网络发生中断也不会丢失对远程主机的会话控制。那么想要恢复到一个名为 linux 的会话窗口时,应该执行screen -r linux
。 - 复习:
- 使用 nmcli 命令来管理网卡会话的目的是为了快速切换网卡参数,以便适应不同的工作场景。
- 网卡绑定技术 mode6 模式的特点:平时两块网卡均工作,且自动备援,无需交换机设备提供辅助支持。
- 在 Linux 系统中,当通过修改其配置文件中的参数来配置服务程序时,若想要让新配置的参数生效,需要重新启动相关的服务程序,或让服务程序重新加载配置文件,或重启系统。
- sshd 服务的口令验证与密钥验证方式,一般情况下,密钥验证方式更加安全。若用户若认证有更高的安全需求,还可以再对密钥文件进行口令加密,从而实现双重加密。
- 想要把本地文件 /root/out.txt 传送到地址为 192.168.10.20 的远程主机的 /home 目录下,且本地主机与远程主机均为 Linux 系统,最为简便的传送方式是: 执行命令 scp /root/out.txt root@192.168.10.20:/home ,并在进行口令验证后即可开始传送。
- 配置 Yum 仓库的步骤 :
首先应该创建挂载目录并把光盘镜像文件与其关联,然后修改 Yum 的配置文件,填写入相关参数,尤其需要注意挂载目录的存放路径要正确无误,最后便可使用 Yum 命令来安装相关的服务程序了。
10.使用 Apache 服务部署静态网站
- 10.1 网站服务程序
IIS(Internet Information Services,互联网信息服务)是一款图形化的网站管理工具。 - 10.2 配置服务文件参数
在 httpd 服务程序的主配置文件中,存在三种类型的信息:注释行信息,全局配置,区域配置。
全局配置参数:是一种全局性的配置参数,可作用于对所有的子站点;
区域配置参数:是单独针对于每个独立的子站点进行设置的;
注释信息:一般是对服务程序的功能或某一个参数进行介绍。 - 10.3 SELinux 安全子系统
enforcing:强制启动安全策略模式,将拦截服务的不合法请求。
permissive:遇到服务越权访问时,只发出警告而不强制拦截。
disabled:对于越权的行为不警告也不拦截。
作用:为了让各个服务进程都受到约束,使其仅获取到本应获取的资源。 - 10.4 semanage 命令
用于管理 SELinux 的策略。
-l :用于查询;
-a :用于添加;
-m :用于修改;
-d :用于删除。
建议在日常工作中要养成将所需服务添加到开机启动项中的习惯,比如添加systemctl enable httpd
。 - 10.4 个人用户主页功能
getsebool 命令查询并过滤出所有与 HTTP 协议相关的安全策略。 - 10.5 虚拟主机功能
VPS 虚拟专用服务器 - 10.5.1 基于 IP 地址
- 10.5.2 基于主机域名
- 10.5.3 基于端口号
- 10.6 Apache 的访问控制
Apache 可以基于源主机名,源 IP 地址或源主机上的浏览器特征等信息对网站上的资源进行访问控制。 - 复习题
- Web 网络服务:一种允许用户通过浏览器访问到互联网中各种资源的服务。
- 相较于 Nginx 服务程序, Apache 服务程序最大的优势是:具有跨平台特性,安全性,而且拥有快速,可靠,简单的 API 扩展。
- httpd 服务在未找到网站首页文件时,会向访客显示一个默认界面。
- 在使用 semanage 命令修改了文件上应用的 SELinux 安全上下文后,还需要执行 restorecon 命令即可让新的 SELinux 安全上下文参数立即生效。
- 要想查询并过滤出所有与 HTTP 协议相关的 SELinux 域策略有哪些,可以结合管道符来实现,即执行 getsebool -a | grep http 命令。
- Q:相对于基于 IP 地址和基于主机名(域名)配置的虚拟主机网站来说,使用端口号配置虚拟主机网站有哪些特点?
A:在使用端口号来配置虚拟主机网站时,必须要考虑到 SELinux 域对 httpd 服务程序所用端口号的控制策略,还要在 httpd 服务程序的主配置文件中使用 Listen 参数来开启要监听的端口号。
11.使用 vsftpd 服务传输文件
- 11.1 文件传输协议
主动模式:FTP服务器主动向客户端发起连接请求。
被动模式:FTP服务器等待客户端发起连接请求(FTP的默认工作状态)。 - 11.2 vsftpd 服务程序
匿名开放模式:是一种最不安全的认证模式,任何人都可以无需密码验证而直接登录到 FTP服务器。
本地用户模式:是通过 Linux 系统本地的账号密码信息进行认证的模式,相较于匿名开放模式更安全,而且配置起来也很简单。但是如果被黑客破解了账户的信息,就可以畅通无阻地登录 FTP 客户端,从而完全控制整台服务器。
虚拟用户模式:是这3种模式中最安全的一种认证模式,它需要为 FTP 服务单独建立用户数据库文件,虚拟出用来进行口令验证的账户信息,而这些账户信息在服务器系统中实际上是不存在的,仅供 FTP 服务程序进行认证使用。 - 11.2.1 匿名开放模式
# setsebool -P ftpd_full_access=on
- 11.2.2 本地用户模式
- 11.2.3 虚拟用户模式
PAM (可插拔认证模块)是一组安全机制的模块(插件),系统管理员可以用来轻易地调整服务程序的认证方式,而不必对应用程序进行过多修改。 - 11.3 简单文件传输
# yum install tftp-server tftp
- 复习:
- 简述 FTP 协议的功能及其所占用的端口号;
FTP 是一种在互联网中进行文件传输的协议,默认使用 20,21 号端口,其中端口 20 (数据端口)用于进行数据传输,端口 21(命令端口)用于接受客户端发起的相关 FTP 命令 与参数。 - 使用匿名开放模式登录到一台用 vsftpd 服务程序部署的 FTP 服务器上时,默认的 FTP 根目录时 /var/ftp 目录,该目录内默认还会有一个名为 pub 的子目录。
- 使用虚拟用户模式登录 FTP 服务器的所有用户权限不一定一样,可以通过分别定义用户权限来为每一位用户设置不同的权限。
- TFTP 协议与 FTP 协议有什么不同?
TFPT 协议提供不复杂,开销不大的文件传输服务(可将其当作 FTP 协议的简化版本)。
- 简述 FTP 协议的功能及其所占用的端口号;
12.使用 Samba 或 NFS 实现文件共享
- 12.1 Samba 文件共享服务
在 Linux 系统与 Windows 系统之间共享文件的最佳选择。 - 12.1.1 配置共享资源
pdbedit 命令用于管理 SMB 服务程序的账户信息数据库。 - 12.1.2 Windows 访问文件共享服务
只需在 Windows 的 “运行” 命令框中输入两个反斜杠,然后再加上服务器的 IP 地址即可。 - 12.1.3 Linux 访问文件共享服务
yum install cifs-utils
支持文件共享服务的软件包(cifs-utils).
- 12.2 NFS(网络文件系统)
yum install nfs-utils
- 12.3 autofs 自动挂载服务
yum install autofs
autofs 服务程序是在用户需要使用该文件系统时才去动态挂载,从而节约了网络资源和服务器的硬件资源。
- 复习:
- 用于管理 Samba 服务程序的独立账户信息数据库命令是: pdbedit
- 在 Linux 系统中使用 Samba 服务程序来共享资源的步骤方法:
首先应创建密码认证文件以及挂载目录,然后把挂载信息写入到 /etc/fstab 文件中,最后执行 mount -a 命令挂载使用。 - 在使用 NFS 服务共享资源时,若希望无论 NFS 客户端使用什么账户来访问共享资源,都会被映射为本地匿名用户,则需要添加 all_squash 参数,以便更好地保证服务器的安全。
- 客户端在查看到远程 NFS 服务器上的共享资源列表时,需要使用 showmount 命令。
13.使用 BIND 提供域名解析服务
- 13.1 DNS 域名解析服务
DNS 技术提供的 3 种类型的服务器: DNS 主服务器,DNS 从服务器与 DNS 缓存服务器。
DNS 服务器之间传输区域数据文件时,使用的是迭代查询;
而用户与 DNS 服务器之间是递归查询。 - 13.2 安装 bind 服务程序
BIND (伯克利因特网名称域)服务是全球范围内使用最广泛,最安全可靠且高效的域名解析服务程序。
chroot 插件能够有效地限制 Bind 服务程序仅能对自身的配置文件进行操作,以确保整个服务器的安全。
yum install bind-chroot
主配置文件
区域配置文件
数据配置文件目录
- 13.2.1 正向解析实验
正向解析是将指定的域名转换为 IP 地址。
nslookup 命令用于检测能否从 DNS 服务器中查询到域名与 IP 地址的解析记录,进而更准确地检验 DNS 服务器是否已经能够为用户提供服务。 - 13.2.2 反向解析实验
反向解析是将 IP 地址转换为域名。 - 13.3 部署从服务器
部署 DNS 从服务器可以减轻主服务器的负载压力,还可以提升用户的查询效率。 - 13.4 安全的加密传输
dnssec-keygen 命令用于生成安全的 DNS 服务密钥。 - 13.5 部署缓存服务器
DNS 缓存服务器把用户经常使用到的域名与 IP 地址的解析记录保存在主机本地,从而提升下次解析的效率。一般用于经常访问某些固定网站而且对这些网站的访问速度有较高要求的企业内网中,但实际的应用并不广泛。 - 13.6 分离解析技术
作用:可以让位于不同地理范围内的读者通过访问相同的网址,而从不同的服务器获取到 相同的数据以提升访问效率。 - 复习:
Q:当用户与 DNS 服务器之间传输数据配置文件时,是否可以使用 TSIG 加密机制来确保内容不会被篡改?
A:不能,TSIG 加密机制保障的是 DNS 服务器与 DNS 服务器之间迭代查询的安全。
14.使用 DHCP 动态管理主机地址
- 14.1 动态主机配置协议
DHCP 协议为局域网内部的设备或网络供应商自动分配 IP 地址等参数。 - 14.2 部署 dhcpd 服务程序
yum install dhcp
- 14.3 自动管理 IP 地址
DHCP 协议能够为客户端分配 IP地址,子网掩码,网关地址以及 DNS 地址等信息。 - 14.4 分配固定 IP 地址
DHCP 协议中 “租约” 的作用:分别为默认租约时间和最大租约时间,用于在租约时间到期后自动回收主机的 IP 地址,以免造成 IP 地址的浪费。 - 复习:
- 真正供用户使用的 IP 地址范围是地址域,因为作用域内还会包含要排除掉的 IP 地址。
- 把 IP 地址与主机网卡的 MAC 地址信息绑定,就可以保证该主机一直获取到固定的 IP 地址。
15.使用 Postifx 与 Dovecot 部署邮件系统
- 15.1 电子邮件系统
简单邮件传输协议(SMTP)
邮局协议版本3
Internet 消息访问协议版本4 - 15.2 部署基础的电子邮件系统
listen-on port 53 { any; };
allow-query { any; } ;
- 15.2.1 配置 Postfix 服务程序
Postfix 是一款由 IBM 资助研发的免费开源电子邮件服务程序。
yum install postfix
- 15.2.2 配置 Dovecot 服务程序
Dovecot 是一款能够为 Linux 系统提供 IMAP 和 POP3 电子邮件服务的开源服务程序。
yum install dovecot
- 15.2.3 测试电子邮件系统
MUA 用于收发邮件
MTA 用于转发邮件
MDA 用于保存邮件 - 15.3 设置用户别名信箱
可直接修改邮件别名服务的配置文件,并在保存退出后执行 newaliases 命令即可让新的用户别名立即生效。 - 复习:
- 使用 Postfix 与 Dovecot 部署电子邮件系统前,需要先配置部署 DNS 域名解析服务,以 便提供信箱地址解析功能。
- Q:能否让 Dovecot 服务程序限制允许连接的主机范围?
A:可以,在 Dovecot 服务程序的主配置文件中修改 login_trusted_networks 参数值即可。
这样可在不修改防火墙策略的情况下限制来访的主机范围。 - Q:使用 Outlook 软件连接电子邮件服务器的地址 mail.linuxprobe.com 时,提示找不到服务器或连接超时,这可能是什么原因导致的呢?
A:很有可能是 DNS 域名解析问题导致的连接超时,可在服务器与客户端分别执行 ping mail.linuxprobe.com 命令,测试是否可以正常解析出 IP 地址。
16.使用 Squid 部署代理缓存服务
- 16.1 代理缓存服务
Squid 是 Linux 系统中最为流行的一款高性能代理服务软件。 - 16.2 配置 Squid 服务程序
代理模式:正向代理模式与反向代理模式,其中正向代理模式又分为标准正向代理模式与透明正向代理模式。
yum install squid
- 16.3 正向代理
正向代理:实现代理上网,隐藏用户的真实访问信息以及控制用户访问网站行为的访问控制列表(ACL)进行限制。 - 16.3.1 标准正向代理
与透明正向代理模式的区别:在于用户是否需要配置代理服务器的信息。
若使用透明代理模式,则用户感知不到代理服务的存在。 - 16.3.2 ACL 访问控制
- 16.3.3 透明正向代理
由 DHCP 服务器将网络配置信息分配给客户端主机。 - 16.4 反向代理
原理:把一部分原本向网站源服务器发起的用户请求交给 Squid 服务器缓存节点来处理。
反向代理:加快用户访问网站的速度,降低网站源服务器的负载压力。 - 复习:
- 使用 Squid 服务程序提供的标准正向代理模式时,需要在浏览器中填写 Squid 服务器的 IP 地址及端口号信息。
- 若需要通过 ACL 功能限制用户不能使用代理服务器访问指定网站,该以配套学习网站(www.linuxprobe.com)为例,可使用参数 “acl deny_urlurl_regex http://www.linuxprobe.com" 和 ”http_access deny deny_url“ 来禁止用户访问这个指定的网站。
- 若让客户端主机使用透明正向代理模式,则需要用 DHCP 服务器为客户端主机分配 IP 地址,子网掩码,网关地址以及外部 DNS 服务器地址。
17.使用 iSCSI 服务部署网络存储
- 17.1 iSCSI 技术概述
IDE:是一种成熟稳定,价格便宜的并行传输端口。
SATA:是一种传输速度更快,数据校验更完整的串行传输接口。
SCSI:是一种用于计算机和硬盘,光驱等设备之间系统级接口的通用标准,具有系统资源占有率极低,转速高,传输速度快等优点。 - 17.2 创建 RAID 磁盘阵列
使用 mdadm 命令创建 RAID 磁盘列阵。 - 17.3 配置 iSCSI 服务端
iSCSI 存储技术通过把硬件存储设备与 TCP/IP 网络协议相互结合,使得用户可以通过互联网方面地访问远程机房提供的共享存储资源。
yum -y install targetd targetcli
- 17.4 配置 Linux 客户端
yum install iscsi-initiator-utils
blkid 命令用于查看设备名称,文件系统及 UUID。
- 17.5 配置 Windows 客户端
在使用 Windows 系统来访问 iSCSI 共享存储资源时,它有两个步骤与 Linux 系统一样,分别是扫描并发现服务端可用的 iSCSI 共享存储资源;验证登录。 - 复习:
1. iSCSI 服务端程序为 targetd,iSCSI 客户端程序为 initiator。
2. Q:在使用 targetcli 命令配置 iSCSI 服务端配置文件时,acls 与 portals 参数目录中分别存放着什么内容?
A:acls 参数目录用于存放能够访问 iSCSI 服务端共享存储资源的客户端名称,portals 参数目录用于定义由服务器的哪个 IP 地址对外提供共享存储资源服务。
3. iSCSI 协议占用了服务器 TCP 协议的 3260 端口号。
4. Q:用户在填写 fstab 设备挂载配置文件时,一般会把远程存储资源的 UUID (而非设备的名称)填写到配置文件中。这是为什么?
A:在 Linux 系统中,设备名称是由 udev 服务进行管理的,而 udev 服务的是设备命名规则是由设备类型及系统识别顺序等信息共同组成的。考虑到网络存储设备具有识别顺序不稳定的特点,所以为了避免识别顺序混乱造成的挂载错误问题,故使用 UUID 进行挂载操作。
18.使用 MariaDB 数据库管理系统
- 18.1 数据库管理系统
MariaDB 由开源社区进行维护,且不受商业专利限制。 - 18.2 初始化 MariaDB 服务
yum install mariadb mariadb-server
systemctl start mariadb
systemctl enable mariadb
mysql_secure_installation //初始化 MariaDB 或 MySQL 数据库管理系统的命令
mysql -u root -p
show databases;
SET password = PASSWORD('linuxprobe');
- 18.3 管理账户以及授权
CREATE USER 用户名@主机名 IDENTIFIED BY 密码;
use mysql;
想针对于某个账户进行授权或取消授权操作,需执行 GRANT 命令;
取消授权则需执行 REVOKE 命令。
- 18.4 创建数据库与表单
- 18.5 管理表单及数据
- 18.6 数据库的备份及恢复
要想把 linuxprobe 数据库中的内容导出为一个文件(保存到 root 管理员的家目录中),应执行mysqldump -u root -p linuxprobe > /root/linuxprobeDB.dump
命令。
19.使用 PXE + Kickstart 无人值守安装服务
- 19.1 无人值守安装系统
需要用到 SYSLinux 引导服务,DHCP 服务,vsftpd 文件传输服务(或 httpd 网络服务),TFTP 服务以及 Kickstart 应答服务。 - 19.2 部署相关服务程序
- 19.2.1 配置 DHCP 程序服务
yum install dhcp
vim /etc/dhcp/dhcpd.conf
systemctl restart dhcpd
systemctl enable dhcpd
- 19.2.2 配置 TFTP 服务程序
启动 TFTP 服务:需要在 xinetd 服务程序的配置文件中把 disable 参数改成 no。
yum install tftp-server
vim /etc/xinetd.d/tftp
firewall-cmd --permanent --add-port=69/udp
firewall-cmd --reload
- 19.2.3 配置 SYSLinux 服务程序
yum install syslinux
cd /var/lib/tftpboot
cp /usr/share/syslinux/pxelinux.0
vim pxelinux.cfg/default
在 /uer/share/syslinux 目录中会出现很多引导文件。
- 19.2.4 配置 vsftpd 服务程序
yum install vsftpd
systemctl restart vsftpd
systemctl enable vsftpd
cp -r /media/cdrom/* /var/ftp
firewall-cmd --permanent --add-service=ftp
firewall-cmd --reload
setsebool -P ftpd_connect_all_unreserved=on
- 19.2.5 创建 KickStart 应答文件
vim /var/ftp/pub/ks.cfg
作用: KickStart 应答文件中包含了系统安装过程中需要使用的选项和参数信息,客户端主机在安装系统的过程中可以自动调取这个应答文件的内容,从而彻底实现无人值守安装系统。
- 19.3 自动部署客户端主机
在 VMware Workstation 虚拟机软件中,DHCP 服务总是分配错误的 IP 地址的原因可能是:虚拟机的虚拟网络编辑器中自带的 DHCP 服务可能没有关闭,由此产生了错误分配的 IP 地址的情况。 - 复习:
1. Q:在开机选项菜单中,把 default 参数设置成 linux 的作用是什么?
A:目的是让系统自动开始安装过程,而不需要运维人员再去选择是安装系统还是校验镜像文件。
2. 安装 vsftpd 文件传输服务或 httpd 网站服务的作用是:把光盘镜像文件完整,顺利地传送到客户端主机。
20.使用 LNMP 架构部署动态网站环境
- 20.1 源码包程序
最大优点:使用源码包安装服务程序的最大优势是,服务程序的可移植性好,而且能更好地提升服务程序的运行效率;
缺点:源码包程序的安装,管理,卸载和维护都比较麻烦。 - 20.2 LNMP 动态网络架构
yum install -y apr* autoconf automake bison bzip2 bzip2*
LNMP 动态网站部署架构通常包含 Linux 系统,Nginx 网站服务,MySQL 数据库管理系统,以及 PHP 脚本文件。
- 20.2.1 配置 MySQL 服务
/usr/local/mysql 用于保存 MySQL 数据库服务程序的目录,
/usr/local/mysql/var 用于保存真实数据库文件的目录。 - 20.2.2 配置 Nginx 服务
相较于 Apache 服务程序,Nginx 服务程序比较稳定,原因是采用了资源分配技术,降低了 CPU 与内存的占用率,所以使用 Nginx 程序部署的动态网站环境不仅十分稳定,高效,而且消耗的系统资源也很少。 - 20.2.3 配置 PHP 服务
禁用 php 服务程序中不安全的功能:编辑 php 服务程序的配置文件(/uer/local/php/etc/php.ini),把要禁止的功能追加到 disable_functions 参数之后即可。 - 20.3 搭建 Discuz!论坛
UCenter Server 是站点的管理平台,能够在多个站点之间同步会员账户及密码信息。 - 20.4 选购服务器主机
虚拟主机
VPS
ECS
独立服务器 - 复习:
- 使用源码包的方式来安装软件服务的大致步骤:下载及解压源码包文件,编译源码包代码,生成二进制安装程序,运行二进制的服务程序安装包。
- 对于处于创业阶段的小站长群体来说,适合购买云服务器类型,不但费用便宜,而且性能也十分强劲。