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
其他
物理安全
应用安全
网络安全
数据安全
管理安全