第十章 Linux系统安全及应用

embedded/2024/10/18 6:11:49/

目录

一、账号安全控制

1、账号安全基本措施

(1)系统账号清理

(2)密码安全控住

(3)命令历史限制

(4)终端自动注销

2、使用su命令切换用户

(1)限制使用su命令的用户

3、Linux中的PAM安全认证

(1)su命令的安全隐患

(2)PAM(Pluggable Authentication Modules)可插拔式认证模版

4、PAM认证原理

(1)一般遵循的顺序

5、PAM认证的构成

6、PAM安全认证流程

(1)控制类型也称做Contril Flags,用于PAM验证类型的返回结果

7、使用sudo机制提升权限

(1)su命令的缺点

(2)sudo命令的用途及用法

(3)配置sudo授权

(4)查看sudo操作记录

(5)查询授权的sudo操作

二、系统引导和登录控制

1、开关机安全控制

(1)调整BIOS引导设置

(2)GRUB限制

2、终端登录安全控制

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

(2)禁止普通用户登录

三、弱口令检测

1、系统弱口令检测

(1)Joth the Ripper,简称为JR

(2)安装JR工具

(3)检测弱口令账号

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

四、端口扫描

1、网络端口扫描

(1)NMAP

(2)NMAP的扫描    ​编辑

(3)常用的扫描类型


一、账号安全控制

1、账号安全基本措施

(1)系统账号清理

a、将非登录用户的Shall设为/sbin/nologin

usermod -s/sbin/nologin 用户名

b、锁定长期不使用的账号

usermod -L 用户名            passwd -l 用户名

passwd -S 用户名

c、删除无用的账号

userdel[-r]用户名

d、锁定账号文件passwd、shadow

chattr +i/etc/passwd/etc/shadow(锁定文件并查看状态)

isattr /etc/passwd/etc/shadow

chattr -i/etc/passwd/etc/shadow(解锁文件)

账号安全管理
禁止程序用户登录             usermod -s /sbin/nologin 用户名
锁定禁用长期不使用的用户     passwd -l 用户名       usermod -L 用户名        #查看锁定账号状态  passwd -S 用户名
删除无效用户                 userdel -r 用户名
禁止账号和密码的修改         chattr +i /etc/passwd /etc/shadow               #查看锁定文件状态  lsattr
文件名
 

(2)密码安全控住

a、设置密码有效期

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

[root@localhost~]# vi/etc/login.defs(修改密码配置文件适用于新建用户)

PASS_MAX_DAYS    30

[root@localhost~]# chage-M 30 lisi(适用于已有用户)

[root@localhost~]# cat/etc/shadow | grep lisi

 [root@localhost~]# chage -d 0 zhangsan(强制在下次登录时更改密码)

[root@localhost~]# cat /etc/shadow | grep zhangsan(shadow文件中的第三个字段被修改为0)

密码安全管理
设置密码有效期               chage -M 天数  用户名                            #针对已存在的用户,天数为 99999 表示为永不过期
                             vim /etc/login.defs  -->  PASS_MAX_DAYS 天数     #针对新建的用户
强制用户下一次登录修改密码   chage -d 0 用户名

 

(3)命令历史限制

a、减少记录的命令条数

b、登录时自动清空命令历史

(4)终端自动注销

a、闲置600秒后自动注销

历史命令安全管理
查看历史命令        history
限制历史命令数量    vim /etc/profile  -->  export HISTSIZE=XX  -->  source /etc/profile
清空历史命令        history -c      #临时清空
                    vim /etc/profile  -->  > ~/.bash_history

2、使用su命令切换用户

(1)限制使用su命令的用户

a、将允许使用su命令的用户加入wheel组

b、启用pam_wheel认证模块

限制su切换用户
1)将信任的用户加入到wheel组中     gpasswd wheel -a 用户名
2)修改su的PAM认证配置文件         vim /etc/pam.d/su -> 开启 auth   required   pam_wheel.so use_uid 的配置

3、Linux中的PAM安全认证

(1)su命令的安全隐患

a、默认情况下,任何用户都允许使用su命令,有机会反复尝试其他用户(如root)的登录密码,带来安全风险

b、为了加强su命令的使用控制,可借助于PAM认证模版,只允许极个别用户使用su命令进行切换

(2)PAM(Pluggable Authentication Modules)可插拔式认证模版

a、是一种高效而灵活便利的用户级别的认证方式

b、也是当前Linux服务器普遍使用的认证方式

