一、账户安全
-
root账户管理:root是最高权限账户,禁止直接远程登录(修改SSH配置),日常操作使用普通用户+sudo授权。
-
密码策略:设置复杂密码(字母+数字+特殊符号,长度≥8位),定期修改;禁止空密码、弱密码。
相关命令:passwd 用户名(修改密码)、chage -M 90 用户名(设置密码有效期90天)。
- 无用账户清理:删除或锁定长期不使用的账户,避免被滥用。
相关命令:userdel 用户名(删除账户)、passwd -l 用户名(锁定账户)、passwd -u 用户名(解锁账户)。
- 服务账户安全:系统服务账户(如nginx、mysql)使用/sbin/nologin作为Shell,禁止登录系统,仅用于运行服务。
二、权限控制
- 文件/目录权限:Linux权限分为读(r=4)、写(w=2)、执行(x=1),对应所有者(u)、所属组(g)、其他用户(o)。
常用命令:chmod(修改权限,如chmod 755 文件名)、chown(修改所有者,如chown root:root 文件名)。
-
默认权限控制:通过umask设置权限掩码,普通用户umask默认022,文件默认644,目录默认755;避免过宽权限(如777)。
-
特殊权限:谨慎使用SUID、SGID、Sticky Bit,避免权限滥用(如chmod u+s /bin/passwd,赋予临时root权限)。
-
隐藏文件保护:重要配置文件(如/etc/passwd、/etc/shadow)设置为只读,避免被篡改(chmod 400 /etc/shadow)。
三、网络安全
- 防火墙配置:使用firewalld(CentOS 8+)或iptables,放行必要端口(如SSH 22、HTTP 80),禁止不必要端口。
核心操作:firewall-cmd --add-port=22/tcp --permanent(永久放行SSH端口)、firewall-cmd --reload(生效规则)。
- SSH安全配置:修改默认端口(22→自定义端口),禁止root远程登录,限制允许登录的IP。
配置文件:/etc/ssh/sshd_config(修改Port、PermitRootLogin no),修改后重启sshd服务(systemctl restart sshd)。
- 禁止不必要服务:关闭未使用的系统服务(如telnet、ftp),减少攻击面。
相关命令:systemctl stop 服务名、systemctl disable 服务名(禁止开机自启)。
- NAT防护:通过NAT转换,隐藏内网IP,仅暴露必要的公网IP和端口,提升内网安全性。
四、日志监控与审计
- 日志位置:系统日志默认存放在/var/log/目录,核心日志如下:
-
/var/log/secure:账户登录、SSH登录相关日志(重点监控);
-
/var/log/messages:系统整体日志;
-
/var/log/maillog:邮件相关日志。
-
日志查看命令:cat、tail(实时查看,tail -f /var/log/secure)、grep(筛选日志,grep "Failed password" /var/log/secure)。
-
审计:通过auditd服务,监控重要文件的操作(如/etc/passwd),记录操作日志,便于追溯。
五、漏洞修复与系统加固
- 系统更新:定期更新系统补丁,修复已知漏洞,使用dnf(CentOS 8+)或yum(CentOS 7)更新。
相关命令:dnf update -y(批量更新所有包)。
-
禁用不必要的端口和协议:关闭UDP不必要端口,禁止ICMP ping(防火墙配置),减少扫描风险。
-
配置SELinux:开启SELinux(安全增强型Linux),限制进程权限,防止恶意程序越权操作,默认开启,避免随意关闭。
相关命令:getenforce(查看状态)、setenforce 1(临时开启)、修改/etc/selinux/config(永久开启)。
六、常用安全命令
-
查看登录用户:who、w(查看当前登录用户及操作);
-
查看历史命令:history(查看用户执行过的命令);
-
查找可疑文件:find / -perm 4755(查找带有SUID权限的文件);
-
监控端口:netstat -tulnp(查看所有监听端口及对应进程);
-
防火墙状态:firewall-cmd --state(查看firewalld是否运行)。
七、核心总结
Linux系统安全核心是"最小权限原则",即给用户、进程、服务分配最少的必要权限;同时做好"防(防火墙、权限)、查(日志、监控)、修(补丁、漏洞)",从账户、权限、网络、日志多维度加固,防范未授权访问和恶意攻击。