CentOS文件管理安全实践
设置复杂密码(包含大小写字母、数字、特殊字符,长度≥8位),禁止使用“123456”“password”等常见弱密码;通过/etc/login.defs配置密码有效期(如PASS_MAX_DAYS 90设置密码90天过期,PASS_MIN_DAYS 7设置修改间隔≥7天),并通过/etc/security/pwquality.conf启用密码复杂度检查(如minlen=8要求最小长度8位,minclass=2要求至少2种字符类型)。定期提醒用户更新密码(PASS_WARN_AGE 7设置过期前7天警告),降低密码被猜测或破解的风险。
chmod命令设置文件/目录权限,遵循“最小权限原则”——例如,敏感文件(如/etc/shadow)设为600(仅所有者可读写),系统目录(如/bin、/sbin)设为755(所有者可读写执行,其他用户仅可读执行),用户目录设为750(防止其他用户访问);使用chown(修改所有者)和chgrp(修改所属组)命令确保文件归属正确(如chown root:root /etc/passwd)。acl工具(sudo yum install acl),通过setfacl命令为特定用户或组设置额外权限(如setfacl -m u:devuser1:rwx /var/www/html/projectX允许用户devuser1对项目目录有完全权限,setfacl -m g:devgroup2:r-x /var/www/html/projectX允许devgroup2组有读执行权限),突破传统rwx权限的限制,适用于多用户协作场景。SELinux(Security-Enhanced Linux)提供强制访问控制(MAC),限制进程对文件的访问权限。启用SELinux(sestatus查看状态,若为disabled则编辑/etc/selinux/config将SELINUX=enforcing设为启用),并通过setenforce 1临时开启。使用ls -Z查看文件SELinux上下文,chcon命令修改上下文(如chcon -t httpd_sys_content_t /var/www/html/index.html设置网页文件为HTTP服务可访问类型),或通过semanage工具配置自定义策略,防止未授权进程访问敏感文件。
GnuPG工具加密单个文件(如gpg --symmetric --cipher-algo AES256 sensitive_file.txt生成加密文件sensitive_file.txt.gpg,通过密码保护;解密时使用gpg --decrypt sensitive_file.txt.gpg > sensitive_file.txt),适合保护离线敏感文件。LUKS(Linux Unified Key Setup)加密整个分区(如cryptsetup luksFormat /dev/sdX初始化加密分区,cryptsetup open /dev/sdX my_encrypted_disk打开分区,mkfs.ext4 /dev/mapper/my_encrypted_disk创建文件系统,mount /dev/mapper/my_encrypted_disk /mnt挂载),确保数据在存储时无法被窃取。使用auditd(Linux审计守护进程)监控文件访问行为,安装auditd(sudo yum install audit),配置审计规则(如auditctl -w /etc/shadow -p war -k shadow_access监控/etc/shadow文件的读、写、执行操作,-k设置关键字便于检索);通过ausearch命令查看审计日志(如ausearch -k shadow_access),及时发现异常访问(如未授权用户尝试读取敏感文件)。
禁用root用户直接SSH登录(编辑/etc/ssh/sshd_config,设置PermitRootLogin no),防止攻击者通过暴力破解root密码获取系统控制权;使用SSH密钥认证(ssh-keygen -t rsa生成密钥对,ssh-copy-id user@remote_host将公钥复制到服务器),替代密码认证,提升登录安全性;限制SSH端口(Port 2222修改默认22端口,减少自动化扫描攻击),并通过firewalld或iptables配置防火墙规则,仅允许特定IP地址访问SSH端口(如firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.100" port protocol="tcp" port="2222" accept')。
定期使用find命令查找异常权限文件(如find / -type f -perm -o=w -user root 2>/dev/null查找root用户拥有写权限的其他用户可访问文件,find / -type d -perm -o+w 2>/dev/null查找其他用户可写的目录),及时修正过度授权;使用lsattr命令检查文件不可修改属性(如lsattr /etc/passwd,若显示i表示不可修改),防止敏感文件被意外或恶意修改(如chattr +i /etc/passwd锁定文件,chattr -i /etc/passwd解锁);定期审查sudoers文件(使用visudo命令安全编辑),移除不必要的sudo权限(如删除离职用户的sudo权限)。