Linux系统基础

系统基础操作规范

基本思想

  • 一切都是文件

  • 系统中所有都归为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言,都被视为拥有各自特性或类型的文件

  • 每个软件都有确定的用途

优点

  1. 成本低

  2. 安全性好,采取很多措施,包括对读写权限控制、带保护的子系统、审计跟踪、核心授权等,为网络多用户环境中的用户提供了必要的安全保障

  3. 网络功能强大

  4. 开源性

 操作规范

 

  1. 当前用户名称

  2. 当前系统主机名称

  3. 当前系统目录路径 (~ 为当前用家目录 /为根目录)

  4. 当前用户权限

    1. root管理员 #

    2. 非管理员 $

系统远程管理

ssh

  • 安全外壳协议(Secure Shell),是一种在不安全网络上用于安全远程登陆和其他安全网站服务的协议

  • 密码(key)、公钥文件(pub),源于RSA算法,key与public一一对应

  • 连接步骤

    • 将CentOS 7 的网络模式全部设置为NAT模式

    • 使用xshell远程连接终端

      • 将root设置为允许登录

      • 开始SSH服务 (查看SSH服务运行状态: systenctl status sshd)

      • 关闭firewall防火墙(systemctl status firewalld)

      • 检查ssh连接的端口是否开启(netstat -tlnp)

      • 测试CentOS是否可以上网或与本地网络互通

      • 使用telnet命令检查22端口是否允许外部连接

常用快捷键

  • tab 命令补全

  • ctrl+c 终端终端正在执行的的任务并开启新的一行

  • ctrl+d 退出当前shell命令行,如果是切换过来的用户,则执行这个命令回退到原用户

  • ctrl+l 清除屏幕所有的内容,并开启新的一行

  • ctrl+s 锁定终端,任何人无法输入

  • ctrl+q 解锁

  • ctrl+z 暂停在终端执行的任务,使用“fg”命令可以使暂停回复

  • Ctrl +Alt +F2 切换到命令行界面

  • Ctrl+Alt+F1 切换到图形化界面

  • init 3 在终端输入跳转至命令行模式

  • init 5 到图形模式

系统目录结构和文件属性

系统目录重要结构

tree

bin -> /usr/bin 存放系统命令文件 目录 binary

sbin -> /usr/sbin 存放系统命令文件此目录大部分命令只能root使用

etc 存放系统或服务部署文件信息

home 家目录

var 存储可变的文件数据信息(日志信息)

opt 存储第三方软件程序

usr 存储第三方软件

proc 存储系统硬件信息/系统内核配置信息 优化系统 此目录中存储数据信息都在内存中

lib/lib64 存储库文件(开发软件程序需要依赖库文件)

tmp 进行数据临时存储

