Linux:系统安全及应用

目录

一、系统账号管理

1.1、系统账号清理

1.2、密码安全控制

1.3、命令历史限制

二、限制su命令用户

三、PAM安全认证

四、sudo机制提升权限

4.1、sudo机制介绍

4.2、用户别名案例

4.3、启用sudo操作日志

4.4、其他案列sudo

4.5、开关机安全控制

4.6、限制更改GRUB引导参数

4.7、终端登录安全控制

五、系统弱口令检测

六、网络端口扫描nmap

6.1、nmap扫描类型

6.2、netstat命令


一、系统账号管理

1.1、系统账号清理

grep "/sbin/nologin$" /etc/passwd
usermod -s /sbin/nologin 用户名

案例
#账号锁住
usermod -L zhangsan #锁定账号 
passwd -S zhangsan # 查看账号状态
passwd -l zhangsan 锁定用户账户

#解锁账号
usermod -U zhangsan #解锁账号 
passwd -u zhangsan  #解锁账号 

删除无用账号
userdel -r 用户名

#锁定文件
chattr +i /etc/passwd /etc/shadow    #锁定文件

lsattr /etc/passwd /etc/shadow       #查看为锁定的状态

chattr -i /etc/passwd /etc/shadow    #解锁文件

1.2、密码安全控制

vim /etc/login.defs    #适用于新建的用户

PASS_MAX_DAYS 30      #设置密码有效期30天   默认99999      30  90  60 天很少

PASS_MIN_DAYS   0    #表示自上次修改密码以来,最少隔多少天后用户才能再次修改密码,默认值是 0

PASS_MIN_LEN    5    #密码最小长度,对于root无效   18位包含密码复杂性 大写 、小写、字符、数字

PASS_WARN_AGE   7    #指定在密码到期前多少天,系统就开始通过用户密码即将到期,默认为 7 天。

#chage 命令用于设置密码时限

chage -M 30 lisi  #适用于已有的 lisi 用户

#执行以下操作可强制要求用户zhangsan下次登录时重设密码

chage -d 0 zhangsan

1.3、命令历史限制

history
history -c 临时的清除

clear

二、限制su命令用户

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

为了加强 su 命令的使用控制,可以借助于 pam_wheel 认证模块,只允许极个别用户使用 su 命令进行切换。

在/etc/pam.d/su文件里设置禁止用户使用su命令

vim /etc/pam.d/su
2 # auth sufficient pam_ rootok.so
6 #auth required pam_ wheel.so use_ _uid

a)以上两行是默认状态(即开启第一行,注释第二行),这种状态下是允许所有用户间使用su命令进行切换的。

b)两行都注释也是运行所有用户都能使用su命令,但root'下使用su切换到其他普通用户需要输入密码;如果第一行不注释,则root使用su切换普通用户就不需要输入密码(pam rootok. so模块的主要作用是使uid为0的用户,即root用户能够直接通过认证而不用输入密码)。

c)如果开启第二行,表示只有root用户和wheel组内的用户才可以使用su命令

d)如果注释第一行,开启第二行,表示只有wheel组内的用户才能使用su命令,root用户也被禁用su命令。

三、PAM安全认证

可插拔是形象说法 不是外部设备也不是U盘,可插拔可以理解为可配置、可定制的一个模块,你想让某个服务具有什么样的认证功能,你就可以通过配置它的配置文件实现;
可以理解为可配置、可定制、我们可以编辑,我们可以定制某个服务的认证就是可插拔试认证模块,它是一种高效而且灵活的便利的用户级的认证,也是现在linux 服务器普遍使用的认证方式。

PAM认证原理:
1.PAM认证一般遵循的顺序: Service (服务) --> PAM (配置文件) --> pam_ *.so;
2. PAM认证首先要确定哪一项应用 服务,然后加载相应的PAM的配置文件(位于/etc/pam.d下),最后调用认证模块(位于
/lib64/security/下)进行安全认证。
3.用户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不同的应用程序所对应的PAM模块也是不同的。
如果想查看某个程序是否支持PAM 认证,可以用ls命令进行查看/etc/pam.d/
PAM的配置文件中的每一行都是一个独立的认证过程,它们按从上往下的顺序依次由PAM模块调用

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

