Loading

网络安全-系统目录、文件及软件程序

系统根下目录结构详解

# 用※进行标注的需要重点关注
01	/bin ※	该目录为binaries英文的缩写,是常用的二进制命令所在的目录。
比如:ls cp mkdir rm等命令;/bin目录已成为/usr/bin的软链接
02	/sbin ※	英文system binaries的缩写,大多涉及系统管理命令的存放,是超级权限用户root可执行命令的存放地,这个目录与/usr/sbin,/usr/X11R6/sbin或/usr/local/sbin目录是相似的;系统级命令,一般最好是通过sudo让普通用户执行这些命令,常见的命令有fdisk、reboot、fsck、halt等
03	/boot ※	Linux的内核及系统引导程序所需的文件目录。安装系统分区的时候一般要单独分一个boot分区,大小可为256MB~1024MB,该分区的数据增长很小,/boot目录就是引导分区的挂载点
04	/dev ※	设备文件的目录,比如声卡、磁盘、光驱、等等。
05	/etc ※	·二进制软件安装包(yum rpm)等配置文件的默认路径,例如:/etc/exports、/etc/hosts
06	/home ※	普通用户的家目录,默认数据存放目录
07	/root ※	Linux超级权限用户root的家目录
08	/lib	英文libraries的缩写,启动系统和运行命令所需的共享库文件和内核模块存放目录,例如 /bin和/sbin下的某些命令,分为/lib和/lib64两种
09	/lost+found	在ext3文件系统中,当系统以外崩溃或机器以外关机时,会在这里产生一些文件碎片。系统在开机启动的过程中,fsck工具会检查这里,并修复已经损坏的文件系统。当系统发生问题时,可能会有文件被移到这个目录中,可能需要通过手工的方式来进行修复,或者移文件到原来的位置上。
10	/media	可移除的媒体的挂载点,例如:CD-ROM、U盘等的挂载,使用效率较低
11	/mnt ※	英文Mount point的缩写,用作文件系统的临时挂载点,也可以作为CD-ROM、U盘等挂载,使用频率较高
12	/opt	英文option的缩写,表示的意思是可选择,被保留用于安装额外的应用软件包目录,例如:通过源码包安装的软件,可以通过 "./configure -prefix=/opt/" 命令设置将软件安装在/opt下,但并非必须这样,具体应视习惯或规范而定
13	/proc ※	操作系统运行时,进程信息及内核信息(比如CPU 硬盘分区 内存信息等)均存在在这里。/proc目录是虚拟文件系统的挂载点,proc并不是真正的文件系统。系统运行时,很多信息都在这个目录下。(此目录中数据存储放在内存中)
14	/tmp ※	英文Temporary files的缩写,为临时文件目录,有时用户运行程序的时候,会产生临时文件。/tmp就是用来存放临时文件的,权限比较特殊。/var/tmp目录与这个目录比较相似,这个目录可以用作Linux系统的回收站。
15	/usr ※	英文解释是第二层次标准,这是系统存放程序的目录,比如命令、帮助文件等。这个目录下有很多文件和目录。当安装一个Linux发行版官方提供的软件包时,大多安装在这里。/usr一般被认为是unix software resource的缩写。
16	/var ※	英文variable data的缩写,这个目录的内容是经常变动的,看名字就知道,可以将其理解为vary的缩写,/var下有/var/log,这里用来存放系统日志的目录;/var/lib用来存放一些库文件。
17	/srv	srv可以视为service的缩写,可用于存放为用户提供服务的数据所在的目录,例如:www ftp数据。
18	/sys	与/proc类似,也是虚拟的文件系统,用于存放内核等信息的目录,包含内内核、总线、设备、模块组、电源选项等。

磁盘挂载

在Linux系统中是没有盘符概念的。

挂载的作用:就是将一个设备(通常是存储设备)挂接到一个已存在的目录上。访问这个目录就是访问该存储设备。

磁盘管理挂载操作

