云服务器安全方案
软件选型
Web服务器选择:
Apache+PHP(稳定,多元化,占用资源较多)
Nginx+PHP-FPM(高性能,高并发)
数据库服务器选择:
Mysql5.6
反代服务器选择:
Haproxy(算法多,完善,专一)
Nginx
安全防护
服务器安全防护:
因为是公网IP,所以要锁定ssh访问,创建ssh的登录密码
Root密码复杂性要求,需要时使用sudo命令授权
Iptables控制
ssh拒绝root登录
限制shelll命令记录条目
在/etc/skel/.bash_logout文件中加入rm –f$HOME/.bash_history
修改ssh监听端口
有必要的话可以禁ping
chattr命令给用户密码文件、配置文件和重要文件加上不可更改属性
十、 chmod+chown控制目录文件的权限
web服务器安全:
关闭服务器标记,server_tokens off
设置自定义缓存限制缓冲区溢出攻击的可能性
设置timeout防止DOS攻击(看需要)
限制用户连接数防止DOS攻击(看需要)
配置nginx的HTTPS支持
为网页根目录提供单独的存储空间,对这些文件的权限进行统一管理
加固/etc/sysctl.conf
net.ipv4.icmp_ignore_bogus_error_responses= 1# 开启SYN洪水攻击保护
net.ipv4.tcp_syncookies= 1# 开启并记录欺骗,源路由和重定向包
fs.file-max= 65535
net.ipv4.ip_local_port_range= 2000 65000
编译安装,自定义模块
Iptables控制
十、 限制访问IP
Localhost/{
Deny IP
Allow IP
…
}
十一、 Nginx漏洞避免
动态内容误判:攻击者可以通过一张包含php后门代码的图片获取webshell;预防方式:在配置文件中田间 if ( $fascgi_script_name ~\..*\/.*php ) { return 403 }
错误配置:错误的网站根目录配置,导致目录遍历漏洞
数据库服务器安全:
启动前初始化配置
mysql_secure_installation
禁用或限制远程访问
skip_name_resovle=ON
设置root用户的口令并改变其登录名
SET PASSWORD FOR ‘root’@’localhsot’ = ’PASSWORD‘
可以改变root的名字,也可以授权一个新用户管理,禁用root
Update user set user=”newroot”where user=”root”
提高本地安全性,防止mysql对本地文件的存取
Set-varable=local-infile=0
移除匿名账户和test测试库
数据文件目录的权限为,mysql用户和mysql组
移除和禁用.mysql_history文件,export mysql_histfile=/de/vnull
Ln –s /dev/null.mysql_history
保持稳定版本,5.5目前最稳定,但是5.6集成了很多新功能,补丁发布比较快
十、 启用日志,保存错误日志,访问日志等
十一、 有良好的数据库备份策略,温备、热备、冷备等。
温备:mysqldump,支持所有存储引擎
热备:lvm2的快照,几乎热备,借助于文件系统管理工具
冷备:cp,tar等命令
代理服务器安全:
系统内核参数设置
超时时长
最大连接数
外部监控,日志分析
本文出自 “之乎者也” 博客,请务必保留此出处http://luoj5.blog.51cto.com/9389984/1831566
原文:http://luoj5.blog.51cto.com/9389984/1831566