系统安全及应用
目录
一、账号安全控制
1.基本安全措施
(1)系统账号清理
(2)密码安全控制
(3)历史命令,自动注销
2.用户提权和切换命令
2.1 su命令用法
2.2 sudo命令提权
2.3通过是sudo执行特权命令
二、系统引导和登录控制
1. 开关机安全控制
2. 终端及登录控制
三、弱口令检测与端口扫描
1. 弱口令检测(John the Ripper)
2. 端口扫描(NMAP)
总结
前言:
在数字经济蓬勃发展、万物互联深度推进的时代背景下,系统安全与应用如同数字世界的 “双螺旋”,共同构筑起信息时代的稳定基石。一方面,网络攻击手段日新月异,勒索病毒、数据泄露、漏洞利用等安全威胁如影随形,系统安全成为抵御风险、守护数据资产与用户信任的关键防线;另一方面,人工智能、云计算、区块链等新兴技术的广泛应用,不仅重塑了产业格局,更对系统的可靠性、兼容性与扩展性提出了更高要求。系统安全与应用不再是孤立存在的个体,而是相互交织、彼此赋能的有机整体 —— 安全为应用保驾护航,确保创新实践行稳致远;应用为安全注入活力,驱动防护技术迭代升级。深入探索系统安全与应用的协同发展路径,既是应对当下挑战的必然选择,更是把握未来数字机遇的核心密钥。
一、账号安全控制
用户账号是计算机使用者的身份凭证或标识,每个要访问系统资源的人,必须凭借其用户账号才能进入计算机。在 Linux 系统中,提供了多种机制来确保用户账号的正当、安全使用。
1.基本安全措施
(1)系统账号清理
在 Linux 系统中,除了用户手动创建的各种账号之外,还包括随系统或程序安装过程而生成的其他大量账号。除了超级用户 root 之外,其他大量账号只是用来维护系统运作、启动或保持服务进程,一般是不允许登录的,因此也称为非登录用户账号。
常见的非登录用户账号包括 bin、daemon、adm、lp、mail 等。为了确保系统安全,这些用户账号的登录 Shell 通常是 /sbin/nologin,表示禁止终端登录,应确保不被人为改动。
[root@localhost ~]# grep "/sbin/nologin$" /etc/passwdbin:x:1:1:bin:/bin:/usr/sbin/nologindaemon:x:2:2:daemon:/sbin:/usr/sbin/nologinadm:x:3:4:adm:/var/adm:/usr/sbin/nologinlp:x:4:7:lp:/var/spool/lpd:/usr/sbin/nologinmail:x:8:12:mail:/var/spool/mail:/usr/sbin/nologinoperator:x:11:0:operator:/root:/usr/sbin/nologingames:x:12:100:games:/usr/games:/usr/sbin/nologinftp:x:14:50:FTP User:/var/ftp:/usr/sbin/nologinnobody:x:65534:65534:Kernel Overflow User:/:/usr/sbin/nologin
对于 Linux 服务器中长期不用的用户账号,若无法确定是否应该删除,可以暂时将其锁定。例如,若要锁定、解锁名为 zhangsan 的用户账号,可以执行以下操作(passwd、usermod 命令都可用来锁定、解锁账号)。
[root@localhost ~]# usermod -L zhangsan[root@localhost ~]# passwd -S zhangsanzhangsan LK 2025-03-24 0 99999 7 -1 (密码已被锁定。)[root@localhost ~]# usermod -U zhangsan[root@localhost ~]# passwd -S zhangsanzhangsan PS 2025-03-24 0 99999 7 -1 (密码已设置,使用 SHA512 算法。)
如果服务器中的用户账号已经固定,不再进行更改,还可以采取锁定账号配置文件的方法。使用 chattr 命令,分别结合 “+i”“-i” 选项来锁定、解锁文件,使用 lsattr 命令可以查看文件锁定情况。
法。)[root@localhost ~]# chattr +i /etc/passwd /etc/shadow[root@localhost ~]# lsattr /etc/passwd /etc/shadow----i---------e------- /etc/passwd----i---------e------- /etc/shadow[root@localhost ~]# chattr -i /etc/passwd /etc/shadow[root@localhost ~]# lsattr /etc/passwd /etc/shadow--------------e------- /etc/passwd--------------e------- /etc/shadow
在账号文件被锁定的情况下,其内容将不允许变更,因此无法添加、删除账号,也不能更改用户的密码、登录 Shell、宿主目录等属性信息。
[root@localhost ~]# chattr +i /etc/passwd /etc/shadow[root@localhost ~]# useradd lisiuseradd:无法打开 /etc/passwd
(2)密码安全控制
:在不安全的网络环境中,为了降低密码被猜出或被暴力破解的风险,用户应养成定期更改密码的习惯,避免长期使用同一个密码。管理员可以在服务器端限制用户密码的最大有效天数,对于密码已过期的用户,登录时将被要求重新设置密码,否则将拒绝登录。执行以下操作可将密码的有效期设为 30 天(chage 命令用于设置密码时限)。
[root@localhost ~]# vi /etc/login.defs #适用用未创建的用户# PASS_MAX_DAYS 30[root@localhost~]#chage -M 30 1isi//适用于已有的1isi用户
在某些特殊情况下,如要求批量创建的用户初次登录时必须自设密码,根据安全规划统一要求所有用户更新密码等,可以由管理员执行强制策略,以便用户在下次登录时必须更改密码。例如,执行以下操作可强制要求用户 zhangsan 下次登录时重设密码。
[root@localhost~]#chage -d 0 zhangsan[root@localhost~]#Localhost login: zhangsan //zhangsan用户登录系统password:You are required to change your password immediately (root enforced)Changing password for zhangsan.//强制修改zhangsan的密码(current) UNIX password:New password:Retype new password:
(3)历史命令,自动注销
Bash 终端环境中,历史命令的记录条数由变量 HISTSIZE 控制,默认为 1000 条。通过修改 /etc/profile 文件中的 HISTSIZE 变量值,可以影响系统中的所有用户。例如,可以设置最多只记录 200 条历史命令.
[root@localhost~]#vi/etc/profile//适用于新登录用户……//略部分内容HISTSIZE=200[root@localhost~]#export HISTSIZE=200//适用于当前用户
Bash 终端环境中,还可以设置一个闲置超时时间,当超过指定的时间没有任何输入时即自动注销终端,这样可以有效避免当管理员不在时其他人员对服务器的误操作风险。闲置超时由变量 TMOUT 来控制,默认单位为秒(s)。
[root@localhost~]#vi /etc/profile//适用于新登录用户….省略部分内容export TMOUT=600[root@localhost~]#export TMOUT=600//适用于当前用户
需要注意的是,当正在执行程序代码编译、修改系统配置等耗时较长的操作时,应避免设置 TMOUT 变量。必要时可以执行 “unset TMOUT” 命令取消 TMOUT 变量设置。
2.用户提权和切换命令
Linux 系统为我们提供了 su、sudo 两种命令,其中 su 命令主要用来切换用户,而 sudo 命令用来提升执行权限,下面分别进行介绍。
2.1 su命令用法
使用 su 命令,可以切换为指定的另一个用户,从而具有该用户的所有权限。
[jerry@localhost ~]s su-root 密码://输入用户root的口令 [root@localhost~]#//验证成功后获得root权限
默认情况下,任何用户都允许使用 su 命令,从而有机会反复尝试其他用户(如 root)的登录密码,这样带来了安全风险。为了加强 su 命令的使用控制,可以借助于 pam_wheel 认证模块,只允许极个别用户使用 su 命令进行切换。实现过程如下:将授权使用 su 命令的用户添加到 wheel 组,修改 /etc/pam.d/su 认证配置以启用 pam_wheel 认证。
[root@localhost~]#gpasswd -a tsengyia wheel//添加授权用户tsengyia正在将用户"tsengyia"加入到"wheel"组中[root@localhost~]#grep wheel/etc/group//确认wheel组成员wheel:x:10:tsengyia[root@localhost ~]#vi /etc/pam.d/su#%PAM-1.0auth sufficient pam_rootok.so..//略部分内容auth required pam_wheel.so use_uid//去掉此行开头的#号…./略部分内容
启用 pam_wheel 认证以后,未加入到 wheel 组内的其他用户将无法使用 su 命令,尝试进行切换时将提示 “拒绝权限”,从而将切换用户的权限控制在最小范围内。
[jerry@localhost ~]ssu-root //尝试切换为root密码:su:拒绝权限 [jerry@localhost ~]s //切换失败,仍为原
2.2 sudo命令提权
使用 sudo 命令就可以提升执行权限。不过,需要由管理员预先进行授权,指定允许哪些用户以超级用户(或其他普通用户)的身份来执行哪些命令。
配置文件 /etc/sudoers 中,授权记录的基本配置格式如下所示。
user MACHINE=COMMANDS
授权配置主要包括用户、主机、命令三个部分,即授权哪些人在哪些主机上执行哪些命令。各部分的具体含义如下。
-
用户(user):直接授权指定的用户名,或采用 “% 组名” 的形式(授权一个组的所有用户)。
-
主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同一份 sudoers 文件,一般设为localhost或者实际的主机名即可。
-
命令(COMMANDS):允许授权的用户通过 sudo 方式执行的特权命令,需填写命令程序的完整路径,多个命令之间以逗号 “,” 进行分隔。
2.3通过是sudo执行特权命令
对于已获得授权的用户,通过 sudo 方式执行特权命令时,只需要将正常的命令行作为 sudo 命令的参数即可。由于特权命令程序通常位于 /sbin
、/usr/sbin
等目录下,普通用户执行时应使用绝对路径。以下操作验证了使用 sudo 方式执行命令的过程:
[jerry@localhost ~]$ /sbin/ifconfig ens33:0 192.168.1.11/24 # 未用sudo的情况SIOCSIFADDR: 不允许的操作 # 提示权限不足SIOCSIFFLAGS: 不允许的操作SIOCSIFNETMASK: 不允许的操作[jerry@localhost ~]$ sudo /sbin/ifconfig ens33:0 192.168.1.11/24 # 使用sudo的情况[sudo] password for jerry: # 输入jerry的密码# 执行成功,输出接口配置信息[jerry@localhost ~]$ /sbin/ifconfig ens33:0 ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu1500inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255ether 00:0c:29:3b:ff:76 txqueuelen 1000 (Ethernet
如果已经启用 sudo 日志(通过在 /etc/sudoers
中配置 Defaults logfile="/var/log/sudo"
),则可以从 /var/log/sudo
文件中看到用户的 sudo 操作记录:
[root@localhost ~]# tail /var/log/sudoAug24 23:59:44: jerry: TTY=pts/0; PWD=/home/jerry; USER=root; COMMAND=/sbin/ifconfig ens33:0 192.168.1.11/24Aug25 00:00:46: syrianer: TTY=pts/1; PWD=/home/syrianer; USER=root; COMMAND=list
二、系统引导和登录控制
(文档后续内容涉及服务器物理安全、BIOS/GRUB 引导设置、终端登录控制等,以下为简要概述)
1. 开关机安全控制
-
调整 BIOS 引导设置:
-
设置第一引导设备为系统磁盘,禁止从光盘、U 盘、网络等非安全设备引导。
-
设置 BIOS 管理密码,防止未授权修改(安全级别设为
setup
)。
-
-
限制更改 GRUB 引导参数:
-
为 GRUB 菜单设置加密密码(推荐使用
grub2-mkpasswd-pbkdf2
生成 PBKDF2 哈希密码),防止未授权用户修改引导参数。
-
2. 终端及登录控制
-
禁止 root 用户从指定终端登录:
-
修改
/etc/securetty
文件,删除或注释掉禁止登录的终端(如tty5
、tty6
)。
-
-
禁止普通用户登录:
-
创建
/etc/nologin
文件,临时拒绝普通用户登录(root 用户不受限制),维护完成后删除该文件即可恢复。
-
三、弱口令检测与端口扫描
1. 弱口令检测(John the Ripper)
-
功能:通过暴力破解或字典攻击检测系统账号的弱密码,支持 DES、MD5 等加密算法。
-
用法示例:
# 复制shadow文件并破解[root@localhost src]# cp /etc/shadow /root/shadow.txt [root@localhost run]# ./john /root/shadow.txt # 查看破解结果[root@localhost run]# ./john --show /root/shadow.txt
2. 端口扫描(NMAP)
-
功能:检测网络主机的开放端口、运行服务及操作系统类型,支持 TCP SYN 扫描、UDP 扫描、ICMP 扫描等。
-
用法示例:
# 扫描本地TCP端口[root@localhost ~]# nmap 127.0.0.1 # 扫描指定网段的FTP服务(端口21)[root@localhost ~]# nmap -p 21 192.168.4.0/24
总结
-
账号安全:通过清理冗余账号、密码策略、命令历史控制及
su/sudo
提权机制保障用户安全。 -
引导与登录控制:利用 BIOS/GRUB 安全设置、终端登录限制增强物理和系统安全。
-
安全工具:使用 John the Ripper 检测弱口令,NMAP 扫描端口和服务,识别潜在风险。