Linux运维安全实践清单

放肆的年华 提交于 2019-11-29 08:36:53

Linux运维的安全防护

文档随时会更新,最新更新时间:20190901

此文档是一个可以实际操作实时更新Linux运维安全相关的实施清单,用于对linux运维相关安全防护的计划 > 实施 > 检查 > 改进

1 安全原则

在实施安全措施之前规定一些基本安全原则,做到心中有丘壑,眉目作山河

  • 信息和系统安全防御是多层面的纵深防御,按从外层到内层的顺序,主要包括5层:物理安全防御 > 网络安全防御 > 主机安全防御 > 应用安全防御 > 数据安全保护
  • 最小权限法则,给予用户、程序、系统最小的仅能完成其功能的权限
  • 尽量使用白名单而不是黑名单
  • 使用入侵检测系统及早发现黑客的攻击行为
  • 定期扫描系统漏洞、Rootkit、病毒
  • 培养运维人员的安全意识,编写运维安全文档统一安全规范

2 物理安全防御

第一层的防御就是物理层防御,不论机房大小都应该重视

  • 机房锁上门,避免有人拿大锤进机房砸了服务器、路由器、交换机、空调
  • 使用 UPS,防止断电引起的服务器停机

网络安全防御

网络是能摸到你服务器的最直接的触手,需要严加防范

  • 使用网络防火墙,在网络边界使用硬件防火墙如juniper、cisco等品牌的硬件防火墙,在操作系统层使用软件防火墙如 iptables,进行细粒度的网络访问控制
  • 对于部署到公有云的网络安全防御,要尽量尽量减少暴露的云服务器和端口的数量,使用安全组设置服务器的网络访问控制
  • 使用堡垒机,如开源的 jumpserver
  • 防御 DDos 攻击,使用云厂商提供的 DDos 防御服务,使用 CDN 加大承载能力
  • 搭建 VPN,连接不同地域的网络或服务器,用于远程办公人员使用,或者连接不同的局域网
  • 网络安全问题的分析工具,可以使用 tcpdump、wireshark

3 主机安全防御

突破了网络防御的触手到达了你的服务器,别让他继续下去

3.1 Linux用户安全管理

  • 禁止 root 用户 ssh 登陆服务器,建立单独的用户用于 ssh 登陆,使用密钥登陆而不是密码
  • 用户密码要保证复杂度杜绝弱口令,使用弱密码工具 John ther ripper 或 hydra 检查弱密码
  • 安全的配置 sudo,赋予不同用户满足需求的最小权限
  • 限定可以使用su的用户,防止未授权的用户切换成root

3.2 文件系统安全

  • 使用 sXid 监控 SUID 和 SGID 类型文件的变化
  • 使用 extundelete 恢复已删除的文件
  • 使用 srm 和 dd 命令安全擦除敏感文件

4 Linux 应用安全

Linux 应用安全主要包括安装在 Linux 上的应用的相关安全设置,根据一项调查显示网站高危漏洞最常见的是跨站脚本攻击、SQL 注入、PHP 错误信息泄漏,数据库运行时错误等

  • 使用开源web防火墙(WebApplication Firewll,WAF),Apache 可以使用 ModSecurity,Nginx 可以使用 NAXSI,共有用可以购买云WAF防火墙
  • 使用 HTTPS 避免中间人攻击和防止网络上的嗅探,
  • PHP 安全配置
    • 注意 PHP 开发框架的漏洞
    • 配置文件中禁止错误信息显示
    • 禁止 PHP 打开远程文件
    • 禁止PHP包含远程文件
    • 在 Cookie 中设置 “HTTPonly” 属性等一系列安全配置
  • Tomcat 安全配置
    • 删除 webapps 目录下默认应用
    • 为 Tomcat 设置专用的启动用户
    • 关闭 WAR 包自动部署
    • 自定义错误页面
  • MySQL 安全
    • 部署在仅有内网的服务器上
    • 通过防火墙设置为仅 Web 服务器可访问
    • 使用独立的普通用户运行 MySQL 服务
    • 删除安装后的测试数据库
    • 用户授权采用授权最小化原则
    • 定期备份数据,防止数据丢失

使用 Linux 安全扫描工具

  • 使用网络扫描工具 masscan、nmap 扫描和发现对外开放的端口并识别端口对应的应用
  • 使用开源 Web 漏洞扫描工具如 Nikto2、OpenVAS 扫描 Web 漏洞
  • 使用 SQLMap 进行 SQL 注入渗透测试

部署入侵检测系统

  • 使用开源入侵检测系统 OSSEC 或商业入侵检测系统青藤云、安骑士
  • 使用Kippo搭建SSH蜜罐捕获入侵记录

Linux RootKit和病毒木马检查

  • 使用 Chkrootkit、Rkhunter 扫描 Rootkit 和检查系统关键文件
  • 使用 ClamAV 扫描病毒木马
  • 使用 LDM 检查 Webshell

安全日志收集

  • 搭建 Syslog-ng 收集远程服务器的安全日志

威胁情报收集

  • 通过威胁情报网站收集威胁情报,比较著名的有 微步在线威胁情报社区、360威胁情报中心、IBM威胁情报中心

入侵后检测

如果所有的防御手段失效,被攻击后要及时排查处理

  1. 检测常用程序是否被替换,有则修复
  2. 使用 chkrootkit 和 rkhunter 扫描 Rootkit
  3. 使用 ClamAV 扫描病毒
  4. 检测隐藏目录和文件
  5. 查看近期登陆记录
  6. 查看是否有异常进程、隐藏进程、查看异常进程打开的端口及文件
  7. 检查网络连接和监听端口,特别注意本季主动连接到外部地址的连接
  8. 查看arp记录是否正常
  9. 检查安全日志、应用日志、bash_history
  10. 检查是否有Webshell
  11. 重装系统,更改原密码
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!