系统命令

  • pwd 显示当前工作目录的绝对路径

  • clear 清除当前屏幕终端上的任何信息

  • mkdir 用于创建一级或多级目录

  • rmdir 用于删除空目录

  • reboot 重新启动

  • passwd 修改用户密码

  • ls al 列出所有文件(包括隐藏文件)的详细信息

  • 文件的增删改查(touch rm mv/cp tail/head/find/grep)

    • 创建

      • mkdir(make directory) 创建新目录

      • mkdir /data{0,1,2,3,4,5}有序创建多个目录

      • mkdir -p /data/ospteach

    • 删除 rm [-rf] aa (删除文件夹aa)

      • 无论删除任何文件夹或目录,都直接使用rm -rf

    • 修改

      • mv aa bb (修改目录名称)

        • mv的语法不仅可以对目录进行重命名,,也可以对各种文件,压缩包进行重命名的操作

        • mv对文件进行重新命名,或者将文件从一个目录移到另一个目录

        • mv ,目录名称 目录新位置:移动目录的位置--剪切

      • cp -r 目录名称 目标拷贝的目标位置:拷贝

        • 拷贝文件可以不用写 -r 递归

        • 拷贝目录要写 -r 递归

        • cp命令不仅可以拷贝目录还可以拷贝文件,压缩包等,使用-r参数后可以复制文件或文件夹,拷贝文件和压缩包时不用写 -r

    • 查找

      • find 目录 参数

        • 列出当前目录及其子目录下的所有文件和文件夹

  • rm:可以删除一个目录中的一个或多个文件或目录,也可以将某个目录及其下属的所有文件及其子目录均删除。对于链接文件,只是删除整个链接文件,而源文件保持不变

    • rm -r * 删除当前目录下除隐含文件外的所有文件和子目录

    • rm testfile.txt 删除文件

    • rm -rf testdir 删除目录

  • ps:用于报告当前系统的进程状态。该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源。可以搭配kill指令随时中断、删除不必要的程序

    • ps axo pid,comm, pcpu # 查看进程的PID、名称、以及CPU占用率

    • ps aux |sort -rnk 4 # 按内存资源的使用量对进程进行排序

    • ps aux |sort -nk 3 # 按CPU资源的使用量对进程进行排序

    • ps -A # 显示所有进程信息

    • ps -ef |grep ssh # ps 与grep常用组合用法,查找特定进程

    • ps -aux |grep named # 查看named进程详细信息

    • ps -o command -p 91730 |sed -n 2p # 通过进程id获取服务名称

  • service和systemctl 格式区别

    • service 服务名 动作

    • systemctl 动作 服务名

  • 利用管道符和grep 查看ssh进程的详细信息,利用kill强制终止服务端与客户端连接

  • ps -aux |grep ssh

  • kill 9 PID (数字9代表最高级别,强制终止)

  • 创建文件的默认权限为644(rw-r--r--)

  • 当上传完木马文件到服务器后,一般给木马文件添加可执行权限(chmod +x 文件名)

  • linux用户信息存放在/etc/passwd中

  • 密码信息存放在/etc/shadow中

  • chmod(change mode):控制用户对文件的权限的命令

  • Linux/Unix的文件调用权限分为三级:文件所有者、用户组、其他用户(Owner、Group、Other Users)

  • 只有文件所有者和超级用户可以修改文件或目录的权限。可以使用绝对模式(八进制数字模式),符号表示指定文件的权限

 

  • 用户管理

    • useradd:可用来建立用户账号。账号建好后再用passwd设定账号的密码

    • usermod:可用来修改用户账号的各项设定

    • userdel:可删除用户账号与相关的文件。若不加参数,仅删除用户账号,不删除相关文件

    • groupadd:用于创建一个新的工作组,新工作组的信息将被添加到系统文件中

    • groupdel:用于删除群组,倘若该群组中仍包括某些用户,则必须先删除这些用户后,方能删除群组

  • su:切换用户

    • su 用户名 (若缺省表示切换至root)

  • sudo:用于在当前用户某项命令中使用root用户权限

  • ifconfig:查看所有网卡的详细信息 ifconfig -a

    • ifconfig ens33 down 停用指定网卡

    • ifconfig ens33 up 启动指定网卡

  • tail:输出文件中的尾部内容,默认在屏幕上显式指定文件的末尾10行,

    • tail file # 显示文件file的最后10行

    • tail -n +20 fille # 显示文件file的内容,从第20行至文件末尾

    • tail -25 mail.log # 显示mail.log 的最后25行

  • head :用于显示文件的开头部分,在未指定行数时默认显示10行

  • 重定向

    • “> ” 覆盖

    • ”》“ 追加

  • vim编辑文件时存在3中工作模式,分别是命令模式、输入模式和编辑模式,这三种工作模式可随意切换

Vim

  • Vim编辑文件存在3种工作模式,分别是命令模式,输入模式和编辑模式,这三种模式可随意切换

 

0

定位到光标所在行的首字符
$定位到光标所在行的末字符
G定位到文档的最后一行
gg定位到文档第一行
dd剪切光标所在行数据
yy复制光标所在行数据
p向光标后所在行粘贴已剪切数据
/word搜索文档中的word字符串
:%s/word1/word2将文档中的word1字符串替换为word2字符串

Crontab定时任务 

 

2023年5月29日

Linux下软件分类

源代码安装
  1. 安装自由

  2. 稳定高效

  3. 容易卸载

