第十章、系统安全及运用

第十章、系统安全及运用

一、账号安全控制

1.1 系统账号清理

1.1.1更改登录shell环境

将非登录用户的shell设为/sbin/nologin——usermod -s/sbin/nologin

1.1.2 锁定长期不使用的账号

①usermod -L +用户名

②passwd -I +用户名

③passwd -S +用户名

1.1.3 删除无用账号

①userdel [-r]

②/etc/shadow——更改参数,如账号注销时间

1.1.4 锁定账号文件——passwd、shadow

①chattr +i /etc/passwd/ 或者/etc/shadow/——锁定文件并查询状态

②lsattr /etc/passwd 或者/etc/shadow

③chattr -i /etc/passwd 或者/etc/shadow——解锁文件

1.1.5 示例
[root@xiaolei ~]# mkdir AA
[root@xiaolei ~]# ls
AA  anaconda-ks.cfg
[root@xiaolei ~]# cd AA
[root@xiaolei AA]# touch 1.txr
[root@xiaolei AA]# echo 'hello word' >> 1.txt
[root@xiaolei AA]# cat 1.txt
hello word
[root@xiaolei AA]# chattr +i 1.txt                     ###锁定文件
[root@xiaolei AA]# ll 1.txt                            ###ll看不出区别
-rw-r--r--. 1 root root 11 Aug 12 13:28 1.txt
[root@xiaolei AA]# lsattr 1.txt
----i----------- 1.txt                                 ###已锁定
[root@xiaolei AA]# vi 1.txt
[root@xiaolei AA]# chattr -i 1.txt                     ###解锁文件
[root@xiaolei AA]# lsattr 1.txt
---------------- 1.txt                                 ###已解锁

在这里插入图片描述

1.2 密码安全控制

1.2.1 设置密码有效期
1.2.2 要求用户下次登录时修改密码

①修改密码配置文件,适用于新建用户

[root@xiaolei ~]# vi /etc/login.defs
……………
# Password aging controls:
#
#       PASS_MAX_DAYS   Maximum number of days a password may be used. ###密码最长使用天
#       PASS_MIN_DAYS   Minimum number of days allowed between password changes.
#       PASS_MIN_LEN    Minimum acceptable password length.
#       PASS_WARN_AGE   Number of days warning given before a password expires.

②chage -M 30 dn——适用于已有用户 ###修改密码有效期

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

示例

[root@xiaolei ~]# chage -M 30 dn xiaowang
Usage: chage [options] LOGIN

Options:
  -d, --lastday LAST_DAY        set date of last password change to LAST_DAY
  -E, --expiredate EXPIRE_DATE  set account expiration date to EXPIRE_DATE
  -h, --help                    display this help message and exit
  -I, --inactive INACTIVE       set password inactive after expiration
                                to INACTIVE
  -l, --list                    show account aging information
  -m, --mindays MIN_DAYS        set minimum number of days before password
                                change to MIN_DAYS
  -M, --maxdays MAX_DAYS        set maximum number of days before password
                                change to MAX_DAYS
  -R, --root CHROOT_DIR         directory to chroot into
  -W, --warndays WARN_DAYS      set expiration warning days to WARN_DAYS

1.3 命令历史限制

1.3.1 减少记录的命令条数
[root@xiaolei ~]# vi /etc/profile
export HISTSTZE=200
[root@xiaolei ~]# source /etc/profile
1.3.2 登录时自动清空命令历史
[root@xiaolei ~]# vi ~/.bash_history
echo "" >~/.bash_history

1.4 终端自动注销

1.4.1 闲置600秒后自动注销
[root@xiaolei ~]# vi /etc/profile
…………
export TMOUT=600
[root@xiaolei ~]# source /etc/profile             ###加载生效

1.5 使用su命令切换用户

1.5.1 用途及用法

①用途:Substitute User——切换用户

②格式:su +目标用户

1.5.2 密码验证

①root切换任意用户,不用验证密码

②普通用户切换其他用户,验证目标用户的密码

[root@xiaolei ~]# su - xiaowang      ###带‘-’表示将使用目标用户的登录shell环境
Last login: Mon Aug 12 18:59:30 CST 2024 on pts/0
[xiaowang@xiaolei ~]$ whoami
xiaowang
1.5.3限制使用su命令的用户

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

②启用pam_wheel认证模块

[root@xiaolei ~]# gpasswd -a xy03 wheel             ###将xy03用户加入到wheel组中
[root@xiaolei ~]# vi /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so
~
~
~
~
~
~
~
~
~
"/etc/pam.d/su" 14L, 540C
1.5.4 补充:PAM_wheel认证模块

①PAM系统相关的认证权限管理

②Linux中较为安全的安全管理程序

1.5.5 查看su操作记录

安全日志文件——/var/log/secure

1.6 Linux中的PAM安全认证

1.6.1 su命令的安全隐患

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

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

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

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

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

1.6.3 PAM认证原理

①一般遵循的顺序——Service(服务)→PAM(配置文件)→pam_*.so

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

③用户访问服务器时,服务器的某一个服务程序把用户的请求发送到PAM模块进行认证

④不同的应用程序所对应的PAM槽是不同的

1.6.4 PAM认证的构成

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

示例:

[root@xiaolei ~]# ls /etc/pam.d/ | grep su
su
sudo
sudo-i
su-l

②查看su的PAM配置文件——cat /etc/pam.d/su

​ A. 每一行都是一个独立的认证过程
​ B. 每一行可以区分为三个字段
​ a. 认证类型
​ b. 控制类型
​ c. PAM模块及其参数

示例:

[root@xiaolei ~]# cat /etc/pam.d/su
#%PAM-1.0
auth            sufficient      pam_rootok.so
# Uncomment the following line to implicitly trust users in the "wheel" group.
#auth           sufficient      pam_wheel.so trust use_uid
# Uncomment the following line to require a user to be in the "wheel" group.
#auth           required        pam_wheel.so use_uid
auth            substack        system-auth
auth            include         postlogin
account         sufficient      pam_succeed_if.so uid = 0 use_uid quiet
account         include         system-auth
password        include         system-auth
session         include         system-auth
session         include         postlogin
session         optional        pam_xauth.so
1.6.5PAM安全认证流程

控制类型也称做Control Flags,用于PAM验证类型的返回结果

A.required验证失败时仍然继续,但返回Fail
B.requisite验证失败则立即结束整个验证过程,返回Fail
C.sufficient验证成功则立即返回,不再继续,否则忽略结果并继续
D.optional不用于验证,只显示信息(通常用于session类型)

在这里插入图片描述

1.7 使用sudo机制提升权限

1.7.1 su命令的缺点
1.7.2 sudo命令的用途及用法

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

②用法:sudo+授权命令

1.7.3 配置sudo授权

①visudo或者vi /etc/sudoers(此文件的默认权限为 440,保存退出时必须执行“:wq!”命令来强制操作)

[root@xiaolei ~]# visudo
visudo: /etc/sudoers.tmp unchanged

②语法格式

A.用户 主机名=命令程序列表

B.用户 主机名=(用户)命令程序列表

C.用户:直接授权指定的用户名,或采用“%组名”的形式(授权一个组的所有用户——)

D.主机名:使用此规则的主机名。没配置过主机名时可用localhost,有配过主机名则用实际的主机名,ALL则代表所有主机

E.(用户):用户能够以何种身份来执行命令。此项可省略,缺省时以root用户的身份来运行命令

F.命令程序列表:允许授权的用户通过sudo方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号进行分隔。ALL则代表系统中的所有命令

示例:

Tom ALL=/sbin/ifconfig     
Jerry localhost=/sbin/*,!/sbin/reboot,!/sbin/poweroff   ###通配符“*”表示所有,取反符号“!”表示排除
%wheeI ALL=NOPASSWD: ALL                  ###表示wheel组成员无需验证密码即可使用sudo执行任何命令
Mike ALL=(root)NOPASSWD: /bin/kill, /usr/bin/killal
1.7.4 查看sudo操作记录

①需启用Defaults logfile 配置

②默认日志文件:/var/log/sudo

1.7.5 查询授权的sudo操作
[root@xiaolei ~]# sudo -l
Matching Defaults entries for root on xiaolei:
    !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
    env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
    env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
    env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
    env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
    env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY",
    secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin

User root may run the following commands on xiaolei:
    (ALL) ALL

1.8、开关机安全控制

1.8.1 调整BIOS引导设置

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

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

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

1.8.2 GRUB限制

①使用grub2-mkpasswd-pbkdf2生成密钥

②修改/etc/grub.d/00 header文件中,添加密码记录

③生成新的grub.cfg配置文件

1.8.3 限制root只在安全终端登录

安全终端配置:/etc/securetty

[root@xiaolei ~]# vi /etc/securetty
……
#tty5
#tty6                      ###禁止root用户从终端tty5、tty6登录
1.8.4 禁止普通用户登录

①建立/etc/nologin文件

②删除nologin文件或重启后即恢复正常

[root@xiaolei ~]# touch /etc/nologin    ###禁止普通用户登录
[root@xiaolei ~]# rm-rf /etc/nologin    ###取消上述登录限制

2、系统引导和登录控制

三、弱口令检测

1、系统弱口令检测

1.1joth the Ripper,简称为 JR

1.1.1 一款密码分析工具,支持字典式的暴力破解

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

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

四、端口扫描

1、网络端口扫描

1.1 NMAP——检测暴露端口

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

1.1.2 官方网站:http://nmap.org

1.1.3 CentOSO 7.3光盘中安装包 nmap-6.40-7.el7.x86 64.rpm

1.2 NMAP的扫描

1.2.1 基本格式:

nmap +[扫描类型]+[选项]+[扫描目标]

1.2.2 常用的扫描类型

①-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检测,快速判断目标主机是否存活,不做其他扫描。

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

1.2.3 分别查看本机开放的TCP端口、UDP端口

①nmap -sT 127.0.0.1——查看本机开放的TCP端口

[root@xiaolei ~]# nmap -sT 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2024-08-12 18:12 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.00053s latency).
Not shown: 998 closed ports
PORT   STATE SERVICE
22/tcp open  ssh
25/tcp open  smtp

Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds

②nmap -sU 127.0.0.1——查看本机开放的UDP端口

[root@xiaolei ~]# nmap -sU 127.0.0.1

Starting Nmap 6.40 ( http://nmap.org ) at 2024-08-12 18:14 CST
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000020s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed

Nmap done: 1 IP address (1 host up) scanned in 2.00 seconds
1.2.4检测192.168.4.0 /24 网段有哪些主机提供FTP服务

nmap -p 21 192.168.4.0 /24

1.2.5检测192.168.4.0 /24 网段有哪些存活主机

nmap -n -sP 192.168.4.0 /24

五、补充:

1、路由器之间发送数据的报文格式

源MAC 目标MAC

源IP 目标IP

校验位

TCP协议——TCP协议头部信息

上层数据

三握四挥

ACK

SYN

FIN

2、云计算——运维角度

运维思想:稳定性、健壮性(安全)、解决故障、节省净利润(合理、更合理)

CPU基本职能之一——管控资源

20s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed

Nmap done: 1 IP address (1 host up) scanned in 2.00 seconds


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

nmap -p 21 192.168.4.0 /24 

#### 1.2.5检测192.168.4.0 /24 网段有哪些存活主机

nmap -n -sP 192.168.4.0 /24
  • 12
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值