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

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

相关推荐
落幕1 小时前
在线商城服务器
linux·服务器·c语言
落魄实习生1 小时前
小米路由器SSH下安装DDNS-GO
运维·golang·ssh
zhangpeng4555479402 小时前
DevOps工具链
运维·devops
小袁搬码2 小时前
docker引擎与docker-compose离线版本下载详细教程
linux·运维·docker·容器·docker-compose
skywalk81632 小时前
Windows10 WSL又又又一次崩了 Docker Desktop - Unexpected WSL error
运维·ubuntu·docker·容器·wsl
努力犯错玩AI2 小时前
生产环境H200部署DeepSeek 671B 满血版全流程实战(三):SGLang 安装详解
linux·后端·python
海绵波波1072 小时前
【运维】服务器系统从centos7重装为ubuntu22.04
运维·服务器
roboko_3 小时前
Linux网络套接字编程——UDP服务器
linux·服务器·网络
网络安全指导员3 小时前
网络安全设备系统集成方案 系统集成和网络安全
linux·开发语言·网络·安全·web安全·php
我要升天!3 小时前
Linux中基础开发工具详细介绍
linux·运维·服务器·c++·postgresql