源代码编译方式安装步骤

  1. 下载方式 wget、curl

  2. configure 配置项进行安装预配置,如软件安装包目录、指定用户、编译目录

  3. make 编译

  4. make install 安装

yum 安装软件包(apt/apt-get)
  • 可自动解决软件包依赖关系

安装步骤

阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区

镜像网站:

  1. 更换软件安装源

    cd /etc/yum.repos.d/ # 进入配置目录

  2. 备份当前软件源

    mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 将源文件进行备份

  3. 下载新的软件源

    wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # 下载新的软件源

  4. 重新生成缓存

    yum makecache

  5. 安装软件

    yum install -y 软件名称

  1. 常见安装包

    • net-tools 网络工具相关安装包 (找不到ifconfig、ping命令)

    • vim 文本编辑工具安装包

    • wget 下载工具安装包

    • telnet 测试某个机器的某个端口是否开放

  2. 卸载命令

    yum remove -y 软件包名称

  3. 更新命令

    yum update 更新软件包缓存

  4. 查看软件包列表

    yum list

压缩与解压缩

tar

  • 解包:tar zxvf gilename.tar

  • 打包:tar czvf filename.tar dirname

gz

解压1:tar zxvf filename.tar.gz

解压2:tar zcvf filename.tar.gz

压缩:gzip filename

bz2,bz

解压: tar jxvf filename.tar.bz2

解压: tar jxvf filename.tar.gz

压缩:tar jcvf filename.tar.gz2

zip

解压:unzip filename.zip

压缩:zip filename.zip dirname

系统重要文件介绍

系统网卡信息

 

系统域名解析配置文件

指定域名与IP地址的解析关系

 

日志文件

  • secure -> /var/log/secure

RSA

概念

  • 非对称加密需要两个密钥:公钥(public key)和私钥(privatekey)。公钥和私钥是一对,如果用公钥对数据进行加密,那么只能用对应的私钥解密。如果用私钥对数据进行加密,只能用对应的公钥进行解密。因为加密和解密是不同的密钥,所以称为非对称加密

特点

  • 算法强度复杂、安全性依赖于算法与密钥,但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快,对称密码体制只有一种密钥,并且是非公开的,如果要解密就得染谷地方知道密钥。所以保证安全性就是保证密钥的安全,而非对称密钥体制有两种密钥其中一个是公开的,这样就可以不需要对称密码那样传输对方的密钥了(传输给对方密钥),这样安全性就大了很多

工作原理

 

  1. A要向B发送消息,A和B都要产生一对用于加密和解密的公钥

  2. A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A

  3. A给B发送消息时,A用B的公钥加密信息,因为A知道B的公钥

  4. A将这个消息发送给B(已经用B的公钥加密消息)

  5. B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥

应用场景

  1. 信息加密

    收信者是唯一能解开加密信息的人,因此收信者手里的必须是私钥。发信人手里的是公钥,其他人知道公钥没有关系,因为其他人发来的信息对收信人没有意义

  2. 登录认证

    客户端需要将认证标识传送给服务器,此认证标识(可能是一个随机数)其他客户端可以知道,因此需要用私钥加密,客户端保存的是私钥。服务端保存的是公钥,其他服务器知道公钥没有关系,因为客户端不需要登录其他服务器

  3. 数字签名

    数字签名是为了表明信息没有受到伪造,确实是信息拥有者发出来的,附在信息原文的后面。就像手写的签名一样,具有不可抵赖性和简洁性

    • 简洁性:对信息原文做哈希运算,得到消息摘要,信息越短加密的耗时越少

    • 不可抵赖性:信息拥有者要保证签名的唯一性,必须是唯一能够加密消息摘要的人,因此必须用私钥加密(就像字迹他人无法学会一样),得到签名。

  4. 数字证书

    问题起源:对1和3,发信人怎么知道从网上获取的公钥就是真的?没有遭受中间人攻击?

    这就需要第三方机构保证公钥的合法性(CA 证书中心)

    CA用自己的私钥对信息原文所有者发布的公钥和相关信息进行加密,得出的内容就是数字证书。

    信息原文的所有者以后发布信息时,除了带上自己的签名,还带上数字证书,就可以保证信息不被篡改了。信息的接收者先用CA给的公钥接触信息所有者的公钥,这样可以保证信息所有者的公钥是真正的公钥,然后就能通过该公钥证明数字签名是否真实了

