zoukankan      html  css  js  c++  java
  • 安全相关的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:

    * */1 * * * /etc/init.d/smb restart

    每小时清空/var/log/messages日志内容:

    0 */1 * * * 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
    ";}'|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'
    

      

  • 相关阅读:
    python中print打印显示颜色
    django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3
    Ubuntu下Pycharm专业版安装
    解决Windows10运行VMware Workstation出现与Device Guard不兼容导致无法创建与运行虚拟机问题
    Script file 'D:\Anaconda3\Scripts\pipscript.py' is not present.
    Python中*args和**kwargs
    解决Pycharm运行卡顿问题
    一千行 MySQL 学习笔记,值得收藏!
    Ubuntu下安装QQ微信——亲测试有效!
    Windows 10专业版中如何添加 docker
  • 原文地址:https://www.cnblogs.com/endust/p/11851237.html
Copyright © 2011-2022 走看看