首页 > 系统相关 >Linux系统安全及应用

Linux系统安全及应用

时间:2023-02-14 17:36:46浏览次数:44  
标签:系统安全 命令 用户 su etc 应用 Linux root PAM

1. 账号安全基本措施
  1.1 系统账号清理

    (1)将非登录用户的 shell 设为/sbin/nologin:

  • 命令行格式
  • usermod -s /sbin/nologin 用户名

 

 

 

(2)锁定长期不使用的账号:

  • 命令行格式
  • 锁定账户①usermod -L 用户名
  • 锁定账户②passwd -l 用户名
  • 解锁账户①usermod -U 用户名
  • 解锁账户②passwd -u 用户名
  • 查看某一个用户密码的状态passwd -S 用户名

 

 

 

 

(3)删除无用的账号

  • 命令行格式
  • userdel [-r] 用户名

 

 

(4)锁定账号文件passwd、shadow

  • 命令行格式
  • 锁定文件chattr +i /etc/passwd /etc/shadow(在vi编辑器里只能读,不能写)
  • 解锁文件chattr -i /etc/passwd /etc/shadow
  • 查看文件状态lsattr -i /etc/passdw /etc/shadow

 


1.2 密码安全控制

 

  • 设置密码有效期

 

 

 

 

 

  • 要求用户下次登录时修改密码

 

 


  1.3 命令历史限制

 

  • history 可以查看到用户的历史命令。历史命令默认保存1000 条。保存在 用户家目录 的 .bash_history 隐藏文件中
  • history -c 可以清空历史命令。但是,用户家目录下的 .bash_history 文件中依旧保存着历史命令
  • !命令字 可以执行最近使用的该命令字开头的命令
  • !编号 可以执行该编号的历史命令

 

 

 

  • 减少记录的命令条数

 

 

 

  • 登录时自动清空命令历史

 

    echo "echo '' >~/.bash_history " >> ~/.bashrc 
    将 echo '' > ~/.bash_history 追加重定向写入 到 ~/.bashrc 文件中
    echo '' > ~/.bash_history 表示 将空字符 覆盖重定向写入 到 ~/.bash_history 文件中


  
1.4 终端自动注销

  • 闲置 600 秒后自动注销

 

 

2. 使用 su 命令切换用户
  2.1 用途及用法

  • 用途:Substitute User,切换用户
  • 命令行格式:

 

 

  • 带“-”选项表示将使用目标用户的登录Shell环境


  2.2 密码验证

  • root→任意用户,不验证密码

 

 

  • 普通用户→其他用户,验证目标用户的密码

 


  2.3 限制使用 su 命令的用户

  • 将允许使用 su 命令的用户加入 wheel 组
  • 启用 pam_wheel 认证模块

 

 

 

 

    Tips:在/etc/pam.d/su 文件里设置禁止用户使用 su 命令:
    vim /etc/pam.d/su
    auth sufficient pam_rootok.so
    ......
    #auth required pam_wheel.so use_uid
    ......

 

    以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的;
    两行都注释,也就是运行所有用户都能使用 su 命令,但 root 下使用 su 切换到其他普通用户需要输入密码:即 root 用户能够直接通过认证而不用输入密码;
    如果开启第二行,表示只有 root 用户和 wheel 组内的用户才能使用 su 命令;
    如果注释第一行,开启第二行,表示只有 wheel 组内的用户才能使用 su 命令,root 用户也被禁用 su 命令。


  2.4 查看 su 操作记录

  • 安全日志文件:/var/log/secure

