活动公告

系统通知
05-18 21:22
系统通知
通知:本站资源由网友上传分享,如有违规等问题请到版务模块进行投诉,资源失效请在帖子内回复要求补档,会尽快处理!
10-23 09:31

深入解析CentOS Stream用户与权限管理提升系统安全性的实用技巧

SunJu_FaceMall

3万

主题

2860

科技点

3万

积分

白金月票

碾压王

积分
32872

塔罗立华奏

<font color=白金月票" /> 发表于 2025-9-6 20:20:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
CentOS Stream作为Red Hat Enterprise Linux (RHEL)的上游开发平台,提供了稳定且可靠的操作系统环境。在系统管理中,用户与权限管理是确保系统安全的关键环节。合理配置用户账户和权限可以有效防止未授权访问、数据泄露和系统攻击。本文将深入探讨CentOS Stream中的用户与权限管理技巧,帮助系统管理员提升系统安全性。

1. CentOS Stream用户管理基础

在CentOS Stream中,用户管理是系统安全的第一道防线。以下是用户管理的基础知识:

1.1 用户账户类型

CentOS Stream中有几种类型的用户账户:

• 超级用户(root):拥有系统的最高权限
• 系统用户:用于运行系统服务和应用程序
• 普通用户:日常操作和应用程序使用的账户

1.2 用户管理命令

CentOS Stream提供了一系列命令来管理用户账户:
  1. # 创建新用户
  2. useradd username
  3. # 创建用户并指定主目录
  4. useradd -d /home/customdir username
  5. # 创建用户并指定用户ID
  6. useradd -u 1234 username
  7. # 创建用户并指定初始组
  8. useradd -g groupname username
  9. # 创建用户并指定附加组
  10. useradd -G groupname1,groupname2 username
  11. # 创建用户并指定shell
  12. useradd -s /bin/bash username
复制代码
  1. # 为用户设置密码
  2. passwd username
复制代码
  1. # 修改用户主目录
  2. usermod -d /new/home/dir username
  3. # 修改用户ID
  4. usermod -u 1234 username
  5. # 修改用户主组
  6. usermod -g groupname username
  7. # 修改用户附加组
  8. usermod -G groupname1,groupname2 username
  9. # 修改用户shell
  10. usermod -s /bin/bash username
  11. # 修改用户登录名
  12. usermod -l newname oldname
复制代码
  1. # 删除用户但保留主目录
  2. userdel username
  3. # 删除用户及其主目录
  4. userdel -r username
复制代码

1.3 用户组管理

组管理是权限管理的重要组成部分,可以通过组来简化权限分配:
  1. # 创建新组
  2. groupadd groupname
  3. # 创建组并指定组ID
  4. groupadd -g 5678 groupname
复制代码
  1. # 修改组名
  2. groupmod -n newgroupname oldgroupname
  3. # 修改组ID
  4. groupmod -g 5678 groupname
复制代码
  1. # 删除组
  2. groupdel groupname
复制代码
  1. # 将用户添加到组
  2. gpasswd -a username groupname
  3. # 从组中移除用户
  4. gpasswd -d username groupname
  5. # 设置组管理员
  6. gpasswd -A username groupname
复制代码

2. CentOS Stream权限管理基础

在CentOS Stream中,权限管理主要通过文件权限、特殊权限和访问控制列表(ACL)来实现。

2.1 基本文件权限

CentOS Stream使用传统的Unix权限模型,每个文件和目录都有三组权限:所有者权限、组权限和其他用户权限。
  1. # 查看文件详细信息
  2. ls -l filename
  3. # 输出示例
  4. # -rw-r--r-- 1 username groupname 0 Jan 1 12:00 filename
复制代码

权限字符串解释:

• 第一个字符表示文件类型(-表示普通文件,d表示目录,l表示符号链接等)
• 接下来的三个字符表示所有者的权限(r读,w写,x执行)
• 中间三个字符表示组的权限
• 最后三个字符表示其他用户的权限
  1. # 使用符号模式修改权限
  2. chmod u+x filename        # 为所有者添加执行权限
  3. chmod g-w filename        # 移除组的写权限
  4. chmod o=r filename        # 设置其他用户的权限为只读
  5. chmod a=rx filename       # 为所有用户设置读和执行权限
  6. # 使用数字模式修改权限
  7. chmod 755 filename        # rwxr-xr-x
  8. chmod 644 filename        # rw-r--r--
复制代码

数字权限解释:

• 4 = 读 ®
• 2 = 写 (w)
• 1 = 执行 (x)
• 0 = 无权限
  1. # 修改文件所有者
  2. chown username filename
  3. # 修改文件组
  4. chgrp groupname filename
  5. # 同时修改所有者和组
  6. chown username:groupname filename
复制代码

2.2 特殊权限

除了基本权限外,CentOS Stream还支持几种特殊权限:

当设置了SUID位的可执行文件运行时,进程将以文件所有者的权限运行,而不是执行者的权限。
  1. # 设置SUID
  2. chmod u+s filename
  3. chmod 4755 filename
  4. # 移除SUID
  5. chmod u-s filename
复制代码

当设置了SGID位的可执行文件运行时,进程将以文件所属组的权限运行。对于目录,SGID使得在该目录中创建的文件继承目录的组。
  1. # 设置SGID
  2. chmod g+s filename
  3. chmod 2755 filename
  4. # 移除SGID
  5. chmod g-s filename
复制代码

对于目录,Sticky Bit限制了文件删除权限,只有文件的所有者、目录的所有者或超级用户才能删除目录中的文件。
  1. # 设置Sticky Bit
  2. chmod +t directory
  3. chmod 1777 directory
  4. # 移除Sticky Bit
  5. chmod -t directory
复制代码

2.3 访问控制列表 (ACL)

ACL提供了比传统权限更精细的访问控制。
  1. # 查看文件ACL
  2. getfacl filename
复制代码
  1. # 为用户添加ACL
  2. setfacl -m u:username:permissions filename
  3. # 示例:setfacl -m u:john:rw filename
  4. # 为组添加ACL
  5. setfacl -m g:groupname:permissions filename
  6. # 示例:setfacl -m g:developers:rw filename
  7. # 为其他用户添加ACL
  8. setfacl -m o:permissions filename
  9. # 示例:setfacl -m o:r filename
  10. # 设置默认ACL(仅对目录有效)
  11. setfacl -d -m u:username:permissions directory
  12. # 示例:setfacl -d -m u:john:rw directory
复制代码
  1. # 删除特定用户的ACL
  2. setfacl -x u:username filename
  3. # 删除特定组的ACL
  4. setfacl -x g:groupname filename
  5. # 删除所有ACL
  6. setfacl -b filename
复制代码

3. 用户与权限管理的安全最佳实践

在CentOS Stream中实施用户与权限管理时,遵循安全最佳实践可以显著提高系统安全性。

3.1 最小权限原则

最小权限原则要求用户和进程只拥有完成其任务所必需的最低权限。
  1. # 创建具有有限权限的用户
  2. useradd -s /sbin/nologin username  # 禁止shell登录
  3. useradd -g users -G wheel username  # 添加到wheel组以使用sudo
  4. # 使用sudo而不是直接使用root
  5. # 编辑sudoers文件
  6. visudo
  7. # 添加用户到sudoers
  8. username ALL=(ALL) ALL
  9. # 允许用户执行特定命令而不需要密码
  10. username ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd
复制代码

3.2 密码策略

强密码策略是防止未授权访问的重要措施。
  1. # 安装pam_pwquality模块(如果未安装)
  2. yum install -y libpwquality
  3. # 编辑密码质量配置文件
  4. vi /etc/security/pwquality.conf
  5. # 示例配置
  6. minlen = 12
  7. minclass = 3
  8. dcredit = -1
  9. ucredit = -1
  10. lcredit = -1
  11. ocredit = -1
  12. maxrepeat = 3
  13. gecoscheck = 1
  14. dictcheck = 1
  15. usercheck = 1
  16. enforce_for_root
复制代码
  1. # 编辑登录配置文件
  2. vi /etc/login.defs
  3. # 示例配置
  4. PASS_MAX_DAYS   90
  5. PASS_MIN_DAYS   7
  6. PASS_WARN_AGE   14
  7. # 为特定用户设置密码过期
  8. chage -M 90 username
  9. chage -W 14 username
  10. chage -m 7 username
复制代码

3.3 账户锁定策略

账户锁定策略可以防止暴力破解攻击。
  1. # 编辑pam配置文件
  2. vi /etc/pam.d/system-auth
  3. # 添加以下行(在auth部分)
  4. auth        required      pam_tally2.so deny=5 unlock_time=1800 onerr=fail
  5. # 查看失败的登录尝试
  6. pam_tally2 --user username
  7. # 解锁用户账户
  8. pam_tally2 --user username --reset
复制代码

3.4 限制root访问

直接使用root账户存在安全风险,应限制其访问。
  1. # 编辑SSH配置文件
  2. vi /etc/ssh/sshd_config
  3. # 修改以下行
  4. PermitRootLogin no
  5. # 重启SSH服务
  6. systemctl restart sshd
复制代码
  1. # 创建管理员组
  2. groupadd admins
  3. # 添加用户到管理员组
  4. usermod -aG admins username
  5. # 配置sudoers文件
  6. vi /etc/sudoers
  7. # 添加以下行
  8. %admins ALL=(ALL) ALL
复制代码

3.5 用户会话管理

管理用户会话可以防止闲置会话带来的安全风险。
  1. # 编辑profile文件
  2. vi /etc/profile
  3. # 添加以下行
  4. export TMOUT=600  # 10分钟无活动自动注销
  5. readonly TMOUT   # 防止用户修改
  6. # 使配置立即生效
  7. source /etc/profile
复制代码
  1. # 编辑limits配置文件
  2. vi /etc/security/limits.conf
  3. # 添加以下行
  4. @users   -   maxlogins   3
复制代码

4. 高级权限管理技术

除了基本的用户和权限管理外,CentOS Stream还提供了一些高级权限管理技术,可以进一步提高系统安全性。

4.1 SELinux (Security-Enhanced Linux)

SELinux是一个强制访问控制(MAC)系统,它提供了比传统Linux权限更精细的控制。

• 安全上下文:每个进程和文件都有一个安全上下文,包括用户、角色、类型和敏感度。
• 策略:定义了哪些进程可以访问哪些文件。
• 模式:Enforcing:强制模式,SELinux策略被强制执行Permissive:宽容模式,SELinux策略不被强制执行,但会记录违规行为Disabled:禁用模式,SELinux不运行
• Enforcing:强制模式,SELinux策略被强制执行
• Permissive:宽容模式,SELinux策略不被强制执行,但会记录违规行为
• Disabled:禁用模式,SELinux不运行

• Enforcing:强制模式,SELinux策略被强制执行
• Permissive:宽容模式,SELinux策略不被强制执行,但会记录违规行为
• Disabled:禁用模式,SELinux不运行
  1. # 查看SELinux状态
  2. sestatus
  3. # 设置SELinux模式
  4. setenforce 0  # 设置为Permissive模式
  5. setenforce 1  # 设置为Enforcing模式
  6. # 查看文件的安全上下文
  7. ls -Z filename
  8. # 修改文件的安全上下文
  9. chcon -t httpd_sys_content_t filename
  10. # 恢复文件的默认安全上下文
  11. restorecon filename
  12. # 查看SELinux布尔值
  13. getsebool -a
  14. # 设置SELinux布尔值
  15. setsebool -P httpd_can_network_connect on
复制代码
  1. # 安装SELinux故障排除工具
  2. yum install -y setroubleshoot-server
  3. # 查看SELinux拒绝消息
  4. sealert -a /var/log/audit/audit.log
  5. # 生成SELinux策略模块
  6. audit2allow -M mymodule < /var/log/audit/audit.log
  7. # 安装生成的策略模块
  8. semodule -i mymodule.pp
复制代码

4.2 AppArmor

AppArmor是另一个强制访问控制系统,它使用配置文件来限制程序的权限。

• 配置文件:定义了程序可以访问哪些资源。
• 模式:Enforce:强制模式,限制被强制执行Complain:抱怨模式,违规行为被记录但不限制
• Enforce:强制模式,限制被强制执行
• Complain:抱怨模式,违规行为被记录但不限制

• Enforce:强制模式,限制被强制执行
• Complain:抱怨模式,违规行为被记录但不限制
  1. # 安装AppArmor
  2. yum install -y apparmor
  3. # 启动AppArmor服务
  4. systemctl start apparmor
  5. systemctl enable apparmor
  6. # 查看AppArmor状态
  7. aa-status
  8. # 列出加载的配置文件
  9. aa-status
  10. # 将配置文件设置为抱怨模式
  11. aa-complain /path/to/profile
  12. # 将配置文件设置为强制模式
  13. aa-enforce /path/to/profile
  14. # 创建新的配置文件
  15. aa-genprof /path/to/executable
  16. # 更新配置文件
  17. aa-logprof
复制代码

4.3 PAM (Pluggable Authentication Modules)

PAM提供了一个灵活的框架,用于配置系统的身份验证机制。

PAM配置文件位于/etc/pam.d/目录下,每个服务都有一个对应的配置文件。配置文件的每一行都遵循以下格式:
  1. module_interface control_flag module_path module_arguments
复制代码

• module_interface:模块接口类型(auth、account、password、session)
• control_flag:控制标志(required、requisite、sufficient、optional)
• module_path:模块路径
• module_arguments:模块参数
  1. # pam_unix.so:传统的Unix身份验证
  2. auth sufficient pam_unix.so
  3. # pam_pwquality.so:密码质量检查
  4. password requisite pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=
  5. # pam_tally2.so:登录失败计数
  6. auth required pam_tally2.so deny=5 unlock_time=1800 onerr=fail
  7. # pam_limits.so:资源限制
  8. session required pam_limits.so
  9. # pam_time.so:时间限制
  10. account required pam_time.so
复制代码
  1. # 编辑服务的PAM配置文件
  2. vi /etc/pam.d/sshd
  3. # 添加双因素认证
  4. auth required pam_google_authenticator.so
复制代码

4.4 文件系统加密

加密文件系统可以保护敏感数据,即使物理介质被盗也能保证数据安全。
  1. # 安装cryptsetup
  2. yum install -y cryptsetup
  3. # 准备分区
  4. fdisk /dev/sdb
  5. # 创建加密卷
  6. cryptsetup luksFormat /dev/sdb1
  7. # 打开加密卷
  8. cryptsetup luksOpen /dev/sdb1 encrypted_data
  9. # 创建文件系统
  10. mkfs.ext4 /dev/mapper/encrypted_data
  11. # 挂载文件系统
  12. mount /dev/mapper/encrypted_data /mnt/encrypted
  13. # 卸载并关闭加密卷
  14. umount /mnt/encrypted
  15. cryptsetup luksClose encrypted_data
复制代码
  1. # 编辑crypttab文件
  2. vi /etc/crypttab
  3. # 添加以下行
  4. encrypted_data /dev/sdb1 /etc/luks_keyfile luks
  5. # 创建密钥文件
  6. dd if=/dev/urandom of=/etc/luks_keyfile bs=4096 count=1
  7. chmod 400 /etc/luks_keyfile
  8. # 添加密钥到LUKS卷
  9. cryptsetup luksAddKey /dev/sdb1 /etc/luks_keyfile
  10. # 编辑fstab文件
  11. vi /etc/fstab
  12. # 添加以下行
  13. /dev/mapper/encrypted_data /mnt/encrypted ext4 defaults 0 0
复制代码

5. 实用技巧与案例

在这一部分,我们将介绍一些实用的用户与权限管理技巧,并通过实际案例来说明如何应用这些技巧提升系统安全性。

5.1 创建安全的开发环境

在开发环境中,通常需要为开发人员提供适当的权限,同时确保系统安全。
  1. # 创建开发组
  2. groupadd developers
  3. # 创建开发用户
  4. useradd -g developers -s /bin/bash devuser1
  5. useradd -g developers -s /bin/bash devuser2
  6. # 设置密码
  7. passwd devuser1
  8. passwd devuser2
  9. # 创建项目目录
  10. mkdir -p /var/www/projects
  11. chown root:developers /var/www/projects
  12. chmod 775 /var/www/projects
  13. # 设置SGID,确保新创建的文件属于developers组
  14. chmod g+s /var/www/projects
  15. # 配置ACL,允许developers组成员读写
  16. setfacl -m g:developers:rwx /var/www/projects
  17. setfacl -d -m g:developers:rwx /var/www/projects
  18. # 配置sudoers,允许开发人员重启服务
  19. echo "%developers ALL=(ALL) NOPASSWD: /usr/bin/systemctl restart httpd" >> /etc/sudoers
  20. # 限制开发人员的系统访问
  21. echo "%developers hard nproc 100" >> /etc/security/limits.conf
  22. echo "%developers hard nofile 1024" >> /etc/security/limits.conf
复制代码

5.2 实现文件服务器安全

文件服务器需要严格的权限控制,以确保只有授权用户才能访问敏感文件。
  1. # 创建部门组
  2. groupadd sales
  3. groupadd hr
  4. groupadd finance
  5. # 创建共享目录结构
  6. mkdir -p /srv/shared/{sales,hr,finance,common}
  7. chown root:sales /srv/shared/sales
  8. chown root:hr /srv/shared/hr
  9. chown root:finance /srv/shared/finance
  10. chown root:root /srv/shared/common
  11. # 设置目录权限
  12. chmod 770 /srv/shared/sales
  13. chmod 770 /srv/shared/hr
  14. chmod 770 /srv/shared/finance
  15. chmod 755 /srv/shared/common
  16. # 设置SGID
  17. chmod g+s /srv/shared/sales
  18. chmod g+s /srv/shared/hr
  19. chmod g+s /srv/shared/finance
  20. chmod g+s /srv/shared/common
  21. # 配置ACL
  22. setfacl -m g:sales:rwx /srv/shared/sales
  23. setfacl -d -m g:sales:rwx /srv/shared/sales
  24. setfacl -m g:hr:rwx /srv/shared/hr
  25. setfacl -d -m g:hr:rwx /srv/shared/hr
  26. setfacl -m g:finance:rwx /srv/shared/finance
  27. setfacl -d -m g:finance:rwx /srv/shared/finance
  28. # 创建用户并添加到相应组
  29. useradd -G sales salesuser1
  30. useradd -G hr hruser1
  31. useradd -G finance financeuser1
  32. # 设置密码
  33. passwd salesuser1
  34. passwd hruser1
  35. passwd financeuser1
复制代码

5.3 配置Web服务器安全

Web服务器是常见的攻击目标,需要特别关注其安全配置。
  1. # 创建Apache用户和组
  2. groupadd apache
  3. useradd -r -g apache -s /sbin/nologin apache
  4. # 创建网站目录结构
  5. mkdir -p /var/www/{example.com,example.org}
  6. chown -R root:root /var/www
  7. chmod 755 /var/www
  8. # 创建网站内容目录
  9. mkdir -p /var/www/example.com/{public_html,logs}
  10. mkdir -p /var/www/example.org/{public_html,logs}
  11. # 设置网站目录权限
  12. chown -R apache:apache /var/www/example.com/public_html
  13. chown -R apache:apache /var/www/example.org/public_html
  14. chmod 750 /var/www/example.com/public_html
  15. chmod 750 /var/www/example.org/public_html
  16. # 设置日志目录权限
  17. chown -R apache:apache /var/www/example.com/logs
  18. chown -R apache:apache /var/www/example.org/logs
  19. chmod 750 /var/www/example.com/logs
  20. chmod 750 /var/www/example.org/logs
  21. # 配置SELinux
  22. semanage fcontext -a -t httpd_sys_content_t "/var/www/example.com(/.*)?"
  23. restorecon -Rv /var/www/example.com
  24. semanage fcontext -a -t httpd_sys_content_t "/var/www/example.org(/.*)?"
  25. restorecon -Rv /var/www/example.org
  26. # 允许Apache网络连接
  27. setsebool -P httpd_can_network_connect on
  28. # 配置防火墙
  29. firewall-cmd --permanent --add-service=http
  30. firewall-cmd --permanent --add-service=https
  31. firewall-cmd --reload
复制代码

5.4 实现数据库服务器安全

数据库服务器存储敏感数据,需要严格的访问控制。
  1. # 创建MySQL用户和组
  2. groupadd mysql
  3. useradd -r -g mysql -s /sbin/nologin mysql
  4. # 创建数据目录
  5. mkdir -p /var/lib/mysql
  6. chown -R mysql:mysql /var/lib/mysql
  7. chmod 750 /var/lib/mysql
  8. # 创建日志目录
  9. mkdir -p /var/log/mysql
  10. chown -R mysql:mysql /var/log/mysql
  11. chmod 750 /var/log/mysql
  12. # 配置SELinux
  13. semanage fcontext -a -t mysqld_db_t "/var/lib/mysql(/.*)?"
  14. restorecon -Rv /var/lib/mysql
  15. semanage fcontext -a -t mysqld_log_t "/var/log/mysql(/.*)?"
  16. restorecon -Rv /var/log/mysql
  17. # 允许MySQL网络连接
  18. setsebool -P mysql_connect_any on
  19. # 配置防火墙
  20. firewall-cmd --permanent --add-service=mysql
  21. firewall-cmd --reload
  22. # 初始化MySQL数据库
  23. mysqld --initialize --user=mysql
  24. # 启动MySQL服务
  25. systemctl start mysqld
  26. systemctl enable mysqld
  27. # 安全配置MySQL
  28. mysql_secure_installation
复制代码

6. 监控与审计

监控和审计是用户与权限管理的重要组成部分,可以帮助检测和防止安全事件。

6.1 系统日志监控

系统日志记录了系统活动,包括用户登录、权限变更等。
  1. # 编辑logrotate配置文件
  2. vi /etc/logrotate.conf
  3. # 示例配置
  4. weekly
  5. rotate 4
  6. create
  7. dateext
  8. include /etc/logrotate.d
  9. /var/log/wtmp {
  10.     monthly
  11.     create 0664 root utmp
  12.     minsize 1M
  13.     rotate 1
  14. }
复制代码
  1. # 安装rsyslog
  2. yum install -y rsyslog
  3. # 编辑rsyslog配置文件
  4. vi /etc/rsyslog.conf
  5. # 添加以下行以启用TCP日志接收
  6. $ModLoad imtcp
  7. $InputTCPServerRun 514
  8. # 添加以下行以将日志发送到远程服务器
  9. *.* @@logserver.example.com:514
  10. # 重启rsyslog服务
  11. systemctl restart rsyslog
  12. systemctl enable rsyslog
复制代码

6.2 用户活动监控

监控用户活动可以帮助检测异常行为。
  1. # 安装auditd
  2. yum install -y audit
  3. # 启动auditd服务
  4. systemctl start auditd
  5. systemctl enable auditd
  6. # 添加审计规则
  7. auditctl -w /etc/passwd -p wa -k identity
  8. auditctl -w /etc/shadow -p wa -k identity
  9. auditctl -w /etc/sudoers -p wa -k identity
  10. auditctl -w /etc/ssh/sshd_config -p wa -k ssh_config
  11. # 永久保存审计规则
  12. vi /etc/audit/rules.d/audit.rules
  13. # 添加以下行
  14. -w /etc/passwd -p wa -k identity
  15. -w /etc/shadow -p wa -k identity
  16. -w /etc/sudoers -p wa -k identity
  17. -w /etc/ssh/sshd_config -p wa -k ssh_config
  18. # 查看审计日志
  19. ausearch -k identity
  20. ausearch -k ssh_config
复制代码
  1. # 查看最近登录的用户
  2. last
  3. # 查看失败的登录尝试
  4. lastb
  5. # 查看系统重启记录
  6. last reboot
复制代码

6.3 文件完整性监控

文件完整性监控可以检测未授权的文件变更。
  1. # 安装AIDE
  2. yum install -y aide
  3. # 初始化AIDE数据库
  4. aide --init
  5. # 重命名数据库
  6. mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  7. # 执行检查
  8. aide --check
  9. # 更新数据库
  10. aide --update
  11. mv /var/lib/aide/aide.db.new.gz /var/lib/aide/aide.db.gz
  12. # 配置定时检查
  13. crontab -e
  14. # 添加以下行以每天凌晨3点运行AIDE检查
  15. 0 3 * * * /usr/sbin/aide --check | mail -s "AIDE Report" admin@example.com
复制代码
  1. # 安装EPEL仓库
  2. yum install -y epel-release
  3. # 安装Tripwire
  4. yum install -y tripwire
  5. # 初始化Tripwire数据库
  6. tripwire --init
  7. # 执行检查
  8. tripwire --check
  9. # 更新数据库
  10. tripwire --update
  11. # 配置Tripwire
  12. vi /etc/tripwire/twcfg.txt
  13. vi /etc/tripwire/twpol.txt
  14. # 重新生成配置文件
  15. twadmin -m F -c /etc/tripwire/tw.cfg -S /etc/tripwire/site.key /etc/tripwire/twcfg.txt
  16. twadmin -m P -p /etc/tripwire/tw.pol -S /etc/tripwire/site.key /etc/tripwire/twpol.txt
复制代码

6.4 实时监控与警报

实时监控和警报可以帮助管理员快速响应安全事件。
  1. # 安装OSSEC
  2. yum install -y ossec-hids
  3. # 配置OSSEC
  4. vi /var/ossec/etc/ossec.conf
  5. # 示例配置
  6. <ossec_config>
  7.   <global>
  8.     <email_notification>yes</email_notification>
  9.     <email_to>admin@example.com</email_to>
  10.     <smtp_server>smtp.example.com</smtp_server>
  11.     <email_from>ossec@example.com</email_from>
  12.   </global>
  13.   
  14.   <rules>
  15.     <include>rules_config.xml</include>
  16.     <include>sshd_rules.xml</include>
  17.     <include>syslog_rules.xml</include>
  18.     <include>attack_rules.xml</include>
  19.   </rules>
  20.   
  21.   <syscheck>
  22.     <frequency>7200</frequency>
  23.     <directories check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
  24.     <directories check_all="yes">/bin,/sbin</directories>
  25.     <ignore>/etc/mtab</ignore>
  26.     <ignore>/etc/hosts.deny</ignore>
  27.   </syscheck>
  28.   
  29.   <rootcheck>
  30.     <rootkit_files>/var/ossec/etc/shared/rootkit_files.txt</rootkit_files>
  31.     <rootkit_trojans>/var/ossec/etc/shared/rootkit_trojans.txt</rootkit_trojans>
  32.   </rootcheck>
  33.   
  34.   <localfile>
  35.     <log_format>syslog</log_format>
  36.     <location>/var/log/messages</location>
  37.   </localfile>
  38.   
  39.   <localfile>
  40.     <log_format>syslog</log_format>
  41.     <location>/var/log/secure</location>
  42.   </localfile>
  43. </ossec_config>
  44. # 启动OSSEC
  45. systemctl start ossec-hids
  46. systemctl enable ossec-hids
复制代码
  1. # 安装Fail2ban
  2. yum install -y fail2ban
  3. # 配置Fail2ban
  4. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
  5. vi /etc/fail2ban/jail.local
  6. # 示例配置
  7. [DEFAULT]
  8. bantime = 1h
  9. findtime = 10m
  10. maxretry = 3
  11. [sshd]
  12. enabled = true
  13. port = ssh
  14. logpath = %(sshd_log)s
  15. [apache-auth]
  16. enabled = true
  17. port = http,https
  18. logpath = %(apache_error_log)s
  19. # 启动Fail2ban
  20. systemctl start fail2ban
  21. systemctl enable fail2ban
  22. # 查看被禁止的IP
  23. fail2ban-client status sshd
复制代码

7. 总结

CentOS Stream的用户与权限管理是系统安全的基础。通过合理配置用户账户、权限和访问控制,可以显著提高系统的安全性。本文介绍了CentOS Stream中用户与权限管理的基础知识、安全最佳实践、高级权限管理技术以及监控与审计方法。

关键要点包括:

1. 遵循最小权限原则,确保用户和进程只拥有完成其任务所必需的最低权限。
2. 实施强密码策略和账户锁定策略,防止未授权访问。
3. 限制root访问,使用sudo替代直接使用root。
4. 利用SELinux、AppArmor和PAM等高级安全工具增强系统安全性。
5. 实施文件系统加密,保护敏感数据。
6. 配置适当的监控和审计机制,及时发现和响应安全事件。

通过实施这些技巧和最佳实践,系统管理员可以显著提高CentOS Stream系统的安全性,保护系统免受各种安全威胁。
「七転び八起き(ななころびやおき)」
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则