# mount 参数 存储设备 挂载点目录
01	-a	挂载所有在/etc/fstab中定义的文件系统
02	-t	指定文件系统的类型
# 对存储设备进行挂载操作(临时挂载)
# 进行光驱设备挂载过程
# 01-在虚拟主机中加载系统镜像
[root@hkw ~]# ll /dev/cdrom
lrwxrwxrwx. 1 root root 3 9月   1 02:47 /dev/cdrom -> sr0
# 02-在系统中进行光驱挂载过程
[root@hkw ~]# ll /mnt              
total 0
-- 默认mnt目录没有挂载时,就只是根目录下的一个子目录,里面并没有数据信息
[root@hkw ~]# mount /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
-- 经mnt目录和光驱设备进行关联,光驱存储设备默认为只读状态
# 03-进入挂载目录检查数据信息
[root@hkw ~]# ls /mnt
CentOS_BuildTag  EULA  LiveOS     RPM-GPG-KEY-CentOS-7                TRANS.TBL  isolinux
EFI                           GPL   Packages  RPM-GPG-KEY-CentOS-Testing-7  images        repodata
# 说明:以上操作为系统临时挂载,当系统重启后,以上操作配置会失效。

磁盘管理卸载操作

# umount 参数 挂载点目录
01	-l	表示不用进行目录切换,完成挂载点目录的卸载
02	-f	表示在挂载点目录中,如果有数据信息被服务或系统加载,可以实现强制卸载
# 基本卸载操作过程
[root@hkw ~]# umount /mnt
-- 表示此时sdb1存储设备和xiaoQ_mount目录建立了挂载关系
# 说明:卸载操作过程是一定风险的,在企业中最好进行确认,再进行卸载操作。

重要系统文件介绍

系统网卡配置文件

# 系统网卡文件默认名称
/etc/sysconfig/network-scripts/ifcfg-ens33
# 系统网卡文件常用名称
/etc/sysconfig/network-scripts/ifcfg-eth0

文件介绍:

这是Linux系统第一块网卡的配置文件所在的路径,其中第一块网卡配置文件的结尾标识为eth0(ens33),第二块为eth1(ens34),以此类推。
当通过执行命令nmtui来修改网卡配置时,实际上就是在修改这个/etc/sysconfig/network-scripts/ifcfg-eth0文件,所以也可以通过直接编辑该文件的方式实现对网卡配置的更改。

文件信息:

[root@hkw /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet                            
-- 上网类型,目前基本上都是以太网
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none                    
-- 启动协议,获取配置方式,有none/static|bootp|dhcp三种选项配置
DEFROUTE=yes
-- 使用默认路由(可以保证主机正常访问互联网)
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
-- 第一块网卡的逻辑设备名,第二块为eth1
UUID=0601d4ac-d6a5-447a-8e9c-c71e3efda9f6
-- 通用唯一识别码(Universally Unique Identifier),如果是vm克隆虚拟机,会无法启动网卡,需删除此项
DEVICE=eth0
-- 第一块网卡的逻辑设备名,第二块为eth1
ONBOOT=yes
-- 这个地方要为yes,才能保证下次开机启动时激活网卡设备
IPADDR=10.0.0.100
-- 这是虚拟机桥接模式,局域网Linux服务器的固定IP地址
PREFIX=24
-- 子网掩码位数,这里是24位
GATEWAY=10.0.0.254
-- 局域网上网网关地址
DNS1=223.5.5.5  阿里云
DNS2=223.6.6.6
-- 主DNS,这里默认会覆盖以及优先于/etc/resolv.conf的配置生效
IPV6_PRIVACY=no

文件生效:

# 配置完网卡之后,可以通过重启网络服务,来使得所有网卡的配置文件生效。

[root@hkw /]# systemctl restart network
或者
[root@hkw /]# service network restart
# 查看网络状态信息
[root@hkw /]# systemctl status network
   network.service - LSB: Bring up/down networking
   Loaded: loaded (/etc/rc.d/init.d/network; bad; vendor preset: disabled)
   Active: active (exited) since Wed 2021-12-08 16:57:07 CST; 27s ago

如果只需让某个单独的ethX网卡配置生效,则可以通过以下命令操作:

# 常规用法
[root@hkw /]# ifdown eth0 && ifup eth0

# 扩展用法
[root@hkw /]# nmcli con down eth0 && nmcli con up eth0

说明:以上文件配置完毕后,重启网络服务之后,只要可以利用ping命令访问外网主机地址或域名即可。

如何修改网卡名称信息

系统安装过程中修改
# 开机时Tab键-在启动配置信息中添加如下信息:
net.ifnames=0 biosdevname=0
系统安装完毕后修改
# 编辑网卡配置文件中网卡名称信息
[root@hkw /]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=none 
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=eth0
-- 修改网卡设备逻辑名称
UUID=0601d4ac-d6a5-447a-8e9c-c71e3efda9f6
DEVICE=eth0
-- 修改网卡设备逻辑名称
ONBOOT=yes
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.254
DNS1=223.5.5.5
DNS2=223.6.6.6
IPV6_PRIVACY=no

# 重命名网卡配置文件名称信息
[root@hkw ~]# cd /etc/sysconfig/network-scripts/
[root@hkw network-scripts]# mv ifcfg-ens33 ifcfg-eth0

# 修改网卡名称规则内核文件
[root@hkw ~]# cat /etc/default/grub 
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0"
-- 在GRUB_CMDLINE_LINUX最后添加网卡名称修改配置参数 net.ifnames=0 biosdevname=0
GRUB_DISABLE_RECOVERY="true"

# 使系统重新加载grub配置文件
[root@hkw ~]# grub2-mkconfig -o /boot/grub2/grub.cfg

# 重启操作系统,进行查看确认
[root@hkw ~]# reboot

系统DNS客户端配置文件

cat /etc/resolv.conf
--- 可以有很多行的nameserver,每一个带一个IP地址。
--- 在查询时就按nameserver在本文件中的顺序进行,且只有当第一个nameserver没有反应时才查询下面的nameserver。
# 在网卡配置文件里配置的DNS会覆盖/etc/resolv.conf里的DNS配置信息。(/etc/sysconfig/network-scripts/ifcfg-eth0)

系统DNS客户端解析文件

cat /etc/hosts
# 文件信息配置完毕保存后立即生效。

系统主机名称配置文件

cat /etc/hostname 
# 说明:系统主机名称最好有合理规划,不要多台企业环境主机公用一个系统名称。
# 经验:主机业务名称.区域.位置

配置系统环境变量

# 全局配置文件
/etc/profile
/etc/bashrc
# 局部配置文件
~/.bash_profile
~/.bashrc

全局配置文件:文件中的配置信息对系统的全部用户都生效。

局部配置文件:文件中的配置信息只对系统的指定用户生效。

系统中局部文件设置会让相应用户加载,并且局部配置优先于全局配置
# 文件生效
方法一:重新连接系统主机使之生效
方法二:执行系统操作命令使之生效
source /etc/profile
. /etc/profile
说明:无论是source命令或是. 和文件路径之间都必须有空格

系统别名

系统别名配置方法

# 临时配置别名功能
[root@hkw ~]# grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0 
IPADDR=10.0.0.2
[root@hkw ~]# alias ipinfo='grep "IPADD" /etc/sysconfig/network-scripts/ifcfg-eth0'
[root@hkw ~]# ipinfo 
IPADDR=10.0.0.2

# 取消别名功能
[root@hkw ~]# alias 
--- 显示所有别名
[root@hkw ~]# unalias ipinfo

用户登录终端后显示信息文件

cat /etc/motd
# 往文件里面加什么内容,用户登录后就会输出什么内容

此文件配置的是用户登录系统之后显示的内容,相当于登录后的一个提示作用,默认是空的。

扩展---随机输出图形

Epel 镜像:https://developer.aliyun.com/mirror/epel?spm=a2c6h.13651102.0.0.3e221b11UtbJVW

# epel(RHEL 7)
yum install wget -y
wget -O /etc/yum.repos.d/epel.repo https://mirrors.aliyun.com/repo/epel-7.repo
yum install cowsay -y
cowsay "学编程的,你得nb"
animalsay "学编程的,你得nb"
# 加入到/etc/motd文件中即可

声明系统版本号和名称信息文件

cat /etc/redhat-release
# 此文件用于声明Red Hat版本号和名称信息的文件,如果需要查看系统的版本等信息,可以读取这个文件进行查看。

# 获取系统详细信息情况
uname -a

重要系统目录

用户登录后执行脚本所在目录

ls /etc/profile.d/
# 此目录管理脚本文件(*.sh/*.csh),放在这个目录下的脚本文件用户登录后自动运行。

系统软件安装后默认存在目录

ls /usr/local
或者
ls /opt

# 以上两个目录一般是用来存放用户自编译安装软件的目录,对于通过源码包安装的软件,如果没有特别指定安装目录的话,一般会安装在这个目录中,相当于windows系统下的c:\Program file

系统与服务日志文件存放目录

ls /var/log/
# 此目录中包含了大量记录系统及软件服务运行的日志文件,通过这些日志文件,可以知道系统的运行情况及故障原因。

tail -f /var/log/messages
# 此文件时系统的默认日志文件,这个文件非常重要,当系统及软件运到运行故障时,可以查看这个日志文件以及获取故障信息。

tail -f /var/log/secure
# 这是个有关系统安全的日志文件,日志中会记录"谁,在什么时候,从哪登录到系统,登录是否成功"等信息。
# ssh telnet ftp等服务的用户登录信息都会记录在此文件中:
说明:在某些时候,进行网络安全问题排查时,可以借助此文件进行网络安全渗透入侵检测

tail -f /var/log/dmesg
# 当硬件及系统内核出现问题时,可以查看这个日志文件,在解决某些特定问题时会用到。

系统硬件信息加载与存放目录

ls /proc
# 此目录是Linux系统下的一个重要的虚拟文件系统,记录着内核和进程方方面面的信息,是一个很重要的信息宝库。
# /proc/cpuinfo 信息查看

# 当前CPU信息文件(等价于lscpu)
[root@xiaoQ01 ~]# cat /proc/cpuinfo 
processor     : 0
-- 用于确认总的CPU核心数
model name  : Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
cpu MHz          : 2494.290
cache size      : 3072 KB
physical id      : 0
-- 用于确定服务器的CPU颗数
cpu cores      : 1
-- 用于确定服务器的CPU核数(每一颗CPU)
... 省略部分信息 ...

# 利用命令查看cpu信息
[root@xiaoQ01 ~]# lscpu
Architecture:           x86_64
CPU op-mode(s):     32-bit, 64-bit
CPU(s):                      1
-- 用于确定服务器的CPU核数
Thread(s) per core:  1
Core(s) per socket:  1
Socket(s):                  1
-- 用于确定服务器的CPU颗数
Model name:              Intel(R) Core(TM) i5-4300U CPU @ 1.90GHz
# /proc/meminfo 信息查看

# 当前内存信息文件 (等价于free)
[root@xiaoQ01 ~]# cat /proc/meminfo 
MemTotal:           995684 kB
-- 系统总的内存容量(重点关注)
MemFree:            715136 kB
-- 系统内存的空闲容量
MemAvailable:      695948 kB
-- 系统内存的可用容量(重点关注)
Buffers:                2076 kB
-- 系统的缓冲区容量
Cached:                90184 kB
-- 系统的缓存区容量
SwapCached:        0 kB
Active:                   91272 kB
Inactive:                69104 kB
... 省略部分信息 ...

# 利用命令查看内存信息
[root@xiaoQ01 ~]# free 
              total          used         free           shared   buff/cache   available
Mem:    995712      173132      708528        7824      114052         690256
Swap:   1572860        0            1572860
# /proc/loadavg 信息查看
系统运行时的负载情况,可以理解为CPU同时处理运行的进程数量。

# 当前系统的平均负载情况 (等价于uptime)
[root@xiaoQ01 ~]# cat /proc/loadavg 
0.00 0.01 0.05 2/114 1680
-- 前三个数字大家都知道,是1、5、15分钟内的平均进程数
-- 一个的分子是正在运行的进程数,分母是进程总数;另一个是最近运行的进程ID号

# 利用命令查看负载信息
[root@xiaoQ01 proc]# uptime 
 16:23:11 up 38 min,  1 user,  load average: 0.00, 0.01, 0.05

说明:负载情况数值参考 平均负载值 <= 服务器CPU颗数 * 每个CPU核心数 == 服务器总的核心数

软件程序

软件程序安装方法

手动安装方式

# rpm (RHCE/CentOS) .rpm
1.下载软件程序包到本地系统中 (xxx.rpm)
2.需要安装软件可能所需的依赖 想安装A软件--先安装好B软件 C D E F
3.执行命令进行软件安装与部署
[root@hkw ~]# rpm -ivh xxx.rpm
--- 直接安装软件包(推荐)
[root@hkw ~]# rpm --force -ivh xxx.rpm
--- 忽略报错,强制安装(了解)
[root@hkw ~]# rpm --replacepkgs -ivh xxx.rpm
--- 覆盖替换安装
01	-i	表示安装软件程序包
02	-v	更详细的显示软件安装过程
03	-h	安装数据包过程中打印显示hash标记信息
04	--force	表示进行强制安装程序(强制覆盖原有程序和原有程序配置文件)
05	--replacepkgs	如果软件包已经存在会进行重新安装(不会覆盖替换软件配置信息)
# 特点说明
安装软件过程需要解决软件依赖关系 (缺点)
可以无需网络连接进行本地软件安装 (优点)
软件安装过程无需配置额外配置参数

自动安装方式-yum

# yum源
# 阿里CentOS 7
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

# 查看可以下载的软件包信息
[root@hkw ~]# yum info
[root@hkw ~]# yum list
-- 显示详细的软件包或软件包组信息
# 过滤查找出来的信息
[root@hkw ~]# yum list | grep XXX

# 查看指定的软件包信息(软件包中的数据信息)
[root@hkw ~]# yum search 软件名称
[root@hkw ~]# yum provides 软件名称

# 进行软件安装部署过程
[root@hkw ~]# yum install -y 软件包/软件包组
--- 采用免交互方式进行软件安装
[root@hkw ~]# yum reinstall -y 软件包/软件包组
--- 覆盖重复安装指定软件程序

# 特点说明
安装软件过程无需解决软件依赖关系 (优势)
必须需要网络连接进行本地软件安装
软件安装过程无需配置额外配置参数

编译安装方式

需要进行单独下载软件程序
需要进行解决软件依赖问题
需要进行软件安装配置过程 路径配置 功能配置 组件配置
需要进行软件安装编译过程 编译过程 == 翻译过程 软件程序代码进行翻译
需要完成最终软件安装过程
# 特点说明
安装软件过程需要解决软件依赖关系
可以无需网络连接进行本地软件安装
软件安装过程需要配置额外配置参数(可以实现定制化安装)

软件程序查看方法

[root@hkw ~]# rpm -qa httpd
-- 查看指定软件程序是否已经成功安装
httpd-2.4.6-97.el7.centos.2.x86_64

[root@hkw ~]# rpm -ql httpd
/etc/httpd
/etc/httpd/conf
/etc/httpd/conf.d
/etc/httpd/conf.d/README
-- 查看指定软件安装的所有数据信息

[root@hkw ~]# rpm -qc httpd
/etc/httpd/conf.d/autoindex.conf
/etc/httpd/conf.d/userdir.conf
/etc/httpd/conf.d/welcome.conf
/etc/httpd/conf/httpd.conf
-- 查看指定软件程序安装后产生的配置文件

[root@hkw ~]# which httpd
/usr/sbin/httpd
[root@hkw ~]# rpm -qf /usr/sbin/httpd
httpd-2.4.6-97.el7.centos.2.x86_64
[root@hkw ~]# rpm -qf `which httpd`
httpd-2.4.6-97.el7.centos.2.x86_64
-- 查看指定操作命令或文件数据属于哪个程序包

说明:利用rpm命令只能查看确认rpm方式和yum方式安装软件程序

软件程序卸载方法

# 利用yum命令实现软件卸载
[root@hkw ~]# yum erase  httpd
[root@hkw ~]# yum remove httpd
-- 某些存在依赖的关系的软件进行卸载会出现异常

# 利用rpm命令实现软件卸载
[root@hkw ~]# rpm -e --nodeps httpd
-- 可以忽略软件依赖关系进行卸载
posted @ 2023-09-05 21:16  hkwJsxl  阅读(62)  评论(0编辑  收藏  举报