3. Linux 中的 PAM 安全认证
  3.1 su 命令的安全隐患

  • 默认情况下,任何用户都允许使用 su 命令。这将有机会反复尝试其他用户的登陆密码,从而带来安全风险;
  • 为了加强 su 命令的使用控制,可借助于 PAM 认证模块,只允许极个别用户使用 su 命令进行切换。 

 

  3.2 PAM(Pluggable Authentication Modules)可插拔式认证模块

  • 是一种高效而且灵活便利的用户级别的认证方式;
  • 也是当前 Linux 服务器普遍使用的认证方式。


  3.3 PAM 认证原理

  • PAM 认证一般遵循的顺序:Service(服务)>PAM(配置文件)>pam_*.so
  • PAM 认证首先要确定哪一项服务,然后加载相应的 PAM 的配置文件(位于/etc/pam.d下),最后调用认证文件(位于/lib/security下)进行安全认证
  • 用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到 PAM 模块进行认证
  • 不同的应用程序所对应的PAM模块也是不同的
  • .so 为结尾的就是模块文件


  3.4 PAM 认证的构成

  • 查看某个程序是否支持PAM认证,可以用 ls 命令进行查看 /etc/pam.d,然后管道符号检索想要查询的程序;
  • 例如查看 su 是否支持 PAM 模块认证:ls /etc/pam.d | grep su
  • 查看su的PAM配置文件:cat /etc/pam.d/su
  • 每一行都是独立的认证过程;
  • 每一行可以区分为三个字段:认证类型、控制类型、PAM 模块及其参数


  3.5 PAM 安全认证流程

  • required:表示需要返回一个成功值,如果返回失败,不会立刻将失败结果返回,而是继续进行同类型的下一验证,所有此类型的模块执行完成后,再返回失败。
  • requisite:与 requried 类似,但如果此模块返回失败,则立刻返回失败并表示此类型失败。
  • sufficient:如果此模块返回成功,则直接向程序返回成功,表示此类成功,如果失败,也不影响这类型的返回值。
  • optional:不进行成功与否的返回,一般不用于验证,只是显示信息(通常用于 session 类型)。
  • include:表示在验证过程中调用其他的 PAM 配置文件。比如很多应用通过完整调用 /etc/pam.d/system-auth(主要负责用户登录系统的认证工作)来实现认证而不需要重新逐一去写配置项。

 

 

4. 使用 sudo 机制提升权限
  4.1 su 命令的缺点

    su 的确为管理带来方便,通过切换到 root下,能完成所有系统管理工具,只要把 root 的密码交给任何一个普通用户,他都能切换到 root 来完成所有的系统管理工作;但通过 su 切换到 root 后,也有不安全因素;比如系统有10个用户,而且都参与管理。如果这10个用户都涉及到超级权限的运用,做为管理员如果想让其它用户通过 su 来切换到超级权限的 root ,必须把 root 权限密码都告诉这10个用户;如果这10个用户都有 root 权限,通过 root 权限可以做任何事,这在一定程度上就对系统的安全造成了威胁。


  4.2 sudo 命令的用途及用法

  • 用途:以其他用户身份(如 root)执行授权的命令
  • 命令行格式


  4.3 配置 sudo 授权

  • visudo 或者 vi /etc/sudoers
  • 语法格式
  • 用户 主机名=命令程序列表
    用户 主机名=(用户) 命令程序列表


  4.4 查看 sudo 操作记录

 

    (1)需启用Defaults logfile 配置

  • 默认日志文件: /var/log/sudo
  • vim /etc/sudoers 编辑配置文件
  • 添加:Defaults logfile="/var/log/sudo"

    (2)进行 sudo 操作,查看文件操作记录


5. 开关机安全控制
  5.1 调整 BIOS 引导设置

 

  • 将第一引导设备设为当前系统所在硬盘
  • 禁止从其他设备(光盘、U盘、网络)引导系统
  • 将安全级别设为isetup,并设置管理员密码
  • Tips:禁止从其他设备引导系统操作,感觉若是出现忘记root密码就可能无法从光驱去修改,所以还是谨慎操作


  5.2 GRUB 限制

 

  • 使用grub2-mkpasswd-pbkdf2生成密钥
  • 修改/etc/grub.d/00_header文件中,添加密码记录
  • 生成新的grub.cfg配置文件


  5.3 终端登录安全控制

 

(1)限制 root 只在安全终端登录:

  • 安全终端配置:/etc/securetty

(2)禁止普通用户登录:

  • 建立 /etc/nologin 文件
  • 删除 nologin 文件或重启后即恢复正常

6. 系统弱口令检测

    弱口令(weak password) 没有严格和准确的定义,通常认为容易被别人(他们有可能对你很了解)猜测到或被破解工具破解的口令均为弱口令。弱口令指的是仅包含简单数字和字母的口令,例如“123”、“abc”等。


  6.1 弱口令穷举破解过程

 

    (1)Joth the Ripper密码分析工具,支持字典式的暴力破解

  • 通过对shadow文件的口令分析,可以检测密码强度

    (2)安装 JR 工具

  • 安装方法 make clean系统类型
  • 主程序文件为john

    (3)密码文件的暴力破解

  • 准备好密码字典文件,默认为password.lst
  • 执行john程序,结合–wordlist=字典文件

