安全相关的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 ...
随机推荐
- 剑指offer-面试题50-第一个只出现一次的字符-哈希表
/* 题目: 求字符串第一个只出现一次的字符. */ /* 思路: 使用map遍历两次,第一次计数,第二次找到计数为1的第一个字符. */ #include<iostream> #incl ...
- C语言中File的应用
#C语言中规定我们使用文件必须初始化一个文件指针 FILE* pfile = NULL; #以a+追加的方式打开文件 返回值0为打开成功 int fp = fopen_s(&pfile, &q ...
- Luogu2040 | 打开所有的灯 (广搜+状压)
题目背景 pmshz在玩一个益(ruo)智(zhi)的小游戏,目的是打开九盏灯所有的灯,这样的游戏难倒了pmshz... 题目描述 这个灯很奇(fan)怪(ren),点一下就会将这个灯和其周围四盏灯的 ...
- JavaDay11
Java learning_Day11 本人学习视频用的是马士兵的,也在这里献上 <链接:https://pan.baidu.com/s/1qKNGJNh0GgvlJnitTJGqgA> ...
- 以下几种情况转换成布尔类型会得到false
0 -0 '' NaN undefined null false document.all()
- PHP 计算当前时间是这一年的第几周
$week = intval(date('W',time()));
- Hibernate注释
Hibernate注释映射一.PO类的基本注释1.@Entity:将pojo类标记成实体,可以指定一个name属性,指定实体类的名称.默认一该类的类名作为实体类的名称 2.@Table:注释改持久化类 ...
- leetcode再次总结
注释 testcases (1)简单一想O(n)算法,有可能通过二分查找变形优化成log(n) (2)双指针:一快一慢 一静一动(数组中最小的长度满足条件,常常用于,确定了一个范围,然后一个指针静止, ...
- Leetcode Week5 Maximum Sum Circular Subarray
Question Given a circular array C of integers represented by A, find the maximum possible sum of a n ...
- NOI Online能力测试游记:退役选手的自娱自乐
2020年2月17日早上8点,CCF发布了关于举办NOI Online能力测试的通知. 为给选手提供一个锻炼的机会,CCF拟举办一场NOI Online能力测试.测试分为入门组和提高组,每组限额报名3 ...