• 一些安全相关的命令


    应用程序:RPM

    文件完整性的两种实施方式

    被安装的文件

        MD5 单向散列

    rpm --verify|-V package_name

    发行的软件包文件

        GPG公钥签名

    1. rpm  --import  /etc/pki/rpm-gpg/RPM-GPG-KEYredhat* 
    2. rpm  --checksig  pakage_file_name  (or  -K)

    使用gpg实现对称加密

    对称加密file文件

    1. gpg -c file
    2. ls file.gpg

    解密file

    gpg -o file -d file.gpg

    在hostB上用公钥加密,在hostA主机上解密

    在hostA主机上生成公钥/私钥对

    gpg --gen-key

    在hostA主机上查看公钥

    gpg --list-keys

    在hostA主机上导出公钥到nineven.pubkey

    gpg -a --export -o nineven.pubkey

    从hostA主机上负责公钥文件到需要加密的B主机上

    scp nineven.pubkey hostB

    在需要加密数据的hostB主机上生成公钥/私钥对

    1. gpg --list-keys
    2. gpg --gen-key

    在hostB主机上导入公钥

    1. gpg --import nineven.pubkey
    2. gpg --list-keys

    用从hostA主机导入的公钥,加密hostB主机的文件file,生成file.gpg

    1. gpg -e -r nineven file
    2. file file.gpg

    复制加密文件到hostA主机

    scp fstab.gpg hostA

    在hostA 主机解密文件

    1. gpg -d file.gpg
    2. gpg -o file -d file.gpg

    删除公钥和私钥

    1. gpg --delete-keys nineven
    2. gpg --delete-secret-keys nineven

    rsync命令

    基于ssh和rsh服务实现高效率的远程系统之间复制文件

    使用安全的shell连接作为传输方式

        

    1. rsync –av /etc server1:/tmp 复制目录和目录下文件 
    2. rsync –av /etc/  server1:/tmp 只复制目录下文件 

    比 scp 更快,只复制不同的文件

    选项:

        -n 模拟复制过程 

        -v 显示详细过程 

        -r 递归复制目录树 

        -p 保留权限 

        -t 保留时间戳 

        -g 保留组信息 

        -o 保留所有者信息 

        -l 把符号链接文件做为符号文件进行复制(默认) 

        -L 将软链接文件指向文件复制 

        -a 存档模式,相当于 –rlptgoD,但不保留ACL(-A)和SELinux属性( -X)

        

    sftp命令

    交互式文件传输工具

    用法和传统的ftp工具类似

    利用ssh服务实现安全的文件上传和下载

    使用ls cd mkdir rmdir pwd get put 等命令,可用 ? 来获取帮助

    AIDE

        当一个入侵者进入了你的系统并且种植了木马,通常会想办法来隐蔽这个木马(除了木马自身的一些隐蔽特性外,他会尽量给你检查系统的过程设置障碍),通常入侵者会修改一些文件,比如管理员通常用ps-aux来查看系统进程,那么入侵者很可能用自己经过修改的ps程序来替换掉你系统上的ps程序,以使用ps命令查不到正在运行的木马程序。如果入侵者发现管理员正在运行crontab作业,也有可能替换掉crontab程序等等。所以由此可以看出对于系统文件或是关键文件的检查是很必要的。目前就系统完整性检查的工具用的比较多的有两款:Tripwire和AIDE,前者是一款商业软件,后者是一款免费的但功能也很强大的工具。

    高级入侵检测环境,是一个入侵检测工具,主要用途是检查文件的完整性,审计计算机上的那些文件被更改过了

    AIDE能够构造一个指定文件的数据库,它使用aide.conf作为其配置文件。AIDE数据库能够保存文件的各种属性,包括:权限 (permission)、索引节点序号(inode number)、所属用户(user)、 所属用户组(group)、文件大小、最后修改时间(mtime)、创建时间 (ctime)、最后访问时间(atime)、增加的大小以及连接数。AIDE 还能够使用下列算法:sha1、md5、rmd160、tiger,以密文形式 建立每个文件的校验码或散列号. 

    这个数据库不应该保存那些经常变动的文件信息,例如:日志文件 、邮件、/proc文件系统、用户起始目录以及临时目录.

    安装 yum install aide -y

    编辑配置文件

    vim /etc/aide.conf

    更改配置文件后,初始化默认AIDE数据库

    aide --init

    生成检查数据库(建议初始数据库存放到安全的地方) 

    1. cd /var/lib/aide 
    2. mv aide.db.new.gz aide.db.gz 

    检测: 

    /usr/local/bin/aide --check 

    更新数据库

    aide --update

    sudo相关命令

    su 切换身份: su -l username -c 'command'

    sudo命令:

    1. sudo能够授权指定用户在指定主机上运行某些命令,如果未授权用户尝试使用sudo,会提示联系管理员

    2. sudo可以提供日志,记录每个用户使用sudo操作

    3. sudo为系统管理员提供配置文件,允许系统管理员集中的管理用户的使用权限和使用的主机

    4. sudo使用时间戳文件来完成类似"检票"的系统,默认存活期为5分钟的"入场券"

    5. 通过visudo命令编辑配置文件,具有语法检查功能

    配置文件: /etc/sudoers  /etc/sudoers.d/ 

    时间戳文件 : /var/db/sudo

    日志文件 : /var/log/secure

    配置文件支持使用通配符 glob:

        ? :任意单一用户

        * :匹配任意长度字符

        [wxv] :匹配其中一个字符

        [!wxv] :除了这三个字符的其他字符

        \x :转义

        [[alpha]] :字母 示例: /bin/ls [[alpha]]*

    配置文件规则有两类:

        别名定义:不是必须的

        授权规则:必须的

    授权规则格式:

        用户 登入主机=(代表用户) 命令

    示例:

    root ALL=(ALL) ALL

    格式说明:

        user : 运行命令者的身份

        host : 通过哪些主机

        (runas) :以哪个用户的身份

        command : 运行哪些命令

    若用户加入wheel组中,相当于拥有管理员的权限

    别名

    users和runas :

        username

        #uid

        %group_name

        user_alias|runas_alias

    host:

        in或hostname

        network(/netmask)

        host_alias

    command:

        command name

        directory

        sudoedit

        Cmnd_Alias

    别名有四种类型: User_Alias,Runas_Alias,Host_Alias,Cmnd_Alias

    别名格式: [A-Z]([A-Z[0-9]]_)*

    别名定义:

    Alias_Type NAME1=tiem1,item2,item3:NAME2=item3,item5

    示例:

    1. Student ALL=(ALL) ALL
    2. %wheel ALL=(ALL) ALL

    示例:

    1. student ALL=(root) /sbin/pidof,/sbin/ifconfig
    2. %wheel ALL=(ALL) NOPASSWD:ALL  #屏蔽掉了密码

    示例

    1. User_Alias  NETADMIN= netuser1,netuser2 
    2. Cmnd_Alias NETCMD = /usr/sbin/ip 
    3. NETADMIN ALL=(root) NETCMD 

    示例

    1. User_Alias SYSADER=wang,mage,%admins 
    2. User_Alias DISKADER=tom 
    3. Host_Alias SERS=www.magedu.com,172.16.0.0/24 
    4. Runas_Alias OP=root 
    5. Cmnd_Alias SYDCMD=/bin/chown,/bin/chmod 
    6. Cmnd_Alias DSKCMD=/sbin/parted,/sbin/fdisk 
    7. SYSADER SERS= SYDCMD,DSKCMD 
    8. DISKADER ALL=(OP) DSKCMD 

    示例

    1. User_Alias ADMINUSER = adminuser1,adminuser2 
    2. Cmnd_Alias ADMINCMD = /usr/sbin/useradd, /usr/sbin/usermod, /usr/bin/passwd [a-zA-Z]*, !/usr/bin/passwd root 
    3. ADMINUSER ALL=(root) NOPASSWD:ADMINCMD, PASSWD:/usr/sbin/userdel 

    示例

    1. Defaults:wang runas_default=tom 
    2. wang ALL=(tom,jerry) ALL 

    示例

    wang 192.168.175.136,192.168.175.138=(root) /usr/sbin/,!/usr/sbin/useradd 

    示例

    wang ALL=(ALL)  /bin/cat /var/log/message*

    sudo命令

    1. ls -l /usr/bin/sudo 
    2. sudo –i –u nineven 切换身份 

    sudo [-u user] COMMAND 

        -V 显示版本信息等配置信息 

        -u user  默认为root 

        -l,ll 列出用户在主机上可用的和被禁止的命令 

        -v 再延长密码有效期限5分钟,更新时间戳 

        -k 清除时间戳,下次需要重新输密码 

        -K 与-k类似,还要删除时间戳文件 

        -b 在后台执行指令 

        -p 改变询问密码的提示符号 如 -p ”password on %h for user %p

  • 相关阅读:
    mmdetection源码解读:何时注册HOOKS、MODELS、DATASETS
    LeetCode中等题之统计一个圆中点的数目
    PFX证书转PEM并对私钥进行PKCS#8编码
    Selenium自动化最佳实践技巧等你来学
    升级 MacOS 系统后,playCover 内游戏打不开了如何解决
    容器运行时与k8s概述
    Maven多模块快速升级超好用Idea插件-MPVP
    100天精通Python(爬虫篇)——第47天:selenium自动化操作浏览器
    libusb开源库使用说明
    vulnhub之GeminiInc v2
  • 原文地址:https://blog.csdn.net/ly1358152944/article/details/126345610