PAM 认证类型包括四种:
认证管理(authentication management):接受用户名和密码,进而对该用户的密码进行认证;
帐户管理(account management):检查帐户是否被允许登录系统,帐号是否已经过 期,帐号的登录是否有时间段的限制等;
密码管理(password management):主要是用来修改用户的密码; 
会话管理(session management):主要是提供对会话的管理和记账。 控制类型也可以称做 Control Flags,用于 PAM 验证类型的返回结果。 
1)required 验证失败时仍然继续,但返回 Fail 
2)requisite 验证失败则立即结束整个验证过程,返回 Fail 
3)sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续 
4)optional 不用于验证,只是显示信息(通常用于 session 类型)

四、sudo机制提升权限

4.1、sudo机制介绍

  通过su命令可以非常方便地切换为另一个用户,但前提条件是必须知道目标用户的登 录密码。例如,若要从zhangsan 用户切换为 root 用户,必须知道 root 用户的密码。对于生产环 境中的 Linux 服务器,每多一个人知道特权密码,其安全风险也就增加一分。 有没有一种折中的办法,既可以让普通用户拥有一部分管理权限,又不需要将 root 用户的密码告诉他呢?答案是肯定的,使用 sudo命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。

sudo [参数选项] 命令
-l :列出用户在主机上可用的和被禁止的命令;一般配置好/etc/sudoers后,要用这个命令来查看和测试是不是配置正确的;
-v :验证用户的时间戳;如果用户运行sudo 后,输入用户的密码后,在短时间内可以不用输入口令来直接进行sudo 操作;用-v 可以跟踪最新的时间戳;
-u: 指定以以某个用户执行特定操作;
-k: 删除时间戳,下一个sudo 命令要求用求提供密码;

/etc/sudoers文件的默认权限为440,需使用专门的 visudo 工具进行编辑。虽然也可以用 vi 进行编辑,但保存时必须执行“:w!”命令来强制操作,否则 系统将提示为只读文件而拒绝保存。

4.2、用户别名案例

当使用相同授权的用户较多,或者授权的命令较多时,可以采用集中定义的别名。用户、 主机、命令部分都可以定义为别名(必须为大写),分别通过关键字User_Alias、Host_Alias,Cmnd_Alias来进行设置。

用户别名的语法格式:
1)User_Alias  用户别名:包含用户、用户组(%组名(使用%引导))、还可以包含其他其他已经用户的别名
 User_Alias OPERATORS=zhangsan,tom,lisi 
2)Host_Alias
主机别名:主机名、IP、网络地址、其他主机别名 !取反
 Host_Alias MAILSVRS=smtp,pop 
3)Cmnd_Alias
命令路劲、目录(此目录内的所有命令)、其他事先定义过的命令别名
Cmnd_Alias PKGTOOLS=/bin/rpm,/usr/bin/yum 

4.3、启用sudo操作日志

visudo
Defaults logfile = "/var/log/sudq"

sudo日志记录以备管理员查看,应在/etc/sudoers 文件中增加“Defaults logfile”设置
如果已经启用 sudo 日志,则可以从/var/log/sudo 文件中看到用户的 sudo 操作记录。

4.4、其他案列sudo

sudo 配置记录的命令部分允许使用通配符“*”、取反符号“!”,当需要授权某个目录下的 所有命令或取消其中个别命令时特别有用。例如,若要授权用户 syrianer 可以执行/sbin/目录下除 ifconfig、route 以外的其他所有命令程序,可以执行以下操作。

4.5、开关机安全控制

在互联网环境中,大部分服务器是通过远程登录的方式来进行管理的,而本地引导和终端登录过程往往容易被忽视,从而留下安全隐患。特别是当服务器所在的机房环境缺乏严格、 安全的管控制度时,如何防止其他用户的非授权介入就成为必须重视的问题;

对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁 闭,还要严格控制机房的人员进出、硬件设备的现场接触等过程。在开关机安全控制方面, 除了要做好物理安全防护以外,还要做好系统本身的一些安全措施。

4.6、限制更改GRUB引导参数

从系统安全的角度来看,如果任何人都能够修改 GRUB 引导参数,对服务器本身显然是一个极大 的威胁。为了加强对引导过程的安全控制,可以为 GRUB 菜单设置一个密码,只有提供正 确的密码才被允许修改引导参数。 
为 GRUB 菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过 PBKDF2 算法加密的字符串,安全性更好。生成密码后在/etc/grub.d/00_header 配置文件 中,添加对应的用户、密码等配置。

