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

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

相关推荐
大树885 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠5 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质6 小时前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
bush46 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5206 小时前
Linux 11 动态监控指令top
linux
Inhand陈工7 小时前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智7 小时前
ARP代理--工作原理
运维·网络·arp·arp代理
不会C语言的男孩7 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
shushangyun_7 小时前
2026年快消品B2B系统推荐:支持终端门店订货、促销政策自动化的工具?
java·运维·网络·数据库·人工智能·spring·自动化
古城小栈8 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix