Linux安全基础

计算机体系结构

CPU

控制单元:完成数据处理整个过程中的调配工作

算术逻辑单元:完成各个指令以便得到程序最终想要的结果

储存单元:负责原始数据以及运算结果

核心数:物理核心数

线程:超线程技术,逻辑处理器

频率:工作频率,1秒钟产生的脉冲信号

32位和64位:CPU一次能处理的位数

内存

硬盘

程序运行原理

 

Linux使用

系统结构

1.内核

1.管理进程

2.管理内存

3.管理驱动

3.管理文件和网络

2.shell

接受用户的命令,经过转换,交给内核去执行

1.简化操作

2.安全

3.文件系统

目录作用备注

bin存放普通用户可执行的指令即使在单用户模式下也能执行处理

boot开机引导目录包括Linux内核文件与开机所需的文件

dev设备目录所有的硬件设备及周边均放置在这个设备目录中,比如声卡,磁盘

etc各种配置文件目录大部分配置属性均放在这里

lib库文件存放地类似Windows的dll

media可移除设备挂载目录类似U盘,光盘,移动硬盘等临时挂放目录

mnt用户临时挂载其它文件的系统额外的设备可挂载在这里,相对临时而言

opt第三方软件安装目录现在习惯性的放置在/usr/local中

proc虚拟文件系统通常是内存中的映射,特别注意在误删数据文件后,比如DB,只要系统不重启,还是有很大几率能将数据找回来

root系统管理员主目录除root之外,其他用户均放置在/home目录下

run系统运行时所需文件以前防止/var/run中,后来拆分成独立的/run目录。重启后重新生成对应的目录数据

sbin只有root才能运行的管理指令跟bin类似,但只属于root管理员

srv服务启动后需要访问的数据目录

sys跟proc一样,虚拟文件系统记录核心系统硬件信息

tmp存放临时文件目录所用用户对该目录均可读写

usr应用程序放置目录

var存放系统执行过程经常改变的文件

 

4.应用程序

 

基本技能

命令格式

命令 选项 参数 :is -a /etc做什么 怎么做 对谁做

常见错误:没有空格把文件当命令执行

规范:命令 空格 大小写 顺序

快捷键和命令

tab:补全命令和目录(自动提示),只有唯一匹配的时候才能完全补全

shift+insert:粘贴

CTRL+insert:复制

alt+insert:复制并粘贴

方向键:找到上次的命令

CTRL+E:光标移动到行尾

CTRL+A:光标移动到行首

CTRL+K:清除光标后至行尾的内容

CTRL+U:清除光标前至行首间的内容

CTRL+r:搜素历史命令,回车执行

!cd:重复执行最近一次,以cd开头的命令

clear:清屏

history:查看历史命令

history -c:清除历史命令

echo>~/.bash_history

echo>~/.zsh_history

别名配置

查看别名:alias

设置别名:vim ~/.bashrc

格式 :alias short='xxx;xxx'

读取并执行命令,使之生效:source ~/.bashrc

通配符

*任意字符

?单个字符

[]匹配范围中的,比如[0-9][a-z]

{}多个 || {*.log.txt*}

^取反|| *[^.txt]查找不是以txt结尾的文件

环境变量

查看全部变量:env

查看单个变量:echo $XXX

用户变量:/.bashrc

系统变量:vim etc/profile

读取文件并执行命令:source etc/profile

目录指代:

根目录,home目录,工作目录://home/userworking directory

绝对路径和相对路径:从根目录开始或者从当前目录开始

.当前路径

~home路径

../上一级路径

../../上上一级目录,以此类推

cd什么都不带就是用户主目录

帮助:

man命令具体参数和使用方法

whatis命令的简要说明

info详细介绍

helpLinux内置命令

文件描述符 File Descriptor

ID描述设备

0标准输入(stdin)键盘默认输入值

1标准输出(stdout)显示器默认输出值

2标准错误输出(stderr)显示器

重定向符号解释

符号类别

>和>>输出重定向

&>表示将一个流重定向到另一个文件描述符

<和<<输入重定向

重定向:改变输入输出的方向

文件与目录

列出目录内容和属性

单词全拼list

ls/etc

ll

打印工作路径

单词全拼print working directory

pwd

切换工作目录

单词全拼change directory

cd /etc

查看文件类型

命令:file

格式:file 选项 文件或目录

复制文件或目录

单词全拼copy拷贝

cp a a.bak

创建目录

单词全拼make directory

mkdir test

mkdir -p /usr/local/soft/redis

移动或者重命名

单词全拼

mv 1.txt 2.txt重命名

mv /a/1.txt /b/1.txt移动

删除文件

单词全拼remove

rm a.txt b.txt

rm -rf name

创建空文件,或者修改时间戳

touch

touch a.txt

touch {0..10}.txt

查找搜索

查找文件或者目录

find /etc -name "a*"

