linux系统安全

管理终端登录

root@localhost \~# grep "/sbin/nologin$" /etc/passwd

表示禁止终端登录,应确保不被人改动

输出结果:

bin:x:1:1:bin:/bin:/sbin/nologin

daemon:x:2:2:daemon:/sbin:/sbin/nologin

adm:x:3:4:adm:/var/adm:/sbin/nologin

lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin

mail:x:8:12:mail:/var/spool/mail:/sbin/nologin

operator:x:11:0:operator:/root:/sbin/nologin

games:x:12:100:games:/usr/games:/sbin/nologin

ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin

nobody:x:99:99:Nobody:/:/sbin/nologin

systemd-network:x:192:192:systemd Network Management:/:/sbin/nologin

dbus:x:81:81:System message bus:/:/sbin/nologin

polkitd:x:999:998:User for polkitd:/:/sbin/nologin

libstoragemgmt:x:998:995:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin

colord:x:997:994:User for colord:/var/lib/colord:/sbin/nologin

rpc:x:32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin

saned:x:996:993:SANE scanner daemon user:/usr/share/sane:/sbin/nologin

gluster:x:995:992:GlusterFS daemons:/run/gluster:/sbin/nologin

saslauth:x:994:76:Saslauthd user:/run/saslauthd:/sbin/nologin

abrt:x:173:173::/etc/abrt:/sbin/nologin setroubleshoot:::993:990::/var/lib/setroubleshoot:/sbin/nologin

rtkit:x:172:172:RealtimeKit:/proc:/sbin/nologin

pulse:x:171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin

radvd:x:75:75:radvd user:/:/sbin/nologin

chrony:x:992:987::/var/lib/chrony:/sbin/nologin

unbound:x:991:986:Unbound DNS resolver:/etc/unbound:/sbin/nologin

qemu:x:107:107:qemu user:/:/sbin/nologin

tss:x:59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin

sssd:x:990:984:User for sssd:/:/sbin/nologin usbmuxd:x:113:113:usbmuxd user:/:/sbin/nologin

geoclue:x:989:983:User for geoclue:/var/lib/geoclue:/sbin/nologin

ntp:x:38:38::/etc/ntp:/sbin/nologin gdm:x:42:42::/var/lib/gdm:/sbin/nologin

rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin

gnome-initial-setup:x:988:982::/run/gnome-initial-setup/:/sbin/nologin

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin

postfix:x:89:89::/var/spool/postfix:/sbin/nologin tcpdump:x:72:72::/:/sbin/nologin

账号管理

root@localhost \~# usermod -L chen

-L表示:锁定账号

root@localhost \~# passwd -S chen

-S表示:查看账号状态

输出结果:

chen LK 2025-02-27 0 99999 7 -1 (Password locked.) root@localhost \~# usermod -U chen

-U表示:解锁账号

root@localhost \~# passwd -S chen

输出结果:

chen PS 2025-02-27 0 99999 7 -1 (Password set, SHA256 crypt.)

文件管理

+i表示:锁定状态

root@localhost \~# chattr +i /etc/passwd /etc/shadow

查看文件状态

root@localhost \~# lsattr /etc/passwd /etc/shadow ----i----------- /etc/passwd ----i----------- /etc/shadow

-i表示:解锁状态

root@localhost \~# chattr -i /etc/passwd /etc/shadow

查看文件状态

root@localhost \~# lsattr /etc/passwd /etc/shadow ---------------- /etc/passwd ---------------- /etc/shadow

锁定文件 (锁定文件后无法打开文件)

root@localhost \~# chattr +i /etc/passwd /etc/shadow

查看文件

[r 结果:

useradd: cannot open /etc/passwd

密码安全控制

通过更改文件,改变密码期限

root@localhost \~# vi /etc/login.defs (适用于新建的用户)

删除前面的#,将days 后改为30

PASS_MAX_DAYS 30 (用户密码有效期30天)

用命令对已创建的lisi用户,改变命令期限

root@localhost \~# chage -M 30 lisi

设置用户下次登录就要修改密码:

root@localhost \~# chage -d 0 lisi

将历史命令改为存储上限为200

root@localhost \~# vi /etc/profile

root@localhost \~#export HISTSIZE=200

当用户退出已登录bash环境,

root@localhost \~# vi ~/.bash_logout

#~/.bash_logout

histoy -c clear

:x (保存cat 查看~/.bash_logout文件)

root@localhost \~# vi /etc/profile

......//省略部分内容

export TMOUT=600 (编辑/etc/profile文件)

root@localhost \~# export TMOUT=600

闲置600s自动账户注销,

切换用户

su命令

jerry@localhost \~s su - root //输入用户 root的口令

密码: root@localhost \~# //验证成功后获得 root权限

添加到组

root@localhost \~# gpasswd -a tsengyia wheel

正在将用户"tsengyia"加入"wheel"组中 //添加授权用户 tsengyia

root@localhost \~# grep wheel /etc/group //确认 wheel 组成员

wheel:x:10:tsengyia

root@localhost\~# vi /etc/pam.d/su

启用 pam_wheel 认证以后,未加入 wheel 组内的其他用户将无法使用"su"命令,尝试进行切换时会提示"拒绝权限",将切换用户的权限控制在最小

jerry@localhost \~$su-root //尝试切换为 root 密码: su:拒绝权限

在/cic/sudoens 配置文件中,授权记录的

基本配置格式如下: user MACHINE=COMMANDS

注:

用户(user):直接授权指定的用户名,或采用"%组名"的形式授权一个组的所有用户,

主机(MACHINE):使用此配置文件的主机名称。此部分主要是方便在多个主机间共用同份 sudoers 文件,一般设为 localhost 或实际的主机名即可。

命令(COMMANDS):允许授权的用户通过sudo方式执行的特权命令,需填写命令程产完整路径,多个命令之间以逗号""进行分隔。

能够执行"ifconfg"命令来修改IP地址,而 whecl组的用户无须验证密码即可执行任何命令,可以执行以下命令。 root@localhost\~# visudo//省略部分内容 Jerry localhost=/sbin/ifconfig &wheel ALL=NOPASSWD:ALL

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

例如,执行以下命令通过别名方式来添加授权记录,允许用户jemy、tom、tsengsmtp、pop 中执行"rpm"和"yum"命令。 [root@localhost )# visudo

sudo配置记录的命令部分允许使用通配符"*",取反符号"!",它们常被用于授权某个目录下的所有命令或取消其中个别命令。例如,若要授权用户syimner可以执行sbin/目录下除ifconfg.route外的其他所有命令程序,那么可以执行以下命令。 root@localhost \~# visudo

默认情况下,通过 sudo 方式执行的操作并不记录。

若要启用 sudo 日志记录以备管理员查看,那么应在/etc/sudoers 文件中增加"Defaults logfle"设置。 root@localhost \~# visudo //查找 Defaults,在前面添加一行内容

//省略部分内容

对于已获得授权的用户,通过sudo 方式执行特权命令时,只需将正常的命令作为"sudo"命令的参数即可。由于特权命令程序通常位于/sbin、/usr/sbin 等目录下,所以普通用户执行时应使用绝对路径。以下命令验证了使用 sudo 方式执行命令的过程。

jerry@localhost \~s/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 password for jerry:

jerry@localhost \~$/sbin/ifconfig ens33:0 ......//省略部分内容 //验证 jerry 的密码//查看执行结果

若要查看用户自己获得了哪些 sudo 授权,那么可以执行"sudo -1"命令进行查看。(未授权的用)将会得到"may notrun sudo"的提示,

已授权的用户则可以看到自己的 sudo 配置。 syrianer@localhost \~$ sudo -l

开关机安全控制

调整 BIOS引导设置 (1)将第一优先引导设备(First BootDevice)设为当前操作系统所在磁盘。 (2)禁止从其他设备(如光盘、U盘、网络等)引导操作系统,对应的项设为"Disabled"

(3)将 BIOS 的安全级别改为"setup",并设置好管理密码,以防范未授权的修改。

禁止 Ctrl+Alt+ Del 组合键重启

组合键重启功能为服务器的本地维护提供了便利,但对于多终端登录的Linux 服务器而言,禁用此功能是比较安全的

在CentoS7操作系统中,执行"cat/etcinittab"命令可知 Ctrl+Alt+De组合键功能由/usr/lib/systemd/system/ctrl-alt-del.target 文件进行设置。

查看/usr/lib/systemd/systemlctlalt-del.target 文件发现,

cirl-alt-del.target是reboot,target 文件的软链接文件。

root@localhost# cat /etc/inittab

在不影响 reboot.target 文件的前提下执行以下命令即可禁用 Cu+AH+DeL组合键功能, rootelocalhost\~#systemctl mask ctrl-alt-del.target

//注销ctr1-alt-de1 服务

服务created symlink from /etc/systemd/system/ctrl-alt-del.target to /dev/null.

root@localhost\~# systemctl daemon-reload //重新加载 systemd 配置

小结:

systemctl mask命令用于注销指定服务,例如,systemctlmask cpu.service命令用于注销 CPU务,取消注销则使用systemctl umask命令。因此,若想重新开启 Ctl+Alt+Del 组合键功能,则需执行systemctlunmask ctrl-alt-del.target命令,然后刷新配置即可。

为 GRUB 菜单设置的密码建议采用

"grub2-mkpasswd-pbkdf2"命令生成。生成密码后,在/etc/grub.d/00 header 配置文件中添加对应的用户密码等配置,具体添加内容如下:

root@localhost\~# grub2-mkpasswd-pbkdf2

Enter password: //根据提示设置密码 Reenter password:

//经过加密的密码字符串

root@localhost \~#cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

root@localhost \~# cp /etc/grub.d/00 header /ete/grub.d/00 header .bak

root@localhost \~# vim /etc/grub.d/00 header

//将下面的内容添加到文件最后 ...//省略部分内容

相关推荐
2601_960567961 小时前
电商套图自动化效率的工程量化分析——从逐张生成到批量套图的架构演进
运维·架构·自动化
吳所畏惧2 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈2 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HiDev_3 小时前
【非标自动化】2、认识元器件(确定目标)
运维·自动化
Zhang~Ling4 小时前
从 fopen 到 struct file:从零开始拆解 Linux 文件 I/O
linux·运维·服务器
DeeplyMind4 小时前
Linux 深入 per-VMA lock:Linux 缺页路径如何摆脱 mmap_lock
linux·per-vma lock
爱写代码的森4 小时前
蒙三方库 | harmony-utils之FileUtil文件重命名与属性查询详解
linux·运维·服务器·华为·harmonyos·鸿蒙·huawei
中微极客4 小时前
2026主流AI Agent框架技术选型与性能对比
运维·网络·人工智能
久曲健的测试窝4 小时前
智能座舱自动化测试落地方案:数字仿真搭配实车实测,解决用例运维与场景失真难题
运维
XMAIPC_Robot5 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发