HTTPS不是可选项是必选项
2024年了还有网站没用HTTPS的,浏览器地址栏直接给你标个不安全,用户看了就跑。更关键的是,百度和Google都明确表示HTTPS是排名因素之一,不用HTTPS你的SEO也会受影响。
SSL证书现在免费的渠道很多:Let's Encrypt、阿里云免费DV证书、腾讯云免费证书。配好后用SSLLabs的SSL Server Test跑一下评分,拿到A以上才算合格。
配置的时候注意:强制HTTPS跳转,所有HTTP请求301到HTTPS;开启HSTS响应头,告诉浏览器以后只用HTTPS访问你的站点;禁用SSLv3和TLSv1.0,至少TLSv1.2以上。
装一个WAF 等于请了个24小时保安
WAF(Web应用防火墙)能拦截SQL注入、XSS、CC攻击、扫描器探测等常见Web攻击。软件层面的ModSecurity免费开源,配合OWASP Core Rule Set规则库,能防护绝大部分已知攻击。
如果不想自己配,用云WAF更省事。阿里云、腾讯云都有WAF服务,把域名解析指向WAF节点,WAF节点再回源到你的服务器。云WAF的好处是规则库自动更新,不用你管,缺点是按月付费。对于郑州的中小企业来说,一个月两三百块的WAF费用,比被攻击后请人处理便宜多了。
二七广场附近一家做餐饮加盟的公司,网站被竞争对手用扫描器扫了一个月,漏洞没扫到但日志被写满了两次。后来上了云WAF,扫描请求直接在WAF层就被拦截了,服务器日志干净了不少。
防火墙只开必要端口
服务器默认应该把所有端口都封掉,只开放需要的端口。Web服务器就开80和443,SSH端口改成非标准端口(不要用22),数据库端口3306绝对不对公网开放,Redis端口6379也是。
用iptables或者firewalld配置。基本原则:默认DROP,按需ACCEPT。先deny all,再一条条加放行规则。管理端口(SSH)只允许特定IP访问。
很多郑州机房默认装好系统后防火墙是关的,或者规则很宽松。拿到服务器第一件事就是收紧防火墙规则。别嫌麻烦,这一步做好了能挡掉80%的自动化扫描攻击。
系统补丁及时打
操作系统和Web应用的漏洞补丁,出了就要及时打。特别是那些有CVE编号的高危漏洞,攻击者利用这些漏洞的速度通常在补丁发布后48小时内。
2014年Heartbleed漏洞、2017年Spectre和Meltdown、2021年Log4Shell,每一次大漏洞曝光之后,互联网上就有大量扫描器在扫哪些服务器没打补丁。你不打补丁就是在裸奔。
配一个自动安全更新。CentOS用yum-cron,Ubuntu用unattended-upgrades,只自动安装安全补丁,不自动装功能补丁。每周手动检查一次更新列表,确认没有遗漏。
权限最小化原则
Web目录权限:目录755,文件644。上传目录禁止执行PHP。Web进程用www-data或者nginx用户跑,不要用root。
数据库权限:Web应用用的数据库账号只给SELECT INSERT UPDATE DELETE权限,不给DROP ALTER CREATE权限。管理数据库的时候用单独的管理员账号。
文件权限:配置文件(数据库连接信息等)权限设600,只有文件所有者能读写。SSH的authorized_keys权限也是600。
说白了就是每个用户和进程只给它需要的最小权限。Web进程能读的就不要给写权限,能执行的就不要给删除权限。权限越紧,被攻击后的影响范围越小。
关闭不必要的服务和组件
服务器装完系统后,停掉不用的服务。sendmail、postfix如果不发邮件就关掉。FTP改用SFTP。Telnet绝对不用。NFS、Samba不需要就关掉。每多开一个服务就多一个攻击面。
PHP的php.ini里disable_functions禁用危险函数:exec、system、passthru、shell_exec、proc_open、popen、eval、assert。这些函数被攻击者利用的话可以直接执行系统命令,正常Web应用用不到这些函数。
管理后台路径改掉,不要用admin、manager这种默认路径。加一层HTTP Basic Auth认证,就算攻击者找到了后台地址也过不了第一道认证。
日志监控和告警
日志不看不等于没有。配一个日志监控,关键事件实时告警。SSH登录失败超过5次告警、Web出现500错误告警、磁盘使用率超过80%告警、特定URL被频繁访问告警。
郑州惠济区一家公司的运维就是靠日志告警发现了一次入侵尝试。凌晨2点收到SSH登录失败告警,一个海外IP在爆破root密码。因为告警及时,运维立刻封了那个IP并改了SSH端口,攻击者没得手。
定期安全扫描
每月做一次安全扫描。用Nessus或者OpenVAS扫描系统漏洞,用Nikto或者AWVS扫描Web漏洞,用CMSeek扫描CMS已知漏洞。发现漏洞及时修复,修复完再扫一遍确认。
这8项基础配置做完,你的网站安全水平就超过大多数郑州企业了。安全防护不需要多高端的技术,关键是要执行到位并且持续维护。做了不做是天壤之别,别等到出事了才后悔。