重启系统进入GRUB菜单时,按e键将需要输入账号密码才能修改引导参数。

[root@kgc ~]# grub2-mkpasswd-pbkdf2      #根据提示设置GRUB菜单的密码
输入口令:
Reenter password:  123456
PBKDF2 hash of your password is grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i[root@kgc ~]# cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak
[root@kgc ~]# cp /etc/grub.d/00_header /etc/grub.d/00_header.bak
[root@kgc ~]# vim /etc/grub.d/00_header
cat << EOF 
set superusers="root"       #设置密码,省略部分内容为经过加密生成的密码字符串
password_pbkdf2 root grub.pbkdf2.sha512.10000.E96097D1B1E470345D9FB62759335832B4A0F39CD4C9A57B502BD59CF1B8C393EEA37847984E242AAD4BFBB72E4BDC2196E6A7495CE7C86BF3D2498A34CAC2B7.B2EB99ED40267AE9496357B78C0DC04CE79957980A4A3FFA577B7502D70A5412D2EAD5CE4DAAC0FE068621CB29B76E44A7645EDCC7784FF20E113AF0B95E3467i
EOF
使用 grub2-mkconfig 命令生成新的 grub.cfg 配置文件。
[root@kgc ~]# grub2-mkconfig -o /boot/grub2/grub.cfg //生成新的 grub.cfg 文件一步到位
grub2-setpassword

4.7、终端登录安全控制

限制root只在安全终端登录
禁止普通用户登录 当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。

只需要简单地建立/etc/nologin 文件即可。login 程序会检查/etc/nologin 文件是否存在, 如果存在,则拒绝普通用户登录系统(root 用户不受限制)。
touch /etc/nologin  #除root以外的用户不能登录了。

虚拟控制台的选择可以通过按下Ctrl+Alt键和功能键Fn(n=1~6)来实现(tty1-tty6) tty1 图形界面  tty2-6 字符界面

注释 tty4
root 就不能登录

五、系统弱口令检测

一款密码分析工具,支持字典式的暴力破解通过对shadow文件的口令分析,可以检测密码强度

1.首先将准备好的john工具包通过xshell直接拖到/opt日录下,并进行解压

tar zxvf john-1.8.0.tar.gz  

2.安装软件编译环境

cd /opt/john-1.8.0/src

yum install gcc gcc-c++ -y

3.破解

[root@wangming john-1.8.0]# cd ./run
[root@wangming run]# ./john /etc/passwd /etc/shadow
Loaded 2 password hashes with 2 different salts (crypt, generic crypt(3) [?/64])
Press 'q' or Ctrl-C to abort, almost any other key for status
0g 0:00:00:09 64% 1/3 0g/s 331.7p/s 331.7c/s 331.7C/s Wangming74..wangming99999E
000000           (wangming)
000000           (root)
2g 0:00:00:25 100% 2/3 0.07936g/s 278.1p/s 323.8c/s 323.8C/s serena..88888888
Use the "--show" option to display all of the cracked passwords reliably
Session completed

六、网络端口扫描nmap

6.1、nmap扫描类型

-p:分别用来指定扫描的端口

-n:禁用反向 DNS 解析(以加快扫描速度)

-sS,TCP SYN 扫描(半开扫描):只向目标发出 SYN 数据包,如果收到 SYN/ACK响应包就认为目标端口正在监听,并立即断开连接;否则认为目标端口并未开放。 
tcp确定三次握手
-sT,TCP 连接扫描:这是完整的 TCP 扫描方式,用来建立一个 TCP 连接,如果 成功则认为目标端口正在监听服务,否则认为目标端口并未开放。 

-sF,TCP FIN 扫描:开放的端口会忽略这种数据包,关闭的端口会回应RST数据包。许多防火墙只对 SYN 数据包进行简单过滤,而忽略了其他形式的 TCP 攻 击包。这种类型的扫描可间接检测防火墙的健壮性。 

-sU,UDP 扫描:探测目标主机提供哪些 UDP 服务,UDP扫描的速度会比较慢。

-sP,ICMP 扫描:类似于 ping 检测,快速判断目标主机是否存活,不做其他扫描。 

-P0,跳过 ping 检测:这种方式认为所有的目标主机是存活的,当对方不响应 ICMP 请求时,使用这种方式可以避免因无法 ping 通而放弃扫描。

6.2、netstat命令

查看当前操作系统的网络连接状态、路由表、接口统计等信息,它是了解网络状态及排除网络服务故障的有效工具 。

