安全相关的Linux知识
本文用于记录在安全中的Linux常用命令,基础命令可以移步去菜鸟教程(https://www.runoob.com/linux/linux-tutorial.html)学习
Linux重要的4个热键
- Tab键用于命令补全
- Ctrl+C中断命令,强制中断程序的执行,进程已经终止
- Ctrl+Z中断命令,将任务中止(暂停的意思),但是此任务并没有结束,他仍然在进程中他只是维持挂起的状态,用户可以使用fg/bg操作继续前台或后台的任务
- Ctrl+D :表示一个特殊的二进制值,表示 EOF。在shell中,ctrl-d表示推出当前shell
Linux中的几个关键目录和文件
1、~/.bash_history //历史命令
2、/var/spool/cron/(crontabs) //对应不同用户计划任务
3、/proc/pid //对应进程的目录,进程对应目标再用ls -lh 可以看到对应进程的相关信息
4、/var/log //日志目录,auth.log是系统登录日志
权限管理相关的命令
chgrp命令改变文件的所属群组
如果需求仅仅是改变文件或目录的组信息,那么您可以直接使用chgrp命令。
语法如下:
chgrp [OPTION]... GROUP FILE...
比如可以输入
sudo root filename/dirname
chown命令改变文件拥有者
语法如下:
chown [OPTION]... [用户][:[用户组]] FILE...
OPTION: -R : 处理指定目录以及其子目录下的所有文件。 比如可以输入:
sudo chown root Filename
chmod命令改变文件的权限
权限的设定方法有两种, 分别可以使用数字或者是符号来进行权限的变更。
语法如下:
chmod [OPTION]... MODE[,MODE]... FILE...
比如想要所有人都可以完全访问该文件:
chmod 777 filename
第1个7设置用户的权限,第2个7设置组的权限,第3个7设置其他所有者的权限。 比如用户想成为唯一可以访问它的人:
chmod 700 filename 比如用户想要为自己和其小组成员提供完全访问权限:
chmod 770 filename 比如用户想为自己保留完全访问权限,但希望阻止其他人修改文件:
chmod 755 filename
通过符号来改变权限:
比如想要修改所有者可以读取和写入文件,但不会更改其他任何人的权限的命令:
chmod u=rw filename
查找相关的命令
- find
- where
- whereis
- grep
提权相关的命令
uname -r命令查看版本信息
查看发行版本
注意:该命令并不是所有linux中都有的。
lsb_release -a
crontab 设置定时任务
相关配置文件:
- /var/spool/cron/ 目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名;
- /etc/crontab 这个文件负责调度各种管理和维护任务;
- /etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本;
- 我们还可以把脚本放在/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly、/etc/cron.monthly目录中,让它每小时/天/星期、月执行一次。
命令语法如下:
crontab [-u username] //省略用户表表示操作当前用户的crontab
-e (编辑工作表)
-l (列出工作表里的命令)
-r (删除工作作) crontab的命令构成为 时间+动作,其时间有分、时、日、月、周五种,操作符有
- * 取值范围内的所有数字
- / 每过多少个数字
- - 从X到Z
- ,散列数字
每1分钟执行一次myCommand:
* * * * * myCommand
每一小时重启smb:
* */ * * * /etc/init.d/smb restart
每小时清空/var/log/messages日志内容:
*/ * * * True > /var/log/message
应急响应相关的命令
1、实时显示最新的日志文件,可以使用以下命令:
tail -f auth.log
//tail -f filename 会把 filename 文件里的最尾部的内容显示在屏幕上,并且不断刷新,只要 filename 更新就可以看到最新的文件内容
2、查看运行内存/CPU占用高的应用程序:
top -d 1 -c
//-d:指定更新的间隔,以秒计算;
//-c:显示进程完整的路径与名称;
交互的命令:
<空格>:立刻刷新。
P:根据CPU使用大小进行排序。
T:根据时间、累计时间排序。
q:退出top命令。
m:切换显示内存信息。
t:切换显示进程和CPU状态信息。
c:切换显示命令名称和完整命令行。
M:根据使用内存大小进行排序。
3、查看所有进程信息:
ps aux
//如过需要查找指定进程可以结合grep
ps aux | grep xxx
4、查看端口信息:
//列出所有端口
netstat -anp
//列出所有TCP端口
netstat -anpt
5、查看计划任务
//列出当前用户的所有计划任务
crontab -l
//想要查看某一个用户的所有计划任务,需要通过-u参数进行指定
crontab -u root -l
//编辑当前用户的计划任务
crontab -e
//也可以编辑指定用户的计划任务
crontab -u root -e
6、历史命令相关的命令
//查看当前用户的历史命令
history
//清除前用户的历史命令
history -c
//查看指定用户的历史命令,.bash_history对应的命令就是history
cat [user]/.bash_history
//配置保存历史命令的数量可以通过编辑/etc/profile,在profile配置文件中找到HISTSIZE选项,该配置选项用于配置历史操作命令条数。默认该值为1000,也就是记录最近的1000条命令,如果将此值置0则不记录历史操作命令。
vim /etc/profile
7、查看最后登录信息与历史用户登录信息
//查看最后登录信息
lastlog
//查看历史用户登录信息
last -f /var/log/wtmp
iptables命令
禁止某个ip访问:
iptables -I INPUT -s <ip> -j DROP
清理痕迹与混淆命令
1、通过touch命令的-t参数可以生成指定时间的文件:
touch -t 201911110000 <filename>
考点
1、超级用户和普通用户的登录提示符是不同的,超级用户是(#)、普通用户是($);
2、linux 长连接和短连接的区别;
长连接概念:长时间保持客户端与服务端的连接状态。默认超时时间8小时。
短连接概念:数据传输完毕立即断开,每次连接只完成一项业务的发送。
短连接是相对于长连接而言的概念,指的是在数据传送过程中,只在需要发送数据时,才去建立一个连接,数据发送完成后,则断开此连接,即每次连接只完成一项业务的发送。 在系统维护中,一般很难去察觉,需要借助网络安全设备或者抓包分析,才能够去发现。
常会出现在应急响应当中,想要查看网络连接中的短连接,需要多次使用netstat -anplt命令才可能会发现短连接;
3、Linux安全检查是常用的命令:
3.1、除root之外,是否还有其它特权用户(uid 为0):
awk -F: '$3==0{print $1}' /etc/passwd
3.2、可以远程登录的帐号信息:
awk '/\$1|\$6/{print $1}' /etc/shadow
3.3、统计登录日志(登录失败的次数):
grep -o "Failed password" /var/log/secure|uniq -c
3.4、查看登录失败的第一行和最后一行,确认时间范围:
grep "Failed password" /var/log/secure|head -1
grep "Failed password" /var/log/secure|tail -1
3.5、查看有哪些IP在爆破:
grep "Failed password" /var/log/secure|grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)"|uniq -c | sort -nr
3.6、查看攻击者的用户名字典:
grep "Failed password" /var/log/secure|perl -e 'while($_=<>){ /for(.*?) from/; print "$1\n";}'|uniq -c|sort -nr
3.7、查询用户登录成功的情况(包含日期、用户名、IP):
grep "Accepted " /var/log/secure | awk '{print $1,$2,$3,$9,$11}'
3.8、统计一下登录成功的IP:
grep "Accepted " /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr | more
杂项
mkdir命令建立新目录
mkdir [-mp] dirname
选项:
-m :配置目录的权限;
-p : 递归建目录
rmdir命令删除空目录
rmdir [-p] dirname
选项
-p 递归删除,如上一级也是空目录也会删除
ls命令显示档案与目录
ls [option] 目录名称
选项:
-a:全部的档案,连同隐藏档案(开头为.的隐藏档案)一起显示出来;
-A:全部的档案,连同隐藏档(不包括.与..这两个目录)
-d:仅列出目录,而不是目录下的档案数据;
-f:直接列出结果,不会排序(默认会以档名排序);
-F:根据档名、目录等信息,给予附加数据结构。例如:*表示可执行文件、/代码目录、=代表socket档案、|代表FIFO档案
-h:将档案容量以人类易度的方式程序出来;
-l:长数据串行出,包含档案的属性与权限等信息;
-n:列出UID与GID而非使用者与群组的名称;
-r:将排序结构倒序,如原档名排序是由小到大,倒叙则是由大到小;
-R:连通子目录内容一起列出来,等于该目录下的所有档案都会显示出来;
-S:以档案容量大小排序;
-t:以时间排序;
--full-time:以完整时间模式输出;
--time={atime,ctime}:输出access时间(atime)或者改变权限属性时间(ctime),而非内容改变的时间(mtime);
cp命令复制档案或目录
cp [option] oldsource newsource
选项:
-a:完全复制(包括各种属性);
-i:若目标文件已经存在时,在覆盖时会先询问;
-p:连通档案的属性一起赋值过去,常用于备份;
-r:递归持续赋复制目录
rm命令移除档案或目录
rm [-fir] 档案或目录
选项:
-f:忽略不存在的档案,不会出现警告;
-i:互动模式,删除前会先询问;
-r:递归删除,常用于删除目录;
mv命令移动档案与目录或更名
mv [options] source destination
选项:
-f:如果目标档案(destination)存在,不会询问直接覆盖;
-i:若目标档案(destination)存在,询问是否覆盖;
-u:若目标档案(destination)存在,且souce比较新,才会更新;
sync命令数据同步写入磁盘
Linux sync命令用于数据同步,sync命令是在关闭Linux系统时使用的。
sync
关机命令
shutdown、reboot、halt、poweroff命令。
立刻关机:
shutdown -h now
定时关机(绝对时间):
shutdown -h 18:00
定时关机(相对时间,相对于目前时间,单位是分):
shutdown -h +10
立刻重启:
shutdown -r now
重启前发送提示信息:
shutdown -r +10 'This system will reboot'
安全相关的Linux知识的更多相关文章
- Linux知识:/root/.bashrc与/etc/profile的异同
Linux知识:/root/.bashrc与/etc/profile的异同 要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shel ...
- J2EE程序员应该要掌握的linux知识
J2EE程序员应该要掌握的linux知识 大型J2EE应用都在建构在linux环境下的.开发环境下我们可以通过samba映射成本地的网络驱动器,直接在windows环境下进行编程调试.但是最后的发布还 ...
- My way on Linux - 知识梳理计划
知识梳理计划图 近期计划把自己学习的工作中用到的Linux知识梳理下,敬请期待.
- 欢迎关注我的微信公众账号:Linux技巧(微信号:irefactoring),一起学习Linux知识~~~
最近很少写博客了,一方面是近期工作比较繁忙,第二是把精力都放在GitHub和读源码去了. 申请了一个微信公众账号:Linux技巧 微信ID:irefactoring(意思是爱重构) ========= ...
- Android系统--输入系统(三)必备Linux知识_双向通信(scoketpair)
Android系统--输入系统(三)必备Linux知识_双向通信(scoketpair) 引入 1. 进程和APP通信 创建进程 读取.分发 - 进程发送输入事件给APP 进程读取APP回应的事件 输 ...
- Android系统--输入系统(二)必备Linux知识_实现inotify_epoll.c
Android系统--输入系统(二)必备Linux知识_实现inotify_epoll.c 课后作业 1. 编写 inotify_epoll.c, 用它来监测tmp/目录: 有文件被创建/删除, 有文 ...
- Android系统--输入系统(一)必备的Linux知识_inotify和epoll
Android系统--输入系统(一)必备的Linux知识_inotify和epoll 引入 1. 笔记本电脑插入外接键盘,两个键盘都可以使用 a. 键盘即插即用--如何检测键盘的接入和拔出 hotpl ...
- linux知识目录
linux 知识目录 linux 前台后台程序切换命令总结 shell脚本从入门到精通 Ubuntu下如何用命令运行deb安装包 <linux就该这么学>学习笔记
- Linux知识总结(更新中)
Linux知识总结(更新中) 如何查找特定的文件 find find path [options] params 作用:在指定目录下查找文件 检索文件内容 grep grep [options] pa ...
随机推荐
- 如何在Mac电脑上隐藏视频文件?
我们都有一些秘密视频,我们只想保留在Mac,iPhone或iPad上.为了完全安全地在Mac上隐藏视频文件,我们提供了两种种最简单的方法.下面就来看一下,如何在Mac上隐藏私密视频文件? 在iTune ...
- 如何开发自己的第一个 Serverless Component
前言 上一篇 基于 Serverless Component 的全栈解决方案 介绍 Serverless Component 是什么和如何使用 Serverless Component 开发一个全栈应 ...
- Callablestatement与JavaBean及其实例
一. Callablestatement:调用 数据库中的存储过程.存储函数 connection.prepareCall(参数:存储过程/存储函数名)参数格式:存储过程:(无返回值return,用O ...
- js里cookie,localStorage的简单用法
cookie的使用场景---->注册功能(注册成功后,将账号和密码存入cookie里,在登录时显示到输入框里) 注册的js(将数据存入cookie): escape和unescap ...
- ios输入法弹出输入框定位错乱
弹出输入框会使视口高度发生变化,弹出输入框后动态匹配这个高度 以下是使用jq的方法 $('input').on('blur', function () { setTimeout(function () ...
- c#在类里不能使用Response解决方法
response对应的类是HttpResponse, 在System.Web 命名字间里, 如果你在类中要使用 Response 的话, 需要使用System.Web.HttpConte ...
- PAT (Basic Level) Practice (中文)1070 结绳 (25 分) (优先队列)
给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...
- Web APIs---2. DOM(1)
1 DOM简介 1.1 定义 DOM就是文档对象模型,是W3C组织推荐的处理可扩展标记语言(HTML或者XML)的标准编程接口.W3C已经定义了一系列的DOM接口,通过这些DOM接口可以改变网页的内容 ...
- 1级搭建类103-Oracle 12c 单实例 FS(12.2.0.1+RHEL 7)公开
项目文档引子系列是根据项目原型,制作的测试实验文档,目的是为了提升项目过程中的实际动手能力,打造精品文档AskScuti. 项目文档引子系列目前不对外发布,仅作为博客记录.如学员在实际工作过程中需提前 ...
- linux2.4.0源码下载地址(配合毛德操情景分析)
https://www.kernel.org/pub/linux/kernel/v2.4/