当前位置: 首页 > news >正文

系统安全及应用

目录

一:账号安全控制

1.基本安全措施

(1)系统账号清理

(2)密码安全控制

(3)命令历史,自动注销

2.用户切换与提权

(1)su命令的用法

(2)PAM认证

3.sudo命令 --提升执行权限

(1)在配置文件/etc/sudoers中添加授权

(2)通过sudo执行特权命令

二:系统引导和登录控制

1.开关机安全控制

(1)调整BIOS引导设置

(2)限制更改GRUB引导参数

2.终端及登录控制

(1)禁止root用户登录

(2)禁止普通用户登录

三:弱口令检测,端口扫描

1.弱口令检测--John the Ripper

(1)下载并安装John the Ripper

(2)检测弱口令账号

2.网络扫描-NMAP

(1)安装NMAP软件包

(2)扫描语法及类型

(3)扫描操作示例一

(4)扫描示例二

(5)扫描示例三

(6)扫描示例四


一:账号安全控制

用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在Linux系统中,提供了多种机制来确保用户账号的正当、安全使用。

1.基本安全措施

(1)系统账号清理

在Linux系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户root之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。

常见的非登录用户账号包括 bin、daemon、adm、lp、mail 等。为了确保系统安全,这些用户账号的登录 Shel1 通常是/sbin/nologin,表示禁止终端登录,应确保不被人为改动,如下所示、

各种非登录用户账号中,还有相当一部分是很少用到的,如game5。这些用户账号可以视为冗余账号,
直接删除即可。除此之外,还有一些随应用程序安装的用户账号,若卸载程序以后未能自动删除,则需要 管理员手动进行清理。
对于Linux服务器中长期不用的用户账号,若无法确定是否应该刷除,可以智时将其锁定。例如,
若要锁定、解锁名为zhangsan的用户账号,可以执行以下操作(passad、usermod命令都可用来锁定、 解锁账号)
锁定账号:
解锁账号:
如果服务器中的用户账号己经固定,不再进行更改,还可以采取领定账号配置文件的方法。使用
chattr命令,分别结合“+i ” “-i”选项来锁定、解锁文件,使用lsattr命令可以查看文件锁定情况

锁定文件:

解锁文件:

在账号文件被锁定的l情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更改用户的密
码、登录 Shell、宿目录等属性信息。

(2)密码安全控制
在不安全的网络环境中,为了降低密码被猪出或被暴力破解的风险,用户应养成定期更改密码的习惯,
避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户 登录时将被要求重新设置密码,否则将拒绝登录。
执行以下操作可将密码的有效期设为30天(chage命令用于设置密码时限)

针对于已存在用户

针对于新用户

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

(3)命令历史,自动注销
shell环境的命令历史机制为用户提供了极大的便利,但另一方面也给用户带来了潜在的风险。只要 获得用户的命令历史文件,该用户的命令操作过程将会一览无余,如果曾经在命令行输入明文的密码,则 无意之中服务器的安全壁垒又多了一个缺口。
Bash终编环境中,历史命令的记录条数由变量HISTSIZE控制,默认为1000条。通过修改 /etc/profle文件中 HISTSIZE变量值,可以影响系统中的所有用户。
查看历史命令
示例:可以设置最多只记录 200条历史命令。
除此之外,还可以修改用户宿主目录中的~/,bash-logout文件,添加清空历史命令的操作语句。 这样,当用户退出己登录 Bash环境以后,所记录的历史命令将自动清空。

bash终增环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终
端,这样可以有效避免当管理员不在时其他入员对服务器的误操作风险。闲置超时由变量TMOUT来控制。 默认单位为秒(s)。

2.用户切换与提权

大多数Linux服务器并不建议用户直接以root用户进行登录。一方面可以大大减少因误操作而导 致的破坏,另一方面也降低了特权密码在不安全的网络中被泄露的风险。整于这些原因,需要为普通用户
提供一种身份切换或权限提升机制,以便在必要的时候执行管理任务。
Linux系统为我们提供了su、sudo两种命令,其中su命令主要用来切换用户,而sudo命令用
 来提升执行权限,下面分别进行介绍。
(1)su命令的用法
使用su命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。当然,切换时需要对目
标用户的密码进行验证(从root用户切换为其他用户时除外)
示例:使用 su 切换用户zhangsan

默认情况下,任何用户都允许使用su命令,从而有机会反复尝试其他用户(如root)的登录密码,
这样带来了安全风险。
所以系统默认禁止普通用户使用 su 登录root,但可以借助于pamwheel认证模块,只允许极个别
用户使用su命令进行切换
实现过程如下:将授权使用su命令的用户添加到wheel组,修改 /etc/pam.d/su 认证配置以启用 pam_wheel 认证。

(2)PAM认证
PAM(PluggableAuthenticationrodules),是Linux系统可插拔认证模块,是一种高效而且灵
活便利的用户级别的认证方式,它也是当前Linux服务器普遍使用的认证方
PAM提供了对所有服务进行认证的中央机制,适用于login,远程登录(telnet,rlogin,fsh,ftp),
su等应用程序中。系统管理员通过PMM配置文件来制定不同应用程序的不同认证策略。

