先自我介绍一下,小编浙江大学毕业,去过华为、字节跳动等大厂,目前阿里P7
深知大多数程序员,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年最新网络安全全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上网络安全知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
如果你需要这些资料,可以添加V获取:vip204888 (备注网络安全)
正文
- shared:表示共享内存
- buffers:系统分配但未被使用的buffers 数量。
- cached:系统分配但未被使用的cache 数量。
-/+ buffers/cache:表示物理内存的缓存统计
- (-buffers/cache) 内存数: (指的第一部分Mem行中的used – buffers – cached)
- (+buffers/cache) 内存数: (指的第一部分Mem行中的free + buffers + cached)
(-buffers/cache)表示真正使用的内存数, (+buffers/cache) 表示真正未使用的内存数
Swap:表示硬盘上交换分区的使用情况
2、ulimit命令使用
ulimit用于显示系统资源限制的信息
语法:ulimit [param]
param参数可以为:
- -a 显示目前资源限制的设定。
- -c <core文件上限> 设定core文件的最大值,单位为区块。
- -d <数据节区大小> 程序数据节区的最大值,单位为KB。
- -f <文件大小> shell所能建立的最大文件,单位为区块。
- -H 设定资源的硬性限制,也就是管理员所设下的限制。
- -m <内存大小> 指定可使用内存的上限,单位为KB。
- -n <文件数目> 指定同一时间最多可开启的文件数。
- -p <缓冲区大小> 指定管道缓冲区的大小,单位512字节。
- -s <堆叠大小> 指定堆叠的上限,单位为KB。
- -S 设定资源的弹性限制。
- -t <CPU时间> 指定CPU使用时间的上限,单位为秒。
- -u <程序数目> 用户最多可开启的程序数目。
- -v <虚拟内存大小> 指定可使用的虚拟内存上限,单位为KB
3、top命令使用
top命令可以实时动态地查看系统的整体运行情况,是一个综合了多方信息监测系统性能和运行信息的实用工具,TOP命令是Linux下常用的性能分析工具,能够实时显示系统中各个进程的资源占用状况,有点像window系统的任务管理器
语法:top [param]
param为:
- -b:以批处理模式操作;
- -c:显示完整的治命令;
- -d:屏幕刷新间隔时间;
- -I:忽略失效过程;
- -s:保密模式;
- -S:累积模式;
- -u [用户名]:指定用户名;
- -p [进程号]:指定进程;
- -n [次数]:循环显示的次数。
- -H:查看进程下面的子线程
top命令分为上下两个部分:
- 系统统计信息
- 系统进程信息
系统统计信息
top - 11:38:01 up 231 days, 2:06, 1 user, load average: 0.88, 0.22, 0.18
Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie
%Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st
KiB Mem : 8010580 total, 927820 free, 2411572 used, 4671188 buff/cache
KiB Swap: 4063228 total, 2933688 free, 1129540 used. 5153128 avail Mem
-
row1:任务队列信息,同 uptime 命令的执行结果
top - 11:38:01 up 231 days, 2:06, 1 user, load average: 0.88, 0.22, 0.18
- 11:38:01 (当前系统时间)
- up 231 days, 2:06(系统运行时间)
- 1 user (当前登录用户数)
- load average: 0.88, 0.22, 0.18 (系统的平均负载数,表示 1分钟、5分钟、15分钟到现在的平均数)
-
row2:进程统计信息
Tasks: 170 total, 1 running, 169 sleeping, 0 stopped, 0 zombie
- 170 total(系统当前总进程总数)
- 1 running (正在运行的进程数)
- 169 sleeping(睡眠进程数)
- 0 stopped (停止进程数)
- 0 zombie (僵尸进程数)
-
row3:CPU 统计信息
%Cpu(s): 38.7 us, 3.5 sy, 0.0 ni, 42.0 id, 15.5 wa, 0.0 hi, 0.3 si, 0.0 st
- 38.7 us, (用户空间CPU占用率)
- 3.5 sy (内核空间CPU占用率)
- 0.0 ni (用户进程空间改变过优先级的进程CPU的占用率)
- 42.0 id(空闲CPU占有率)
- 15.5 wa (等待输入输出的CPU时间百分比)
- 0.0%hi (硬件中断请求)
- 0.3%si (软件中断请求)
- 0.0%st (分配给运行在其它虚拟机上的任务的实际 CPU时间)
-
row4:内存状态
KiB Mem : 8010580 4671188 , 927820 free, 2411572 used, 4671188 buff/cache
- 4671188 total (物理内存总量 )
- 2411572 used (已使用的内存 )
- 927820 free (空闲内存 )
- 4671188 buffers (内核缓存使用)
ps:以k为单位
-
row5:swap交换分区信息
KiB Swap: 4063228 total, 2933688 free, 1129540 used. 5153128 avail Mem
- 4063228 total (交换分区总量 )
- 1129540 used (已使用交换分区内存 )
- 2933688 free (空闲交换分区 )
- 5153128 cached (缓冲交换区 )
系统进程信息
- PID :进程id
- USER :进程所有者的用户名
- PR :进程优先级
- NI :nice值。负值表示高优先级,正值表示低优先级
- VIRT :进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
- RES :进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
- SHR :共享内存大小,单位kb
- S :进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
- %CPU :上次更新到现在的CPU时间占用百分比
- %MEM :进程使用的物理内存百分比
- TIME+ :进程使用的CPU时间总计,单位1/100秒
- COMMAND :进程名称[命令名/命令行]
按“1”键,可打开或关闭显示详细CPU统计信息:
按字母“B”键,可打开或关闭当前进程的显示效果
top -H -p pid
,查看进程pid下面的子线程
4、df命令使用
df命令用于显示磁盘分区上的可使用的磁盘空间。默认显示单位为KB。可以利用该命令来获取硬盘被占用了多少空间,目前还剩下多少空间等信息。
语法:df(选项)(参数)
选项:
-a或–all:包含全部的文件系统;
–block-size=<区块大小>:以指定的区块大小来显示区块数目;
-h或–human-readable:以可读性较高的方式来显示信息;
-H或–si:与-h参数相同,但在计算时是以1000 Bytes为换算单位而非1024 Bytes;
-i或–inodes:显示inode的信息;
-k或–kilobytes:指定区块大小为1024字节;
-l或–local:仅显示本地端的文件系统;
-m或–megabytes:指定区块大小为1048576字节;
–no-sync:在取得磁盘使用信息前,不要执行sync指令,此为预设值;
-P或–portability:使用POSIX的输出格式;
–sync:在取得磁盘使用信息前,先执行sync指令;
-t<文件系统类型>或–type=<文件系统类型>:仅显示指定文件系统类型的磁盘信息;
-T或–print-type:显示文件系统的类型;
-x<文件系统类型>或–exclude-type=<文件系统类型>:不要显示指定文件系统类型的磁盘信息;
–help:显示帮助;
–version:显示版本信息。
参数:
文件:指定文件系统上的文件。
比较常用的有:
- df -a 查看全部的文件系统
- df -h查看磁盘使用情况
- df -i 查看inode使用情况
df -h
5、ps命令使用
ps命令用于查看进程统计信息
常用参数:
- a:显示当前终端下的所有进程信息,包括其他用户的进程。
- u:使用以用户为主的格式输出进程信息。
- x:显示当前用户在所有终端下的进程。
- -e:显示系统内的所有进程信息。
- -l:使用长(long)格式显示进程信息。
- -f:使用完整的(full)格式显示进程信息。
- -T:查看进程下面的子线程
在使用中可以加上grep命令一起使用,也可以单独使用
# ps命令单独使用的情况
ps -elf tomcat
#结合管道操作和grep命令进行过滤,用于查询某一个进程的信息
ps -elf | grep tomcat
查看进程下面的子线程可以使用命令ps -T -p pid
6、crontab 命令
crontab 命令,用于定时程序的命令
-e : 执行文字编辑器来设定时程表,内定的文字编辑器是 VI,如果你想用别的文字编辑器,则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)
-r : 删除目前的时程表
-l : 列出目前的时程表
7、检查时区
确认系统时区
date
如果时区是EST或者其他,要修改为CST(中国时区)
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
二、文件操作
1、tail查看文件
tail 命令可用于查看文件的内容,语法为
tail [param] [filename]
其中param可为:
- -f :循环读取
- -q :不显示处理信息
- -v :显示详细的处理信息
- -c [数目]: 显示的字节数
- -n [行数]: 显示文件的尾部 n 行内容
- –pid=PID :与-f合用,表示在进程ID,PID死掉之后结束
- -q, --quiet, --silent :从不输出给出文件名的首部
- -s, --sleep-interval=S :与-f合用,表示在每次反复的间隔休眠S秒
2、查看文件情况
ll命令,可以用于查看文件情况,罗列出当前文件或目录的详细信息,含有时间、读写权限、大小、时间等信息。可以理解为 ll 和 ls -ll
的功能是相同的, ll 是ls -ll
的别名。
ll -ah
ls 命令仅罗列出当前文件名或目录名
ls -ll
3、文件权限设置
Linux的文件基本权限有9个,分别是owenr、group、others三种身份各自有自己的r、w和x,比如“rwxrwxrwx”,就表示owener具有r(read 读)、w(write 写)、x(execute 访问)权限,同样group和others同样具有r、w、x权限,可以用xftp查看文件权限
可以使用数字表示权限:
r->4
w->2
x->1
当文件权限为“rwxrwxrwx”时,分数是:
owner->4+2+1=7
group->4+2+1=7
others->4+2+1=7
此时文件的权限数字就是777
然后要给文件file赋权的话,就可以使用Linux命令:
chmod 777 file
owner、group和others三种身份各自的三个权限,用u、g、o代表三种身份,用a(all)代表所有身份,所以还有下面的Linux命令
chmod u|g|o|a =(设置权限)|+(添加权限)|-(减少权限) r|w|x 文件或者目录
eg:给文件file赋值权限
chmod u=rwx file
4、文件上传下载
在不使用xftp等linux工具的情况,可以通过linux命令,sz命令是利用ZModem协议来从Linux服务器传送文件到本地,一次可以传送一个或多个文件。
- 下载文件
sz命令发送文件到本地:
sz filename
敲命令之后,直接弹出下载保存窗口页面
- 上传文件
rz
敲命令之后,直接弹出上传窗口页面
rz、sz命令需要有如下条件:
- linux系统
- root权限
- lrzsz安装包
lrzsz安装步骤:
// 编译安装
//root 账号登陆后,依次执行以下命令:
tar zxvf lrzsz-0.12.20.tar.gz
cd lrzsz-0.12.20
./configure
make
make install
//上面安装过程默认把lsz和lrz安装到了/usr/local/bin/目录下,现在我们并不能直接使用,下面创建软链接,并命名为rz/sz:
cd /usr/bin
ln -s /usr/local/bin/lrz rz
ln -s /usr/local/bin/lsz sz
Centos可以直接这样安装
yum install lrzsz -y
5、压缩文件解压
linux解压zip压缩文件可以用unzip命令,如果没安装,可以先安装
yum install -y unzip zip
语法一般为:unzip [选项] [压缩文件名]
- -c 将解压缩的结果显示到屏幕上,并对字符做适当的转换。
- -f 更新现有的文件。
- -l 显示压缩文件内所包含的文件。
- -p 与-c参数类似,会将解压缩的结果显示到屏幕上,但不会执行任何的转换。
- -t 检查压缩文件是否正确。
- -u 与-f参数类似,但是除了更新现有的文件外,也会将压缩文件中的其他文件解压缩到目录中。
- -v 执行是时显示详细的信息。
- -z 仅显示压缩文件的备注文字。
- -a 对文本文件进行必要的字符转换。
- -b 不要对文本文件进行字符转换。
- -C 压缩文件中的文件名称区分大小写。
- -j 不处理压缩文件中原有的目录路径。
- -L 将压缩文件中的全部文件名改为小写。
- -M 将输出结果送到more程序处理。
- -n 解压缩时不要覆盖原有的文件。
- -o 不必先询问用户,unzip执行后覆盖原有文件。
- -P<密码> 使用zip的密码选项。
- -q 执行时不显示任何信息。
- -s 将文件名中的空白字符转换为底线字符。
- -V 保留VMS的文件版本信息。
- -X 解压缩时同时回存文件原来的UID/GID。
- [.zip文件] 指定.zip压缩文件。
- [文件] 指定要处理.zip压缩文件中的哪些文件。
- -d<目录> 指定文件解压缩后所要存储的目录。
- -x<文件> 指定不要处理.zip压缩文件中的哪些文件。
- -Z unzip -Z等于执行zipinfo指令。
6、查看文件夹大小
du [选项][文件]
-a或-all 显示目录中个别文件的大小。
-b或-bytes 显示目录或文件大小时,以byte为单位。
-c或–total 除了显示个别目录或文件的大小外,同时也显示所有目录或文件的总和。
-k或–kilobytes 以KB(1024bytes)为单位输出。
-m或–megabytes 以MB为单位输出。
-s或–summarize 仅显示总计,只列出最后加总的值。
-h或–human-readable 以K,M,G为单位,提高信息的可读性。
-x或–one-file-xystem 以一开始处理时的文件系统为准,若遇上其它不同的文件系统目录则略过。
-L<符号链接>或–dereference<符号链接> 显示选项中所指定符号链接的源文件大小。
-S或–separate-dirs 显示个别目录的大小时,并不含其子目录的大小。
-X<文件>或–exclude-from=<文件> 在<文件>指定目录或文件。
–exclude=<目录或文件> 略过指定的目录或文件。
-D或–dereference-args 显示指定符号链接的源文件大小。
-H或–si 与-h参数相同,但是K,M,G是以1000为换算单位。
-l或–count-links 重复计算硬件链接的文件。
常用命令:
查看opt目录下面所有文件大小
du -sh /opt
查看当前目录所有文件
du -sh *
查看具体文件大小
[root@localhost ~]# du -sh 文件名.doc
4.0K 文件名.doc
7、文件数据排序
sort命令可以用于文件数据排序,然后将排序结果打印出来。
语法:
sort [选项] [文件]
常用选项:
选项 | 含义 |
---|---|
-b | 忽略每行前面开始出的空格字符 |
-c | 检查文件是否已经按照顺序排序 |
-d | 排序时,处理英文字母、数字及空格字符外,忽略其他的字符 |
-f | 排序时,将小写字母视为大写字母 |
-i | 排序时,除了040至176之间的ASCII字符外,忽略其他的字符 |
-m | 将几个排序号的文件进行合并 |
-M | 将前面3个字母依照月份的缩写进行排序 |
-n | 依照数值的大小排序 |
-o | <输出文件> 将排序后的结果存入制定的文件 |
-r | 以相反的顺序来排序 |
-t | <分隔字符> 指定排序时所用的栏位分隔字符 |
-k | 指定需要排序的栏位 |
8、去除文件重复行
使用uniq这个命令只能去除连续的的重复行。所以需要结合sort命令使用,先sort排序,然后uniq去除重复的
语法:
uniq [选项] [文件]
选项 | 含义 |
---|---|
-c | 打印每行在文本中重复出现的次数 |
-d | 只显示有重复的纪录,每个重复纪录只出现一次 |
-u | 只显示没有重复的纪录 |
9、vim命令
vi
和vim
是Linux很常用的文本编辑器,两种功能类似也稍有不同,鉴于命令操作比较多,本博客只挑vim命令,介绍一些比较常用的
vim命令使用,直接加上文件名就行
vim file1
-
vim的模式
- Normal 模式:进入Vim后的一般模式
- Insert 模式:按下i键后进入该模式,可以修改文档。
- Visual 模式:按下v键后进入该模式,可以选择文档内容。
-
vim退出
:q
:退出。:q!
:强制退出,放弃所有修改。:wq
:保存修改并退出。
-
一些快捷键
- 方向键也可以用h、j、k、l。
:0
到行首,:$
到行尾。- 按
/
查找,输入关键字查找,n下一个,N上一个
10、删除文件夹
示例:
rm -rf /var/log
删除文件:rm -f /var/log/test.log
注意:使用这个
rm -rf
的时候一定要格外小心,最好备份一下,linux没有回收站的
11、创建文件夹
创建文件夹a,使用如下命令
mkdir a
12、打印当前目录
打印当前的目录路径,使用pwd
命令
pwd
pwd:是 Print Working Directory (打印工作目录)的缩写,显示用户当前所处的工作目录
13、查看日志文件关键字
# 返回日志文件里有test关键字的所有行
cat log.log | grep "test"
tail log.log | grep "test"
grep -i "test" log.log
三、网络通信
1、netstat监控命令
netstat命令是用于监控进出网络的包和网络接口统计的命令行工具
语法:netstat [param]
param参数可以为:
- -h : 查看帮助
- -r : 显示路由表
- -i : 查看网络接口
2、linux检查网络
到网络配置文件目录
cd /etc/sysconfig/network-scripts
查看目录下的文件,找到ifcfg开头的文件
ls -ll
en33
这个后缀不固定,根据自己系统的查看
vi /etc/sysconfig/network-scripts/ifcfg-en33
修改ONBOOT=yes
,ONBOOT是指明在系统启动时是否激活网卡,只有在激活状态的网卡才能去连接网络,进行网络通讯其中en33是设备名,设置了linux网络,需要重启网络,可以用命令:
service network restart
3、SELinux简介
SELinux全称是 Security-Enhanced Linux,它是由美国国家安全局(NSA)贡献的,它为 Linux 内核子系统引入了一个健壮的强制控制访问Mandatory Access Control架构。详情可以参考SELinux 入门,SELINUX工作原理
其实SELinux的功能也就是类似于防火墙的功能,不过安全相对比较好,ok,所以本博客介绍一下SELinux的使用命令
getenforce命令,这个是查看当前SELinux的运行模式的指令,SEliunx有三种模式。分别是:
- Enforcing:强制模式。代表SELinux在运行中,且已经开始限制domain/type之间的验证关系
- Permissive:宽容模式。代表SELinux在运行中,不过不会限制domain/type之间的验证关系,即使验证不正确,进程仍可以对文件进行操作。不过如果验证不正确会发出警告
- Disabled:关闭模式。SELinux并没有实际运行
SEliunx模式快捷转换
# 转换为Permissive宽容模式
setenforce 0
# 转换为Enforcing强制模式
setenforce 1
查看selinux状态
getenforce
SELINUX模式可能会影响一下应用使用,临时禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)
setenforce
永久禁用SELINUX(学习用的linux才可以禁用,生产的不建议禁用SELINUX)
# 将SELINUX=enforce改成SELINUX=disabled
vi /etc/selinux/config
4、防火墙设置
查询linux系统防火墙开启状态
firewall-cmd --state
临时关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl stop firewalld.service
永久关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl disable firewalld.service
查询防火墙规则列表
iptables -L
把默认策略改成ACCEPT
iptables -P INPUT ACCEPT
清除防火墙规则
iptables -F
配置防火墙允许ip
学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
LINUX=enforce改成SELINUX=disabled
vi /etc/selinux/config
#### 4、防火墙设置
查询linux系统防火墙开启状态
firewall-cmd --state
临时关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl stop firewalld.service
永久关闭防火墙(学习用的linux才可以禁用,生产的不建议禁用)
systemctl disable firewalld.service
查询防火墙规则列表
iptables -L
把默认策略改成ACCEPT
iptables -P INPUT ACCEPT
清除防火墙规则
iptables -F
配置防火墙允许ip
## 学习路线:
这个方向初期比较容易入门一些,掌握一些基本技术,拿起各种现成的工具就可以开黑了。不过,要想从脚本小子变成黑客大神,这个方向越往后,需要学习和掌握的东西就会越来越多以下是网络渗透需要学习的内容:
![在这里插入图片描述](https://img-blog.csdnimg.cn/7a04c5d629f1415a9e35662316578e07.png#pic_center)
**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**需要这份系统化的资料的朋友,可以添加V获取:vip204888 (备注网络安全)**
[外链图片转存中...(img-aDssbtfk-1713371145992)]
**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**