find .-name ".txt" -exec rm -rf {} \;

find . -name aaa -exec mv {} bbb \;

链接

命令:ln

全拼:link

格式:ln 源文件 链接文件

创建硬链接:

ln 1.php hard.php

vim hard.php

cat 1.php

注意:

用户不能给目录创建硬链接

只有相同的文件系统才可以创建硬链接

查看软连接

ll /usr/bin/nc

创建软连接

ln -s /usr/local/phpstudy/system/phpstudyctl /usr/bin/study

源文件删除,软连接失效

文件压缩及解压缩

打包和压缩的区别

打包:减少文件个数

打包/解包 pack/unpack

压缩:减少文件体积

压缩/解压 compress/decompress

常见的压缩格式

HTTP:gzip

windows:zip rar 7z

linux:gzip(tar.gz=.tgz) bzip(.bz2) zip

tar命令

选项作用单词

-c创建打包文件create

-v显示打包或解包的详细信息verbose

-f指定文件名称,必须放到所有选项后面file

-z压缩或解压缩(.gz)

-j压缩或解压缩(.bz2)

-x解包

-C解压缩到指定目录

tar -cvf test.tar *.txt打包(不压缩)

tar -zcvf test.tar.gz *.txt打包并gz压缩

tar -jcvf test.tar.bz2 *.txt

查看和处理文件内容

(连接并)输出文件内容

单词全拼concatenate

cat file file2

一页一页地显示内容

less

enter下一行

space/CTRL+F向下滚动一屏

b往回翻一屏

+行从指定行开始显示

+test从出现test开始显示

pageup pagedown

搜索

向后查找内容/

向前查找内容?

n下一个

N上一个

退出

q

CTRL+C

ZZ

查看文件头/尾部内容

head

head -n 1 test.txt

tail

tail -f file自动刷新文件

过滤字符串(根据文本内容查找)

grep全拼

grep -i bind redis.conf

管道符

|//把左边命令的结果,作为右边命令的输入

cat service.log | grep"ERROR"

ps -ef | grep mysql

netstat -an | grep 3306

统计

wc//词数统计行数 单词数 字节数

word count

wc testfile

ls -l | wc -l

对比

diff

different

diff a.txt b.txt

文本编辑器

vim

vim 1.txt(文本不存在会新建)

命令模式

dd删除一行

ndd删除当前行及后n-1行

CTRL+F前进一屏

CTRL+B后退一屏

shift+G跳到文档结尾

gg跳到文档开头

HOME调到行首

END调到行尾

n数字向后前进多少行

搜索 /

向后查找内容

向前查找内容

n下一个

N上一个

yy复制光标所在行

p/P粘贴到下一行/下一行

X删除光标前面一个字符

del/x删除光标后面一个字符

dd删除一行

ndd删除光标下面n行

.重复上一次的操作

u撤销最近一次的操作

CTRL+R恢复最近一次的操作

插入模式

i

esc退出编辑模式

底行模式

:w保存

:q退出

:wq保存修改

:q!放弃修改

:1回到第一行

:e!放弃所有更改,重新编辑(不关闭)

:set nu显示行号

:%s/word1/word2/g 把文档中的word1替换为了word2

用户管理

用户组group

添加用户组

groupadd redis

查看组

cat /etc/group

删除用户组

groupdel redis

用户

添加用户

useradd -g redis redis

修改用户密码

passwd redis

用户名和密码

cat /etc/passwd

1.用户名 2.密码 3.UID 4.GID 5.全名 6.home路径 7.shell工具

cat /etc/shadow

删除用户

userdel -r redis

切换用户身份

switch usersu root

以root用户身份执行在命令

sudosuper user do

文件

/etc/sudoers

visudo

sudo命令

改变文件或目录权限

7 7 7权限

u g o user group other

7=4+2+1

4 read 可读

2 write 可写

1 execute 可执行

- 0 没有任何的权限

用户类别

u 拥有者

g 文件拥有者所在组

o 其他用户

chmod

chmod u=rwx file

chmod u-rwx file

chmod +x file

chmod a+r file

chmod 777 file

改变文件或目录的属主和属组

chown -R redis:redis /usr/local/soft/redis

查看用户

id

whoami

w/who

网络管理

概念

网卡

mac地址媒体访问控制

IP互联网协议地址

127.0.0.1

环回地址(loop back)

可以ping通代表网卡正常

端口port

作用:区分程序

范围:0-65535

域名

作用:代替IP,方便识记

域名如何转换为IP:DNS

域名与IP的数量关系:多对一

网络配置文件

 

linux应急响应

概述:

目的

窃取数据

加密勒索

瘫痪服务

挖矿

跳板机(肉鸡)

安全事件分类

恶意程序事件

网络攻击事件

信息破坏事件

设备设施故障

灾害性事件

应急响应的定义

事前准备: 数据备份,风险评估,安全巡查,应急演练,防范措施,安全培训

事后处理:切断网络,病毒检测,后门检测,清理病毒或后门隔离,系统恢复,修复漏洞,调查与追踪,入侵者取证

应急响应流程

信息收集

基础信息

影响范围

类型判断

何种安全事故

原因分析

日志

进程

启动项

事件处置

进程,文件,网络,补丁等

编写报告

Linux攻击方式/流程

1.弱口令爆破攻击

2.漏洞攻击

分类

Linux脏牛漏洞

web漏洞

编程语言的漏洞

开发框架的漏洞

HTTP服务器的漏洞

web组件的漏洞

数据库的漏洞

cms系统的漏洞

其他应用的漏洞

发现漏洞

扫描器

代码审计

渗透测试

流程

确定目标:资产范围,测试方法,要求,限制

信息收集:域名,子域名,IP,端口,网站目录,旁站,C段,网站架构,软件版本

漏洞分析:根据软件版本,基于漏洞数据库,挖掘新漏洞

漏洞利用:获得权限或者文件,数据等

提权:提升到管理员权限

后渗透:扩大战果,维持权限

3.权限升级

内核漏洞

脏牛漏洞

dirty pipe

netfilter uaf

sudo提权

super usrt doroot

/etc/sudoers/配置visudo

sudo passwdkali

suid提权

set uids

Linux配置错误提权redis未授权

第三方服务提权nfs MySQL docker

4.植入后门

 

webshell

http

木马

suid后门

cp/bin/bash/var/.hack

chmod 4775/var/.hack

/var/.hack

定时任务

vim/var/spool/cron/root

SSH Key免密登录

ssh-keygen

ssh root@服务器IP

ssh-copy-id root@192.168.142.66

ssh -i./id_rsa root@192.168.142.66

添加用户

openssl passwd -l -salt admin 123456

启动项

启动文件

/etc/rc.d/rc.local

/etc/init.d

启动服务

chkconfig --add/etc/init.d/test.sh

5.痕迹清理

系统日志var/log/

历史命令

应用日志

文件隐藏

linux被入侵症状

cpu资源

系统进程

网络连接

历史命令

系统文件

篡改系统命令

定时任务

SSH key文件

系统用户

审计日志

检测脚本

Linux应急措施

隔离主机

阻断通信

iptables -A INPUT -s 可疑地址 -j DROP

iptables -A OUTPUT -d 可疑地址 -j DROP

清除病毒

kill -9 pid

守护进程

kill -9 -pid

系统命令篡改

从其他系统拷贝文件

安装busybox

启动项

chkconfig --list

systemctl list-units --type=service --state=running

systemctl status zzhd

定时任务

crontab -l

SSH key

cd /root/.ssh

可疑用户

userdel

可疑服务

systemctl disable 服务名

Linux安全加固

针对密码暴力破解/弱口令

删除多余用户

/etc/passwd

userdel

口令安全策略

空口令

awk -F: '($2==""){print $1}' /etc/shadow

口令有效期

/etc/login.defs

口令复杂度

/etc/pam.d/system-auth

/etc/pam.d/password-auth

登录失败策略

/etc/pam.d/sshd

IP是否允许访问

/etc/hosts.deny黑名单

/etc/hosts.allow白名单

iptables -l INPUT -s $ip -j DROP禁止访问

行为记录

审计服务

systemctl start auditd

systemctl start rsyslog

https://zgao.top/linux审计工具auditd使用详解

针对漏洞入侵

关闭与系统业务无关或不必要的服务

防火墙或安全组

systemctl enable firewalld.service

补丁和更新

修改默认端口

针对提权

sudo 和SUID权限

visudo

set UIDfind

禁止root用户远程登陆

/etc/ssh/sshd_config

PermitRootLogin no

systemctl restart sshd

禁止su非法提权

只允许root和wheel组用户su到root

/etc/pam.d/su

auth sufficient /lib/security/pam_rootok.so

auth required /lib/security/pam_wheel.so

group=wheel

安全产品

监控,告警

防火墙

firewallTCP

WAF

web application firewall

HTTP识别和过滤

堡垒机(运维审计系统)

IPS入侵防御系统

IDS入侵检测系统

态势感知

主机杀毒

安全管理平台(SCO)

抗DDOS

VPN

终端安全管理系统EDR

漏洞扫描

蜜罐

https://bbs.sangfor.com.cn/plugin.php?id=service.download

https://venustech.download.venuscloud.cn/

日常检查

CentOS_Check_Script.sh

CentOS_Protective_Script.sh

linux基线00配置文档2.2docx

其他

物理安全

应用安全

网络安全

数据安全

管理安全

 

 

 

posted @   梦在飞翔SHS  阅读(35)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 在鹅厂做java开发是什么体验
· 百万级群聊的设计实践
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
· 永远不要相信用户的输入:从 SQL 注入攻防看输入验证的重要性
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
点击右上角即可分享
微信分享提示