4、PAM认证原理

(1)一般遵循的顺序

a、Service(服务)—>PAM(配置文件)—>pam_*.so

(2)首先要确定哪一项服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下)进行安全认证

(3)不同的应用程序对应的PAM模块是不同的

5、PAM认证的构成

(1)查看某个程序是否支持PAM认证,可以使用ls命令

实例:查看su是否支持PAM模块认证

(2)查看su的PAM配置文件:cat/etc/pam.d/su

a、每一行都是一个独立的认证过程

b、每一行可以区分为三个字段

  • 认证类型
  • 控制类型
  • PAM模块及其参数

6、PAM安全认证流程

(1)控制类型也称做Contril Flags,用于PAM验证类型的返回结果

a、required验证失败时仍继续,但返回Fail

b、requiste验证失败则立即结束整个验证过程,返回Fail

c、suffcient验证成果则立即返回,不在继续,否则忽略结果并继续

d、optional不用于验证,只显示信息(通常用于session类型)

7、使用sudo机制提升权限

(1)su命令的缺点
(2)sudo命令的用途及用法

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

b、用法:sudo 授权命令

(3)配置sudo授权

a、visudo或者vi /etc/sudoers

b、记录格式:用户 主机名=命令程序列表

sudo提权
visudo     vim /etc/sudoers (要用 wq! 强制保存)
#用户/组授权
用户名  主机名=程序列表                 #命令要用绝对路径表示,支持使用通配符 * 表示所有, ! 表示取反
%组名 主机名=程序列表
用户名  主机名=NOPASSWD: 程序列表       #NOPASSWD: 表示sudo不用密码验证

su切换用户

创建用户及密码

(4)查看sudo操作记录

a、需启用Defaults logfile 配置

b、默认日志文件:/var/log/sudo

启用日志配置以后,sudo操作过程才会被记录

(5)查询授权的sudo操作

a、sudo -l

别名设置
User_Alias  大写别名=用户1, 用户2, ...
Host_Alias  大写别名=主机名1, 主机名2, ...
Cmnd_Alias  大写别名=命令路径1, 命令路径2, ...
用户别名  主机别名=命令别名

#设置sudo日志路径
Defaults logfile = "/var/log/sudo.log"


sudo -l           #普通用户查看有哪些sudo权限   

二、系统引导和登录控制

1、开关机安全控制

(1)调整BIOS引导设置

a、将第一引导设备设为当前系统所在硬盘

b、禁止从其他设备(光盘、U盘、网络)引导系统

c、将安全级别设为setup,并设置管理员密码

(2)GRUB限制

a、使用grub2-mkpasswd-pdkbf2生成密钥

b、修改/etc/grub.cfg配置文件

c、生成新的grub。cfg配置文件

服务器一般从第一次开机一直到天荒地老使用设备寿命到达时 (除了中途维护保养)

生成密钥信息

修改文件前先备份

先进去su的PAM认证配置文件  :用户名和密钥的设置中间部分

2、终端登录安全控制

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

a、安全终端配置:/etc/securetty

(2)禁止普通用户登录

a、建立/etc/nologin文件

b、删除nologin文件或重启后立即恢复正常

三、弱口令检测

1、系统弱口令检测

(1)Joth the Ripper,简称为JR

a、一款密码分析工具,支持字典式的百里破解

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

c、官方网站:http://www.openwall.com/john/

(2)安装JR工具

a、安装方法   make   clean   系统类型

b、主程序文件为john

(3)检测弱口令账号

a、获得Linux/unix服务器的shadow文件

b、执行john程序,将shadow文件作为参数

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

a、准备好密码字典文件,默认为password.lst

b、执行john程序,结合--wordlist=字典文件

四、端口扫描

1、网络端口扫描

(1)NMAP

a、一款强大的网络扫描、安全检测工具

b、官方网站:http://nmap.org/

c、CentOS 7.3光盘中安装包nmap-6.40-7.el.x86_64.rpm


 

(2)NMAP的扫描    

(3)常用的扫描类型

a、-sS、-sT、-sF、-sU、-sP、-PO

b、分别查看本机开放的TCP端口、DUP端口

nmap -sT 127.0.0.1

nmap -sU 127.0.0.1

c、检测192.168.4.0/24网段哪些主机提供FTP服务

nmap -p 21 192.168.4.0/24

d、检测192.168.4,0/24网段有哪些存活主机

nmap -n-sP 192.1968.4,0/24

如何查看进程是否已经开启?
systemctl status 进程名
ps aux/-elf | grep 进程名 
netstat/ss -lntup | grep 进程名/:端口
lsof -i :端口  


如何通过端口查看进程号?
netstat -lntup | grep :端口
ss -lntup | grep :端口
lsof -i :端口  


对新服务器做过哪些初始化操作?
安装操作系统
设置网络,比如 网卡IP、网关、路由、DNS服务器地址、双网卡绑定bond(在物理机环境中使用)
设置主机名         hostnamectl set-hostname
设置ntp时间同步    ntpd    chronyd    ntpdate
设置防火墙规则     iptables  firewalld
关闭selinux        setenforce 0      /etc/selinux/config
精简开机启动服务   systemctl enable crond rsyslog network sshd
设置yum仓库镜像源  /etc/yum.repos.d/
磁盘使用lvm或raid   
升级linux内核


服务器初始化后做过哪些安全加固?
禁止 root 用户远程登陆        /etc/ssh/sshd_config   --> PermitRootLogin no
修改 ssh 端口号               /etc/ssh/sshd_config   --> Port
普通用户限制 su 切换用户      /etc/pam.d/su
普通用户通过 sudo 授权管理    visudo   /etc/sudoers
锁定关键系统文件              chattr +i
设置历史命令保存条数          /etc/profile   HISTSIZE
设置账户超时时间              /etc/profile   TMOUT
限制用户的登录次数            /etc/pam.d/sshd
设置用户密码强度              /etc/pam.d/system-auth
接入堡垒机或跳板机


http://www.ppmy.cn/embedded/10119.html

相关文章

【存储】cosbench对象存储测试工具

目录 简略说明 原理 用法 详细说明 简介 用法 一 安装 二 简单验证 三 编写配置文件 四 提交配置文件下IO 五 测试结果查看 结果概览 查看详情 每秒钟的io情况查看 工作负载配置 参数配置(controller和driver) 查看错误的方法和错误记录 查看错误的方法 …

Acer宏碁掠夺者战斧300笔记本电脑PH315-52工厂模式原装Win10系统安装包 恢复出厂开箱状态 带恢复重置

宏碁掠夺者PH315-52原厂Windows10工厂包镜像下载,预装oem系统 链接:https://pan.baidu.com/s/1grmJzz6nW1GOaImY_ymXGw?pwdi286 提取码:i286 原厂W10系统自带所有驱动、PredatorSense风扇键盘控制中心、Office办公软件、出厂主题壁纸、系统…

STM32F1串口

文章目录 1 数据通信的基础概念1.11.21.31.41.5 2 串口(RS-232)2.12.22.32.42.5 3 STM32的USART3.13.23.33.53.9 USART寄存器介绍 4 HAL库外设初始化MSP回调机制5 HAL库中断回调机制6 USART/UART异步通信配置步骤 (包括HAL库相关函数)6.16.26…

RestFul 风格(SpringMVC学习笔记三)

1、什么是Restful风格: Restful就是一个资源定位及资源操作的风格。不是标准也不是协议,只是一种风格。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。 2、使用Restful风格 接上一个笔记的测试类 package…

【Web】HNCTF 2022 题解(全)

目录 Week1 Interesting_include 2048 easy_html What is Web Interesting_http easy_upload Week2 ez_SSTI easy_include ez_ssrf Canyource easy_unser easy_sql ohmywordpress Week3 ssssti Fun_php ez_phar QAQ_1inclu4e logjjjjlogjjjj …

面试复习基础题目-c#相关

面试复习基础题目 c#相关问题 delegate和event的区别是什么? Delegate用来声明委托类型,event用来声明委托对象; 事件是委托的一种应用,事件是带有event关键词的委托对象,对委托对象进行了封装,本质就是委…

C语言-二分查找

二分查找 二分查找(Binary Search)是一种在有序数组中查找特定元素的搜索算法。它的工作原理是将数组分为两半,然后根据目标值与中间元素的关系,决定在左半部分还是右半部分继续搜索,直到找到目标值或者搜索范围为空。…

从零开始精通RTSP之深入理解RTCP协议

概述 RTCP,即实时控制协议,英文全称为RTP Control Protocol,是RTP的配套协议。与RTP不同,RTCP本身不传输实时数据,而是用于提供有关RTP会话的统计信息和控制功能。RTCP的主要目标是提供数据传输质量的反馈,…