新服务器到手先别急着用:这几件事做完,才能防被黑
购买服务器后,很多人完全不重视服务器的安全问题,确实需要了解常见的一些针对和提升服务器的安全策略,还是非常有必要的。
个人常用的基础策略:
1、开启服务器的定期磁盘快照备份,简单且高效
2、设置复杂的ROOT密码,越复杂越好,否则分分钟被破解
3、安全组中关闭不常用的端口,比如22不常用可以暂时关闭需要的时候再去打开
4、开启WAF防火墙,安全Fail2ban等工具防止暴力破解
常见安全配置
一、系统安全配置
• 更新系统和软件
• 操作系统更新:第一时间更新服务器的操作系统。无论是Windows Server还是Linux服务器,操作系统厂商会不断发布安全补丁来修复已知的安全漏洞。例如,Linux系统可以通过命令`sudo apt update && sudo apt upgrade`(针对基于Debian的系统)或`sudo yum update`(针对基于Red Hat的系统)来更新系统软件包。
• 应用软件更新:如果服务器上安装了数据库(如MySQL)、Web服务器(如Apache、Nginx)等应用软件,也要及时更新到最新版本。以MySQL为例,可以通过其官方提供的更新工具或者通过操作系统的包管理工具来更新。
• 配置防火墙
• 设置防火墙规则:防火墙是服务器安全的重要防线。对于Windows服务器,可以使用Windows防火墙,通过“控制面板”中的“系统和安全”选项进入防火墙设置。对于Linux服务器,可以使用`iptables`或`firewalld`等工具。例如,在Linux中使用`iptables`,可以通过命令`sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT`来允许外部访问80端口(Web服务端口),而对于其他不必要的端口则可以设置拒绝规则,如`sudo iptables -A INPUT -p tcp --dport 1234 -j DROP`(假设1234端口是不必要的)。
• 最小化开放端口:只开放必要的服务端口。例如,如果服务器只提供Web服务,那么只需要开放80(HTTP)和443(HTTPS)端口,其他如FTP(默认21端口)等非必要的服务端口可以关闭,以减少被攻击的入口。
• 配置用户权限
• 创建强密码策略:为所有用户(尤其是管理员用户)设置强密码。密码应该包含大小写字母、数字和特殊字符,长度至少为8位。例如,在Linux系统中,可以通过`sudo passwd username`命令来修改用户密码,并在设置密码时遵循强密码策略。
• 限制管理员权限:不要使用root用户(在Linux系统中)或管理员用户(在Windows系统中)进行日常操作。创建具有普通权限的用户账户来进行日常的服务器管理任务,只有在需要进行系统级的配置更改时才使用管理员账户。例如,在Linux中可以通过`sudo adduser normaluser`来创建普通用户,并通过`sudo usermod -aG sudo normaluser`来赋予该用户sudo权限(如果需要)。
• 使用SSH密钥认证(对于Linux服务器):如果服务器允许通过SSH远程登录,建议使用SSH密钥认证而不是密码认证。首先在客户端生成密钥对(`ssh-keygen`命令),然后将公钥复制到服务器的`~/.ssh/authorized_keys`文件中。这样可以大大提高SSH登录的安全性,避免密码被暴力破解的风险。
二、网络安全检查
• 检查网络配置
• 配置静态IP地址(如果需要):如果服务器需要固定IP地址,应该配置静态IP。在Windows服务器中,可以通过“网络和共享中心”中的“本地连接”属性来设置静态IP地址。在Linux系统中,可以通过编辑网络配置文件(如`/etc/network/interfaces`或`/etc/netplan/*.yaml`,具体取决于系统版本)来设置静态IP。
• 检查DNS设置:确保服务器的DNS设置正确。错误的DNS设置可能会导致域名解析问题,甚至可能被黑客利用来进行DNS劫持等攻击。在Linux系统中,DNS设置通常在`/etc/resolv.conf`文件中,需要确保其中的DNS服务器地址是可靠的(如使用公共DNS服务器8.8.8.8和8.8.4.4,或者使用企业内部的DNS服务器)。
• 进行端口扫描和漏洞扫描
• 使用端口扫描工具:可以使用如`nmap`这样的工具来扫描服务器开放的端口。例如,通过命令`nmap -sS -sV -O server_ip`(将`server_ip`替换为服务器的IP地址)可以扫描服务器的开放端口、服务版本和操作系统信息。这有助于发现意外开放的端口和潜在的漏洞。
• 使用漏洞扫描工具:有许多专业的漏洞扫描工具,如Nessus、OpenVAS等。这些工具可以扫描服务器系统和应用软件的漏洞。扫描完成后,根据扫描报告修复发现的漏洞。例如,如果扫描发现服务器的某个Web应用存在SQL注入漏洞,就需要对Web应用的代码进行修复,确保用户输入经过严格的验证和过滤。
三、数据备份和恢复策略
• 制定备份计划
• 确定备份内容:根据服务器的用途确定需要备份的数据。如果是数据库服务器,需要备份数据库文件;如果是文件服务器,需要备份重要的文件和目录。例如,在Linux系统中,可以使用`tar`命令来备份文件,如`tar -czvf backup.tar.gz /important_directory`将`/important_directory`目录打包压缩备份。
• 设置备份频率:根据数据的重要性和更新频率设置备份频率。对于关键数据,可能需要每天甚至每小时备份一次。例如,对于一个电子商务网站的数据库,由于数据更新频繁,可以设置每小时备份一次数据库。
• 测试备份和恢复
• 定期测试备份文件的完整性:在备份完成后,应该定期检查备份文件是否完整。可以通过校验备份文件的大小、哈希值等方式来验证。例如,在Linux中,可以使用`md5sum`命令来计算备份文件的MD5哈希值,并与之前的哈希值进行对比,以确保文件没有损坏。
• 进行恢复测试:定期进行数据恢复测试,确保在数据丢失或服务器故障时能够成功恢复数据。例如,可以模拟服务器硬盘故障,然后使用备份文件恢复数据,检查恢复后的数据是否完整和可用。
四、日志管理和监控
• 配置日志记录
• 启用系统日志:确保服务器的操作系统日志功能已经启用。在Windows服务器中,可以通过“事件查看器”来查看和管理系统日志。在Linux系统中,日志文件通常位于`/var/log`目录下,如`/var/log/auth.log`记录了认证相关的日志,`/var/log/syslog`记录了系统级别的日志。要确保这些日志文件的权限设置正确,只有授权用户才能访问。
• 配置应用日志:对于服务器上的各种应用软件,也要确保其日志功能正常。例如,对于Apache Web服务器,可以通过编辑`httpd.conf`或`apache2.conf`文件来配置日志路径和日志格式,如`CustomLog "/var/log/apache2/access.log" combined`来指定访问日志的路径和格式。
• 设置监控和警报
• 监控服务器性能和安全指标:可以使用监控工具如Zabbix、Nagios等来监控服务器的CPU使用率、内存使用率、磁盘空间等性能指标,同时也可以监控安全相关的指标,如异常登录尝试次数。例如,在Zabbix中,可以通过创建监控项和触发器来实现对服务器性能和安全指标的监控。如果CPU使用率超过80%或者检测到多次失败的SSH登录尝试,就会触发警报。
• 配置警报通知:当监控指标出现异常时,要能够及时收到警报通知。可以通过电子邮件、短信等方式接收警报。例如,在Nagios中,可以通过配置`contacts`和`contact_groups`来指定接收警报的人员和联系方式,当服务器出现故障或安全问题时,相关人员可以及时收到通知并采取措施。
通过以上这些步骤,可以大大增强新云服务器的安全性,降低被黑客攻击的风险。