你的服务器够安全吗
点击上方“码农沉思录”发现更多精彩前言近期服务器经常被暴力扫描、攻击, 故周末花时间打理下服务器, 将一些可能存在的风险处理掉. 笔者根据实践总结出一份简单的防范措施列表, 希望能对你有帮助.阅读本文你能收获到:一. 防火墙防火墙采用白名单策略, 只开放必要端口. 如: 80/443以及ssh登录端口.而数据库、缓存等端口, 最好只允许本地访问, 若需要调试, 建议使用白名单IP、代理等方法进行连接. 二. 利用内网穿透工具 参考文档:对于有调试需求的服务器而言, 数据库、缓存、消息队列等端口需要开放. 而直接开放端口会给服务器带来不必要的安全隐患. 此时我们必须对访问者进行限制, 如: IP白名单、VPN等. 除此之外, 笔者推荐一个内网穿透工具用来辅助建立调试环境 ——FRPFRP是一个可用于内网穿透的高性能的反向代理应用, 有多种穿透方式,可以指定端口进行代理. 我们可以在服务器启动服务端(frps)和客户端(frpc)两个服务服务器安全, 本地客户端的frpc通过frps监听的唯一端口与服务端的frpc建立连接, 这样就能将服务器上只能内部访问的端口映射到开发者电脑本地端口.使用FRP的优势: 指定端口、可压缩流量、可加密、服务端只需要暴露frps的端口. 三. 隐藏无用信息参考文档:1). #proxy_hide_header2). #server_tokens3. #fastcgi_hide_header通过服务器返回的信息, 攻击者能从中发现一些漏洞, 比如nginx版本、所使用的web服务器等. 而这些信息对于用户来说都是非必要的. 笔者随便找了个网站查看, 如图: 这些细节都可能为攻击者提供途径. 所以有必要屏蔽掉这些信息. proxy_hide_header {Your-Header}: nginx中, 通过proxy_hide_header可以隐藏掉上游服务返回的某些header. server_tokens off:server_tokens是nginx版本信息开关, 可以开启或隐藏错误页或header的Server字段后面带的版本号. fastcgi_hide_header X-Powered-By: 如果您使用的是php-fpm, 这个配置可以隐藏掉header中php及版本信息. 配置完成后执行nginx -s reload后配置即生效.四. 限流参考文档:用户正常的访问行为, 不会产生过于频繁的请求, 限流可以防止某些不安分的IP因某些目的而频繁访问服务器而导致资源耗尽, 影响正常用户的访问体验.一般地, 我们可以通过nginx配置ngx_http_limit_req_module进行限流:
|