远程管理

Linux通过publickey进行远程连接

  1. 服务器端生成RSA密钥对

    1. ssh-keygen -t rsa

    2. 生成2个文件,私钥ospteach、公钥ospteach.pub

  2. cd /root

    1. 创建 mkdir/root/.ssh

    2. 赋权 chmod 755 .ssh

  3. cat /ospteach.pub >> authorized_keys

  4. 修改配置文件,重启服务

    1. PublicAuthentication

    2. #PasswordAuthentication

    3. systemctl restart sshd

基线检测与Windows用户组管理

检查点

文件目录: /etc/passwd

  1. 检查,将不需要账号设置成/sbin/nologin

    查看那些不许需要的账号,锁定或设置成不可登录,一般都是系统自带或云自带的用户

  2. 检测用户是否使用密码加密机制

    查看密码是不是*或者x,证明密码是使用系统的加密方式进行存放

  3. 检查uid为0的非root用户

    检查是否存在uid为0的非root用户,UID是一个数值,是Linux系统中唯一的用户标识,用于区别不同的用户。在系统内部管理进程和文件保护时使用UID字段,所以尽量一个系统只存在一个uid为0的用户

文件目录: /etc/peofile

  1. 检查点:超时自动登录时间

    子检查项其实时担心你一直在登陆情况下,没超时的话其他人入侵或者使用你的电脑做高危操作

  2. history 保存命令数

    说明:基本上很多入侵者进来第一时间就是来看history有没有明文ssh连接和db连接的记录,用于内网渗透

文件目录:/etc/ssh/sshd_config

  1. 限制用户必须在指定时限内认定成功

    LoginGraceTime 5m

    该检查项基本很多基线脚本都有配

  2. 检查是否允许root登录

    PermitRootLogin yes

    基本root不能运行登陆时基本操作,防止远程登陆最高级别的账号

  3. 设置不能免密码

    StrictModes

    指定是否要求sshd(8)在接受连接请求前对用户主目录和相关配置文件进行宿主和权限检查

  4. SSH超时断开

    ClientAliveInterval

    设置一个以秒计的时长,如果超过这么长时间没有收到客户端的任何数据,sshd(8)将通过安全通道向客户端发送一个“alive”消息,并等待响应

  5. 看到尝试X次系统就断开连接

    MaxAuthries

    指定每个连接最大允许的认证次数

  6. 校验远程用户密码

    PermitEmptyPasswords

    是否允许密码为空的用户远程登录,默认为 no

检查文件权限设置

 

目录:/etc/pam.d/su

  1. 禁止非WHEEL用户使用su命令

    auth required /lib/secureity/$ISA/pam_wheel.so use_uid

    该操作是只让管理员组内的用户才能su到root

目录:/etc/rsyslog.conf

  1. 检查是否有记录日志并检查预期一样的日志

 

 

 

 

基线检测

  1. XFTP将shell脚本传至虚拟机 /tmp 目录下

  2. 修改权限 chmod 755 linuxcheeklist2.2.sh

  3. 运行 ./linuxcheeklist2.2.sh

用户概述

  • 每个用户登陆系统后,拥有不同的操作权限

  • 每个账户有自己唯一的SID(相当于身份证号)

  • Windows 系统管理员administrator的UID是500

  • 普通用户的UID从1000开始

  • 不同账户拥有不同的操作权限,为不同的账户赋权,就是为不同的SID赋权

  • 账户密码存储位置:C:\Windows\system32\config\SAM(不可逆,hash校验值,方法:暴力破解和撞库)

Windows密码爆破实验步骤

  1. 非正常关机3次,进入系统修复界面,找到命令行

  2. 进入C: C:\Windows/system32

  3. 运行 rename sethc.exe sethc.exe.bak

    rename cmd.exe sethc.exe

  4. 重启电脑

  5. 连按五次Shift可呼出cmd命令行窗口(相当于代替粘滞键)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值