-n          以数字的形式显示相关的主机地址、端口等信息                   
-r          显示路由表信息                                           
-a          显示主机中所有活动的网络连接信息(包括监听、非监听状态的服务端口)
-l          显示处于监听(Listening)状态的网络连接及端口信息。         
-t          查看 TCP(Transmission Control Protocol,传输控制协议)相关的信息。
-u          显示 UDP(User Datagram Protocol,用户数据报协议)协议相关的信息。 
-p          显示与网络连接相关联的进程号、进程名称信息(该选项需要 root 权限。

用法:①通常使用“-anpt”组合选项,以数字形式显示当前系统中所有的 TCP 连接信息,同时显示对应的进程信息;
②配合管道符grep过滤出特定的记录。

Proto显示连接使用的协议,
RefCnt表示连接到本套接口上的进程数量,
Types显示套接口的类型,
State显示套接口当前的状态,
Path表示连接到套接口的其它进程使用的路径名

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/366029.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无线物联网练习题

文章目录 选择填空简答大题 选择 不属于物联网感知技术的是(A) A:ZigBee B:红外传感器 C:FRID D:传感器 ZigBee是一种无线通信技术&#xff0c;虽然它常用于物联网中作为设备之间的通信手段&#xff0c;但它本身并不是一种感知技术 关于物联网于与互联网的区别的描述&#xff…

昇思第6天

函数式自动微分 神经网络的训练主要使用反向传播算法&#xff0c;模型预测值&#xff08;logits&#xff09;与正确标签&#xff08;label&#xff09;送入损失函数&#xff08;loss function&#xff09;获得loss&#xff0c;然后进行反向传播计算&#xff0c;求得梯度&#…

一站式uniapp优质源码项目模版交易平台的崛起与影响

一、引言 随着信息技术的飞速发展&#xff0c;软件源码已成为推动行业进步的重要力量。源码的获取、交易和流通&#xff0c;对于开发者、企业以及项目团队而言&#xff0c;具有极其重要的意义。为满足市场对高质量源码资源的迫切需求&#xff0c;一站式uniapp优质源码项目模版…

501、二叉搜索树中的众数

给你一个含重复值的二叉搜索树&#xff08;BST&#xff09;的根节点 root &#xff0c;找出并返回 BST 中的所有 众数&#xff08;即&#xff0c;出现频率最高的元素&#xff09;。如果树中有不止一个众数&#xff0c;可以按 任意顺序 返回。 假定 BST 满足如下定义&#xff1…

Java的Object类

概述:所有类的根类(父类),所有的类都会直接或者间接继承Object类 Object中的toString()方法&#xff1a; 如果不重写这个toString方法&#xff1a;默认形式是&#xff1a; return getClass().getName() "" Integer.toHexString(hashCode()); 这个我们可以进到Obj…

鸿蒙开发岗位就业前景分析

在信息技术飞速发展的今天&#xff0c;操作系统作为计算机的灵魂&#xff0c;一直是技术创新和市场竞争的焦点。随着华为鸿蒙操作系统的推出&#xff0c;鸿蒙开发岗位逐渐成为IT行业的热门话题。本文将深入探讨鸿蒙开发岗位的就业前景&#xff0c;揭示这一领域的就业新趋势&…

MSVCR120.DLL丢失的多种修复方法,助你快速解决dll问题

在日常生活和工作中&#xff0c;电脑已经成为我们不可或缺的工具。然而&#xff0c;在使用电脑的过程中&#xff0c;我们常常会遇到一些问题&#xff0c;其中之一就是电脑运行软件时提示找不到msvcr120.dll。如果该文件缺失或损坏&#xff0c;可能会导致依赖它的应用程序无法启…

在WSL Ubuntu中启用root用户的SSH服务

在 Ubuntu 中&#xff0c;默认情况下 root 用户是禁用 SSH 登录的&#xff0c;这是为了增加系统安全性。 一、修改配置 找到 PermitRootLogin 行&#xff1a;在文件中找到 PermitRootLogin 配置项。默认情况下&#xff0c;它通常被设置为 PermitRootLogin prohibit-password 或…

代码随想录算法训练营第55天(py)| 单调栈 | 42. 接雨水*、84.柱状图中最大的矩形

42. 接雨水* 力扣链接 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 思路1 暴力 按列来计算。每一列雨水的高度&#xff0c;取决于&#xff0c;该列 左侧最高的柱子和右侧最高的柱子中&#xff0c;…

Study--Oracle-05-Oracler体系结构

一、oracle 体系概览 Oracle数据库的体系结构通常包括以下主要组件&#xff1a; 1、实例&#xff08;Instance&#xff09;&#xff1a;运行数据库的软件环境&#xff0c;包括内存结构&#xff08;SGA&#xff09;和进程结构&#xff08;Background Processes and User Proces…

【电路笔记】-A类放大器

A类放大器 文章目录 A类放大器1、A类放大器概述2、A类放大器基本通用发射极配置3、变压器耦合配置4、总结在 放大器类型简介的文章中,我们介绍了不同类别的放大器。 在本文中,我们将更详细地介绍A类放大器。 在介绍不同的A类放大器配置前,首先的是要记住放大器类别的选择标…

从新手到高手:Scala函数式编程完全指南,Scala 数据类型(4)

1、Scala 数据类型 Scala 与 Java有着相同的数据类型&#xff0c;下表列出了 Scala 支持的数据类型&#xff1a;

【程序大侠传】异步架构应用回调数据接收接口偶发NPE

前序 在这片浩瀚的代码江湖中&#xff0c;各大门派林立&#xff0c;各自修炼独门绝技&#xff0c;江湖中的侠士们分别担任着开发、测试、产品和运维的角色&#xff0c;共同守护着这片数字化的疆域。 开发门派&#xff1a;代码剑宗 代码剑宗的弟子们精通各种编程语言&#xff…

【性能优化】Android冷启动优化

文章目录 常见现象APP的启动流程计算启动时间Displayed Timeadb dump 启动优化具体策略总结参考链接 常见现象 各种第三方工具初始化和大量业务逻辑初始化&#xff0c;影响启动时间&#xff0c;导致应用启动延迟、卡顿等现象 APP的启动流程 加载和启动应用程序&#xff1b; …

PTFE铲子聚四氟乙烯物料特氟龙铲粉料铲耐酸碱塑料药铲

四氟铲子主要适用于药厂、药企、医药行业专用&#xff0c;用于粉末状及颗粒物状样品的铲取和搅匀等。因为粉料物料对铲子材质要求无污染、本底值低&#xff0c;所以四氟材质成为选择。 其主要特点有&#xff1a; 1.外观纯白色。 2.耐高低温性&#xff1a;可使用温度-200℃&am…

docker 部署jitsi meet

1. 部署环境&#xff1a; 1.1 vm 虚拟机 安装的 centos 7 1.2 centos7安装docker 和 docker-compose 2.docker命令 官网部署文档地址&#xff1a;&#xff08;文档地址有可能失效&#xff09; Self-Hosting Guide - Docker | Jitsi Meet 2.1Download and extract the late…

基于yolo的物体识别坐标转换

一、模型简介: 1.1、小孔成像模型简图如下:不考虑实际相机中存在的场曲、畸变等问题 相对关系为: 为了表述与研究的方便,我们将像面至于小孔之前,且到小孔的距离仍然是焦距f,这样的模型与原来的小孔模型是等价的 相对关系为: 二、坐标系简介: **世界坐标系(world coo…

旋转变压器软件解码simulink仿真

1.介绍 旋转变压器是一种精密的位置、速度检测装置&#xff0c;尤其适用于高温、严寒、潮湿、高速、振动等环境恶劣、旋转编码器无法正常工作的场合。旋转变压器在使用时并不能直接提供角度或位置信息&#xff0c;需要特殊的激励信号和解调、计算措施&#xff0c;才能将旋转变压…

Element UI搭建使用过程

本章内容基于上一篇---Vue-cli搭建项目基础版 Vue-cli搭建项目----基础版-CSDN博客 官网地址:Element - The worlds most popular Vue UI framework 介绍:完全基于Vue.js ,用于快速搭建用户界面. 第一步:安装ElementUI 在终端输入 npm i element-ui -S 在main.js输入 …

Golang-map理解

golang-map语雀笔记整理 map的底层实现hmapbmap map是如何做到O(1)的复杂度的&#xff1f;map扩容策略 师兄问题回答 map的底层实现 hmap hmap的结构体核心字段有&#xff1a;buckets 桶数组地址&#xff0c; B 定位值&#xff0c;桶的数目是2^B个&#xff0c; count 当前map的…