7. 网络端口扫描
  7.1 nmap 的扫描

    NMAP 是一个强大的端口扫描类安全评测工具,支持 ping 扫描、多端口检测等多种技术。

    NMAP 命令常用的选项和扫描类型:

    • -p:指定扫描的端口;
    • -n:禁用反向 DNS 解析(以加快扫描速度);
    • -sS:TCP 的 SYN 扫描(半开扫描),只向目标发出 SYN 数据包,如果收到 SYN/ACK 响应包就认为目标端口正在监听,并立即断开连接,否则视为目标端口并未开放;
    • -sT:TCP 连接扫描,这是完整的 TCP 扫描方式(默认扫描类型),用来建立一个 TCP 连接,如果成功则认为目标端口正在监听服务,否则视为目标端口并未开放。
    • -sF:TCP 的 FIN 扫描,开放的端口会忽略这种数据包,关闭的端口会回应 RST 数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻击包。这种类型的扫描可间接检测防火墙的健壮性。
    • -sU:UDP 扫描,探测目标主机提供哪些 UDP 服务,UDP扫描的速度会比较慢。
    • -sP:ICMP 扫描,类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。
    • -P0:跳过 ping 检测,这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。

标签:系统安全,命令,用户,su,etc,应用,Linux,root,PAM
From: https://www.cnblogs.com/esec/p/17120292.html

相关文章

  • Linux基础——网络配置与系统管理
    、网络配置1.VMware网络连接模式桥接模式:虚拟机直接连接外部物理网络的模式,主机起到了网桥的作用,虚拟机可以直接访问外部网络,对外部网络可见,但是分配的地址需要在同个......
  • Linux日志文件及如何使用rsyslog搭建小型日志服务器
     一、日志文件1、日志作用2、常用日志3、日志级别二、Rsyslog日志处理系统1、使用Rsyslog创建日志有点2、Rsyslog配置文件解析3、使用rsyslog将ssh服务的日志单......
  • linux Usb serial console
    ubuntuUsbserialconsole能够把下电时打印输出到串口上,可以记录,而netconsole只能输出下电到disk之前的打印Usb串口线,ftdi或pl2303都可以如果是ubuntu,需要重新编译......
  • linux本地文件夹双向同步
    前言​ 开发时习惯将所有项目将在统一文件夹下,运行目录在其它目录;如果每次修改后又copy到运行目录就很蛋疼,于是找到了同步本地文件夹这个解决方法。监听工作目录的文件修......
  • 浅析EasyCVR安防视频能力在智慧小区建设场景中的应用及意
    一、行业需求城市的发展创造了大量工作机会,人口的聚集也推动了居民住宅建设率的增长。人民生活旨在安居乐业,能否住得“踏实”是很多劳动工作者最关心的问题。但目前随着住宅......
  • 多功能智慧杆如何实现智能红绿灯应用?
    多功能智慧杆的优势之一在于模块化的功能组合,能够根据场景需求自由搭载硬件外设,开发专项功能。比如在十字路口的多功能智慧杆,可以选择搭载AI摄像头、智能红绿灯、显示屏、......
  • Linux系统的网卡路由配置
    (Linux系统的网卡路由配置)一、查看系统路由[root@control~]#route-nKernelIProutingtableDestinationGatewayGenmaskFlagsMetricRef......
  • 我常用的Linux快捷命令
    alias设置快捷自定义命令语法:alias快捷命令=‘完整命令’因为可以直接把上述当成一条语句来执行,但是服务器重启之后会失效,被称为临时快捷命令;但是!将他写入~/.b......
  • Linux下配置网络参数常用的两种方式!
    Linux系统下配置网络参数的方式主要分为两种:临时性网络配置、永久性网络配置,接下来我们通过这篇文章为大家详细的讲解一下,有需要的朋友可以认真阅读一下。Linux下配......
  • linux 防火墙
    前言centos7已经开始使用firewall作为防火墙,而不是iptablessystemctl是CentOS7的服务管理工具中主要的工具,它融合之前service和chkconfig的功能于一体查看防火墙的状......