赞
踩
为保障服务器的安全性,通常需要对服务器做一些安全配置,现介绍一下Linux部分的安全配置,以下命令适用于Centos。
要求 | 操作步骤 |
---|---|
不应存在除root之外UID为0的用户 | (1)输入命令awk -F: ‘($3 == 0) {print}’ /etc/passwd 确保只有root用户UID为0(2)如果有则运行sudo userdel –r username删除 |
修改默认账户的默认密码,不能存在空密码用户 | (1) 修改密码:sudo passwd username(2)检查密码字段是否为空:sudo awk -F: ‘($2 == “”) {print}’ /etc/shadow |
应及时删除或停用多余的、过期的账户,避免共享账户的存在,将无用账户删除 | (1)查看可登录账户:sudo cat /etc/passwd 、 awk -F: ‘KaTeX parse error: Undefined control sequence: \/ at position 6: 7 ~ /\̲/̲bin\/(bash|sh|z…/ {print $1}’(2) 禁用账户:sudo usermod -L username(3) 删除账户:sudo userdel –r username |
密码的生命周期最大为 90 天,密码可以被立即修改,密码的最小长度为 8 位,密码到期的提醒,一般建议 7 天 | (1)查看并修改 login.defs 文件:vim /etc/login.defs(2)检查并修改如下内容:PASS_MAX_DAYS 90 #一个密码可使用的最大天数、PASS_MIN_DAYS 0 #两次密码修改之间最小的间隔天数、PASS_MIN_LEN 8 #密码最小长度、PASS_WARN_AGE 7 #密码过期前给出警告的天数 |
使用复杂的密码策略,应包含大小写字母,数字和特殊字符(如!@#¥&*),避免使用连续字符或重复字符,密码长度应不小于8个字符。 | (1) 检查/etc/pam.d/password-auth和/etc/pam.d/system-auth,确认已包含支持pam_pwquality.so模块(2)编辑/etc/security/pwquality.conf文件,包含如下配置:retry=3 //最多允许3次重试输入密码、minlen=8 //密码最小长度为8个字符、difok=3 //密码中至少有3个字符不能与前面密码中的字符相同、ucredit=-1 //至少包含一个大写字母、lcredit=-1 //至少包含一个小写字母、dcredit=-1 //至少包含一个数字、ocredit=-1 //至少包含一个特殊字符、maxrepeat=0 //不允许字符重复、maxsequence=0 //不允许字符连续序列 |
要求 | 操作步骤 |
---|---|
对于系统重要文件,为每个用户和用户组分配适当的权限,并避免过度授权。 | (1)查看关键目录的用户对应权限参考命令:ls -l /etc/passwd /etc/shadow /etc/group /etc/hosts(2)参考配置操作:通过chmod命令对目录的权限进行实际设置。1、/etc/passwd /etc/group所有用户都可读,root用户可写 、配置命令:chmod 644 /etc/passwd /etc/group、2、/etc/shadow /etc/hosts只有root可读 、配置命令:chmod 600 /etc/shadow /etc/hosts、3、个别特殊环境,对文件进行锁定、chattr +i /etc/passwd、chattr +i /etc/shadow |
Web等应用应设置站点文件访问权限,避免目录遍历。 | 管理员根据系统配置 |
站点配置文件仅限管理员查阅、修改。 | 管理员根据系统配置 |
要求 | 操作步骤 |
---|---|
确定适当的umask值,一般而言,推荐的默认值为022,它会为新创建的文件设置644权限,为新创建的目录设置755权限。 | (1)编辑~/.bashrc(仅适用于当前用户)或/etc/profile(适用于系统中的所有用户)。(2)在配置文件中添加或修改umask设置,如果没有,则添加以下行:umask 022(将022替换为您希望使用的umask值。)(3)重新加载配置文件,使更改生效:source ~/.bashrc或者source /etc/profile |
禁用或限制远程登录访问权限,仅允许授权用户使用。实施虚拟专用网络 (VPN) 或其他安全通道来保护远程访问连接。 | (1)编辑/etc/ssh/ssh_config或者/etc/ssh/sshd_confi文件(ssh_config是客户端配置文件,sshd_config是服务器配置文件),增加如下配置内容(注释内容仅做参数解释,不需在配置文件体现):PermitRootLogin no //禁用root用户的远程登录、AllowUsers user1 user2 //允许登录的用户LogLevel INFO //记录登入登出日志、Protocol 2 //启用SSH v2、MaxAuthTries 5 //密码尝试失败最大次数为5、PermitEmptyPasswords no //禁用SSH空密码用户登录、ClientAliveInterval 1800 //30分钟空闲会话退出、ClientAliveCountMax 0 //空闲会话结束前不发送确认(2)重新启动SSH服务器,以使更改生效:sudo service ssh restart 或者sudo systemctl restart sshd |
如果存在文件共享,应禁止匿名访问共享。 | (1)对于Samba共享:编辑/etc/samba/smb.conf文件。对于NFS共享:编辑/etc/exports文件。(2)找到共享配置部分,共享配置通常以方括号[sharename]开始,找到或添加以下行:guest ok = no |
查找未授权的SUID/SGID文件,调整非重要文件权限 | 命令:find / -type f –perm /6000 2>/dev/null、若存在非重要文件,可使用:chmod 644 “文件名” 命令、修改文件的权限 |
开启系统防火墙,并设置服务开启自启动 | (1)检查防火墙状态:sudo firewall-cmd –state(2)如果防火墙当前未运行,启动防火墙:sudo systemctl start firewalld(3)设置防火墙开机启动:sudo systemctl enable firewalld |
要求 | 操作步骤 |
---|---|
启用日志安全审计功能,监控并记录关键事件和活动,日志至少保存180天。 | (1)Centos检查是否开启系统日志:ps -aux|grep syslog 、若果没有开启,则安装并运行服务:sudo yum install rsyslog、sudo systemctl start rsyslog(2)检查syslog服务是否在启动服务器的时候开启。systemctl is-enabled rsyslog:设置开机自启:systemctl enable rsyslog(3)启动 auditd 服务: systemctl start auditd |
确保日志文件的保留和定期备份,以便后续调查和审计。 | 管理员配置 |
应严格限制开放的端口及服务,仅开放必要的端口。
包括但不限于以下风险端口,不应对外开放。内部远程使用ssh(22).
风险端口清单 | 协议 |
---|---|
20/21 | ftp |
22 | ssh |
23 | telnet |
25 | smtp |
53 | dns |
111 | rpc |
1433 | sqlserver |
3306 | mysql |
161/162 | snmp |
2049 | 网络文件系统(nfs) |
操作步骤:
(1)查看当前系统上开放的端口和运行的服务: sudo ss –tunlp 禁用不必要的服务: sudo systemctl disable “服务名称” (2)配置防火墙规则,允许必要的端口和服务,例如: 开放服务: sudo firewall-cmd --zone=public --add-service=服务名 –permanent 关闭服务: sudo firewall-cmd --zone=public --remove-service=服务名 –permanent 开放端口: sudo firewall-cmd --zone=public --add-port=<端口号>/<协议类型> --permanent 关闭端口: sudo firewall-cmd --zone=public --remove-port=<端口号>/<协议类型> --permanent 根据具体需求,添加或删除其他端口和服务 (3)重新加载防火墙规则: sudo firewall-cmd –reload (4)查看 firewalld 规则: sudo firewall-cmd --list-all
Ubuntu的命令和Centos差不多,可以对照要求自行修改,就没列举了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。