Linux系统管理:系统安全及应用

本文详细介绍了Linux系统安全加固的理论与实验,包括账户安全控制,如清理无用账户、密码安全策略、命令历史限制;用户切换与提权,利用sudo机制和PAM认证增强权限管理;系统引导和登录控制,如GRUB密码设置和终端登录限制;以及弱口令检测与网络扫描,使用JohntheRipper和NMAP工具进行安全检测。
摘要由CSDN通过智能技术生成

目录

一、理论

1.账户安全控制

2.系统引导和登录控制

3.弱口令检测、端口扫描

4.总结安全加固的措施

二、实验

1.账户安全的基本措施

2.账户安全的基本措施

3.使用sudo机制提升权限

4.开关机安全控制

5.系统弱口令检测工具破解密码


一、理论

1.账户安全控制

(1)基本安全措施

      ① 系统账户清理

表1 账号安全的基本措施

措施命令功能
将非登录用户的Shell设为nologinusermod -s nologin 用户名 禁止登录
锁定长期不使用的账号(含解锁方式)usermod -L 用户名     锁定账户
usermod -U 用户名    锁定账户方
passwd -l 用户名   解锁账户
passwd -u 用户名 解锁账户
删除无用的账号userdel 用户名删除用户
chattr锁定重要文件(如passwd、shadow、fstab等)lsattr /etc/passwd /etc/shadow查看文件的状态
chattr +i /etc/passwd /etc/shadow锁定文件
chattr -i /etc/passwd /etc/shadow    解锁文件

      ② 密码安全控制

对于新建用户,可以进入/etc/login.defs进行修改属性,设置密码规则,使得在下次创建用户时密码信息生效,设置密码有效期,要求用户下次登录时修改密码:

表2 密码安全控制

措施命令功能
适用于新建用户vim /etc/login.defs修改配置文件
适用于已有用户chage -M 30 用户名   修改密码有效期
强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0)chage -d 0 用户名设置下次登录强制修改密码

      ③ 命令历史、自动注销

表3 命令历史记录限制

措施命令功能
临时修改当前用户的历史命令条数export HISTSIZE=200临时修改历史命令条数为200条
进入配置文件永久修改历史命令条数

vim /etc/profile  

HISTSIZE=300 

source /etc/profile 

进入配置文件;

将全局历史命令条数由1000改为300;

刷新配置文件,使文件立即生效

退出当前终端将命令清除vim .bash_logout
echo " " > ~/.bash_history
source .bash_logout
每次登录都会清空历史记录
开机后当前终端将命令清除vim .bashrc
echo " " > ~/.bash_history
 
每次退出都会清空历史记录
设置登录超时时间

vim /etc/profile 

TMOUT=600

source /etc/profile    

进入配置文件;

设置全局自动注销时间,声明600s没有操作就登出;

更新配置文件

(2)用户切换与提权

       ①  切换用户

         【1】切换用户为su命令,可以切换用户身份,并且以指定用户的身份执行命令

表4 su命令

措施命令功能
非登录式切换su UserName不会读取目标用户的配置文件,不改变当前工作目录,即不完全切换
登录式切换su - UserName会读取目标用户的配置文件,切换至自已的家目录,即完全切换

            【2】密码验证

                     超级管理员切换普通用户,不需要密码;
                     普通用户切换普通用户,需要密码;
                     普通用户切换超级管理员,需要密码。

           【3】限制使用su命令的用户

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

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

                    wheel 组是一个特殊的组,它通常被用于控制系统管理员(root)权限的访问。
具体来说,wheel 组可以被用来授权一些非特权用户访问一些只有管理员才能访问的系统命令或文件,这些用户可以使用 sudo 命令以 root 用户身份执行这些命令或访问这些文件。

表5 许极个别用户使用su命令进行切换

措施命令功能
限制使用su命令的用户vim /etc/pam.d/su将允许使用su命令的用户加入wheel组。
启用pam_wheel认证模块。则只有wheel组内的用户可以使用su命令切换用户
查看su操作记录tail -f /var/log/secure查看安全日志

       ②  提升执行权限

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

表6 sudo命令授权

措施命令功能
配置文件使用户可以通过sudo命令使用ifconfig

vim /etc/sudoers

#%wheel ALL=(ALL)       ALL

 %wheel        ALL=(ALL)       NOPASSWD: ALL

配置文件

99行和102行取消wheel组

用户名  ALL=(root)  /sbin/ifconfig 配置文件
添加用户到wheel组

 su - 用户名

gpasswd -a dn wheel 

切换用户

添加用户到wheel组

新增虚拟网卡sudo ifconfig ens33:1 192.168.37.150/24 直接生效

(3)PAM安全认证

      ①  PAM作用及原理

PAM (Pluggable Authentication Modules) 是一种 Linux 系统下的身份认证框架,
它提供了一种标准的身份认证接口,允许系统管理员定制化地配置各种认证方式和方法。

PAM 具有高度的灵活性和可扩展性,允许管理员在登录过程中通过调用各种不同的认证模块,
实现不同的认证方式,如本地密码、Kerberos、LDAP、双因素认证等。

      ②  PAM认证原理

PAM认证一般遵循的顺序: Service (服务) 、 PAM (配置文件)、pam_*.so

      ③  PAM认证的构成

           查看某个程序是否支持PAM认证,可以用ls命令进行查看/etc/pam.d/中的配置文件。
PAM的配置文件中的每一行都是一个独立的认证过程,
它们按从上往下的顺序依次由PAM模块调用。

      ④  PAM认证类型

            PAM 认证模块分为四个不同的类型:

表7 PAM认证模块

模块功能
认证模块认证模块
认证模块用于控制用户对系统资源的访问权限,例如文件权限、进程权限等
账户管理模块用于管理用户账户信息,例如密码过期策略、账户锁定策略等
用于管理用户账户信息,例如密码过期策略、账户锁定策略等用于管理用户会话,例如记录用户会话信息、强制注销用户会话等

      ⑤  PAM控制类型

      

2.系统引导和登录控制

(1)开关机安全控制

      ①  调整BIOS引导

           将第一引导设备设为当前系统所在硬盘,禁止从其他设备(光盘、U盘、网络)引导系统
将安全级别设为setup,并设置管理员密码

      ②  限制更改GRUB引导参数

           按e键可以查看并修改GRUB引导参数,这对服务器是一个极大的威胁。
可以为GRUB菜单设置一个密码,只有提供正确的密码才被允许修改引导参数。

表8 限制更改GRUB引导参数

步骤命令或操作
按e键查看未设置之前的状态重启之后按e,查看配置,不建议修改
设置GRUB密码并重启

 grub2-setpassword 

Enter password: 
Confirm password: 

在重启界面按e,输入账号密码才可以登录
 
reboot

(2)终端及登录控制

表9 限制更改GRUB引导参数

措施命令功能
减少登录的tty终端个数

vim /etc/securetty

#tty2

#tty3

更改安全终端配置文件;

注释,禁止root在tty2和tty3终端登录

禁止普通用户登录

vim /etc/nologin

touch /etc/nologin

rm -rf /etc/nologin

建立配置文件;

禁止普通用户登录,只对图形化界面生效;

取消上述登录限制,删除后即可恢复

3.弱口令检测、端口扫描

(1)弱口令检测

      ①  下载并安装John the Ripper

表10 安装John the Ripper

措施命令功能
解压tar -zxvf john-1.8.0.tar.gz解压工具包
编译安装yum -y install gcc gcc-c++ make 安装软件编译工具 

      ②   检测弱口令账号

表11 John the Ripper破解过程

措施命令功能
编译安装

d /opt/john-1.8.0/src

make clean linux-x86-64

切换到src子目录,进行编译安装
破解文件cp /etc/shadow /opt/shadow.txt 准备待破解的密码文件
破解

cd /opt/john-1.8.0/run 

./john /opt/shadow.txt

切换到run子目录,执行暴力破解
查看./john --show /opt/shadow.txt查看已破解出的账户列表

(2)网络扫描

NMAP是一款强大的网络扫描、安全检测工具,官方网站:Nmap: the Network Mapper - Free Security Scanner,CentOS 7.3光盘中安装包 nmap-6.40-7.el7.x86_64.rpm。

      ①  安装NMAP软件包

表12 安装NMAP软件包

措施命令功能
安装nmaprpm -q nmap检测是否安装
yum -y install nmap安装
nmap -p 端口 网段nmap -p 80 192.168.37.0/24指定扫描的端口
nmap -n -sPnmap -n -sP 192.168.37.0/24查看网段有哪些存活主机
查看本机开放的端口nmap -sT 127.0.0.1查看本机开放的TCP端口
nmap -sU 127.0.0.1查看本机开放的UDP端口

      ②   扫描语法及类型

表13 nmap常用选项

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

4.总结安全加固的措施

表14 安全加固的措施

序号措施
1将非登录用户shell设置为nologin
2将非登录用户shell设置为nologin
3删除无用账号
4chattr锁定配置文件(重要文件passwd、shadow、fstab等加 i 权限,不让删除)
5设置密码复杂性规则(长度、特殊字符、失效时间等)密码策略
6修改history,记录历史命令,尽量缩短记录历史命令的条数
7禁止su root,切换超级管理员
8设置sudo权限,禁用不安全命令
9给GRUB设置密码
10只允许BIOS从硬盘启动,关闭除了硬盘启动外的(光驱、udisk 、网络)
11给BIOS设置密码
12限制root只在安全终端登录
13禁止普通用户登录
14改掉大家都知道的服务端口
15做好日志权限管理
16内核参数调整

二、实验

1.账户安全的基本措施

(1)账号安全的基本措施

      ① chattr锁定重要文件

          lsattr查看文件

          锁定文件并查看

          解锁文件并查看

(2)密码安全控制

      ① 适用于新建用户

      ② 适用于已有用户,修改密码有效期30天

      ③ 强制在下次登录成功时修改密码(/etc/shadow第三个字段被修改为0)

(3) 命令历史记录限制

       ① 进入配置文件永久修改当前用户的历史命令条数

            进入文件

临时修改历史命令条数为2条

立即生效

 进行3次ls命令

结果显示2条

② 开机设置清空历史命令

③ 关机设置情况历史命令

 ④ 设置闲置超时

时间为60秒

立即生效

超时自动登出

2.账户安全的基本措施

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

 进入编辑 vim /etc/pam.d/su

取消注释,启用

添加授权用户并查询

新增用户

尝试切换为root ,拒绝权限

登出

查看su命令切换用户的操作


3.使用sudo机制提升权限


要求:控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除

(1)配置文件使用户可以通过sudo命令使用ifconfig

目前wheel组生效

注释取消wheel

新增虚拟网卡失败

新增sudo配置,允许用户在主机执行新增虚拟网卡命令

切换用户

新增虚拟网卡

查询网卡

(2)使用关键字来进行设置别名,批量控制用户

控制用户进行sudo操作时无法使用重启(reboot)、关机(poweroff)、切换init和无法删除

编辑

底行模式对用户进行限制操作

切换用户测试重启

4.开关机安全控制

(1)grub加密方法(为GRUB菜单设置密码)

设置GRUB密码并重启

重启

在重启界面按e,输入账号密码才可以登录

(2)终端登录安全控制,限制root只在安全终端登录

编辑进入安全终端配置:

查看,tty1~ 6是文本型控制台,tty7 是X Window图形显示管理器。

可以通过CtrI+Alt+F1 (F1-F7键) 切换到对应的登录控制台。

禁止root在tty2和tty3终端登录 

更改安全终端配置文件,把tty2和tty3注释掉

禁止普通用户登录

5.系统弱口令检测工具破解密码

(1)使用john the Ripper 密码破解工具

切换opt目录,rz -E这个命令会在shell命令窗口弹出一个文件输入窗口,找到传输的压缩包

查看

解压工具包

安装软件编译工具

更新完毕

另一种安装方法:

本地yum源安装

查看

切换到src子目录,进行编译安装

准备待破解的密码文件

查看

切换到run子目录,执行暴力破解

执行破解

查看已破解出的账户列表

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值