PAM认证原理如下:

  • 认证一般遵循的顺序:5ervice(服务)-PA(配置文件)+pam_“so
  • 认证首先要确定哪一项服务,然后加载相应的PA的配置文件(位于/etc/pam.d下),
    后调用认证文件(位于/lib/security下)进行安全认证;
  • 户访问服务器的时候,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证。不
    同的应用程序所对应的 PAM 模块也是不同的
如果想查看某个程序是否支持PAN认证,可以用15命令进行查看,例如执行以下命令可以查看su
是否支持 PAM模块认证。

su 的 PAM 配置文件的具体内容如下所示。

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

每一行可以区分为三个字段:
  • 认证类型
  • 控制类行
  • PAM模块及参数
认证管理(authentication management):接受用户名和密码, 进而对该用户的密码进行认证;
户管理(accountmanagenent);检查帐户是否被允许登录系统,帐号是否已经过期,帐号的登
录是否有时间段的限制等;
密码管理(passwordmanagement);主要是用来修改用户的密码:
会话管理(session management):主要是提供对会话的管理和记账。
制类型也可以称做Contro1F1ags,用于PAN验证类型的返回结果。
  • required 验证失败时仍然继续,但返回 Fail
  • sufficient 验证成功则立即返回,不再继续,否则忽略结果并继续
  • optional不用于验证,只是显示信息(通常用于 session 类型)

3.sudo命令 --提升执行权限

(1)在配置文件/etc/sudoers中添加授权
sudo机制的配置文件为/etc/sudoers,文件的默认权限为440,需使用专门的visudo工具进行 编辑。虽然也可以用vi进行编辑,但保存时必须执行“w”命令来强制操作,否则系统将提示为只读 文件而拒绝保存。
配置文件/etc/sudoers中,授权记录的基本配置格式如下所示

user   MACHINE=COMMANDS

授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的 具体含义如下。
  • 用户(user):直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户
  • 主机(MAHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份
    sudoers文件,一般设为 localhost 或者实际的主机名即可。
  • 命令(COMMANDS):允许授权的用户通过sudo方式执行的特叔命令,需填写命令程序的完整
    路径,多个命令之间以逗号“,”进行分隔。
如,若要授权用户zhangsan可以执行/sbin/目录下除ifconfig route 以外的其他所有命令程序,可以执行以下操作。
(2)通过sudo执行特权命令
对于已获得授权的用户,通过sudo方式执行特权命令时,只需要将正常的命令行作为sudo命令的
参数即可。由于特权命令程序通常位于/sbin、/usr/sbin等目录下,普通用户执行时应使用绝对路径
以下操作验证了使用 sudo 方式执行命令的过程。

若要查看用户自己获得哪线sudo授权,可以执行“sudo-1”命令,未授权的用户将会得到“maynot
runsudo”的提示,己授权的用户则可以看到自己的sudo配置。

二:系统引导和登录控制

1.开关机安全控制

对于服务器主机,其物理环境的安全防护是非常重要的,不仅要保持机箱完好、机柜锁闭,还要严格
控制机房的人员进出、硬件设备的现场接触等过程。在开关机安全控制方面,除了要做好物理安全防护以 外,还要做好系统本身的一些安全措施。
(1)调整BIOS引导设置
  • 第一优先引导设备(F1rst BootDev1ce)设为当前系统所在磁盘
  • 止从其他设备(如光盘、U盘、网络等)引导系统,对应的项设为“Disabled“
  • BIOS的安全级别改为“setup”,并设置好管理密码,以防止未授权的修改
(2)限制更改GRUB引导参数
在之前的课程中介绍过通过修改GRUB引导参数,对一些系统问题进行修复。从系统安全的角度来看, 如果任何人都能够修改6UB引导参数,对服务器本身显然是一个极大的威胁。为了加强对引导过程的安 全控制,可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数
为GRUB菜单设置的密码建议采用“grub2-mkpasswd-pbkdf2”命令生成,表现为经过PKDF2算
法加密的字符串,安全性更好。生成密码后在/etc/grub,d/oeheader配置文件中,添加对应的用户、
密码等配置,具体添加内容如下所示。

根据提示指定密码:

使用grub2-mkconfig命令生成新的grub,cfg配置文件

通过上述配置,重新开机进入GRU8菜单时,按E键将无法修改引导参数。若要获得
编辑权限,必须根据提示输入正确的6RUB密码,如图所示。

2.终端及登录控制

在Linux服务器中,默认开启了六个tty终端,允许任何用户进行本地登录。关于本地登录的安
全控制,可以从以下几个方面着手
(1)禁止root用户登录
在Linux系统中,1og1n程序会读取/etc/securetty文件,以决定允许root用户从哪些络编(安 全终端》登录系统。若要禁止root用户从指定的终确登录,只需从该文件中删除或者注释掉对应的行即 可
例如:若要禁止root用户从tty5、tty6登录,可以修改/etc/securetty文件,将tty5、tty6 行注释掉

(2)禁止普通用户登录
当服务器正在进行备份或调试等维护工作时,可能不希望再有新的用户登录系统。这时候,只需要简
单地建立/etc/nologtn文件即可。login程序公检查/etc/nologin文件是否存在,如果存在,则拒
绝普通用户登录系统(root 用户不受限制)。

三:弱口令检测,端口扫描

1.弱口令检测--John the Ripper

Johnthe Ripper是一款开源的密码破解工具,能够在已知带文的情况下快速分析出明文的密码字 段,文持DE5、MD5等多种加密算法,而且允许使用密码字典(包含各种密码组合的列表文件)来进行暴力破解。通过使用]ohntheRipper,可以检测Linux/UNIx系统用户账号的密码强度
(1)下载并安装John the Ripper
Johnthe Ripper的官方网站是http://aw.openwall,com/john/,通过该网站可以获取稳定版
源码包,如 john-1.8,0,tar,gz。

切换到src子目录并执行“makecleanlinux~x86-64”命令,即可执行编译过程,若单独执行make
命令,将列出可用的编译操作、文持的系统类型。编译完成以后,run子目录下会生成一个名为john的
可执行程序。

确认可执行程序

(2)检测弱口令账号
在安装有]ohntheRipper的服务器中,可以直接对/etc/shadow文件进行检测。对于其他Linux
服务器,可以对shadow文件进行复制,并传递给john程序进行检测,只需执行run目录下的john程序,将待检测的shadow文件作为命令参数行:
准备待破解的密码文件:
执行暴力破解:
默认情况下,john将针对常见的弱口令设置特点,尝试破 解已识别的所有密文字串,如果检测的时间太长,可以按Ctrl+C组合键强行终止。
破解出的密码信息 自动保存到john.pot文件中,可以结合“--show”选项进行查看。

2.网络扫描-NMAP

NMAP是一个强大的端口扫描类安全评测工具,官方站点是http://nmap.org/。NMAP 被设计为检测众多主机数量的巨大网络,支持ping 扫描、多端口检测、OS识别等多种技术。使用NMAP 定期扫描内部网络,可以找出网络中不可控的应用服务,及时关闭不安全的服务,减小安全风险。

(1)安装NMAP软件包

在 Linux系统中,既可以使用光盘自带的nmap-6.40-7.e17.x86_64.rpm 安装包,也可以使用从NMAP 官方网站下载的最新版源码包,这里以YM方式安装的nmap 软件包为例。

(2)扫描语法及类型

NMAP 的扫描程序位于/usr/bin/nmap 目录下,使用时基本命令格式如下所示

nmap[扫描类型][选项]<扫描目标...>

其中,扫描目标可以是主机名、IP地址或网络地址等,多个目标以空格分隔;常用的选项有“-p”“-n”分别用来指定扫描的端口、禁用反向DNS解析(以加快扫描速度);扫描类型决定着检测的方式,也直接影响扫描的结果。

比较常用的几种扫描类型如下。

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

针对本机进行扫描,检查开放了哪些TCP端口,UDP端口

扫描常用的TCP端口

扫描常用的UDP端口

(4)扫描示例二

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

(5)扫描示例三

快速检测192.168.4.0/24网段中有哪些主机存活(能ping通)

(6)扫描示例四

检测ip位于192.168.4.100~200的主机是否开放文件共享服务

相关文章:

  • 一个关于相对速度的假想的故事-3
  • Linux 入门十一:Linux 网络编程
  • PyCharm 在 Linux 上的完整安装与使用指南
  • arxml文件中的schema是什么?有什么作用?
  • Kafka 在小流量和大流量场景下的顺序消费问题
  • typedef MVS_API CLISTDEF0IDX(ViewScore, IIndex) ViewScoreArr;
  • Vue3 源码解析(六):响应式原理与 reactive
  • DePIN驱动的分布式AI资源网络
  • Python 爬虫如何获取淘宝商品的 SKU 详细信息
  • 云服务器怎么选择防御最合适
  • 深度学习中的归一化技术:从原理到实战全解析
  • 使用 Logstash 迁移 MongoDB 数据到 Easysearch
  • C语言中联合体(Union)和结构体(Struct)的嵌套用法
  • Unity打开项目时目标平台被改变
  • 新能源汽车充电桩运营模式的发展与优化路径探析
  • 【Hive入门】Hive概述:大数据时代的数据仓库桥梁
  • 【KWDB 创作者计划】_本地化部署与使用KWDB 深度实践
  • 【TeamFlow】4.1 Git使用指南
  • spark—SQL3
  • 【网工第6版】第5章 网络互联②
  • 湖南平江发生一起意外翻船事件,6人不幸溺亡
  • 官方披露:定西民政局原局长将收受烟酒高价“倒卖”给单位,用于违规接待
  • 张九思任电子科大副教授,曾以学生身份入选爱思唯尔全球前2%顶尖科学家
  • 美国防部宣布整合驻叙美军部队,将减少至不足千人
  • 张小泉:控股股东所持18%股份将被司法拍卖,不会导致控制权变更
  • 潮州官方回应女婴事件:尚未发现虐待,各种原因导致营养不良