实训第八天
安全加固
Windows加固
账户管理和认证授权
- 定期检查并删除与无关的账户
步骤:win+R>compmgmt.msc>系统工具>本地用户和组>用户>右键选中要删除的用户>删除
- 不显示最后的用户名
步骤:win+R>secpol.msc>本地策略>安全选项>交互式登录:不显示上次的用户名>已启用
- 密码复杂度,打开步骤同上,点击账户策略下的密码策略,启用密码必须符合复杂性要求
- 密码最长使用期限,设置为不长于90天
- 账户锁定策略,设置为不大于10次
- 本地关机权限只分配给administrators组
账户策略>账户锁定策略,找到关闭系统属性,删除其他用户或组
日志配置操作
- 日志配置
- 配置日志大小
IP协议安全配置
- SYN防护启用
Linux加固
添加口令策略
- 使用命令 vi /etc/login.defs 修改配置文件
- 设置连续输错三次密码,账号锁定五分钟。使用命令 vi /etc/pam.d/common-auth修改配置文件,在配置文件中添加 auth required pam_tally.so onerr=fail deny=3 unlock_time=300
SSH服务安全
使用命令 vim /etc/ssh/sshd_config 编辑配置文件
Nginx加固
日志配置
备份nginx.conf,修改配置和定义日志路径
禁止目录浏览
限制目录执行权限
错误页面重定向
错误重定向页面放在网站根目录下
最佳经验实践
未隐藏版本信息前
隐藏版本信息后,版本信息没了
限制HTTP请求方法,防止PUT和DELETE操作服务器文件
限制IP访问,这里我们限制物理机IP访问根目录
尝试ban掉整个IP访问
控制超时时间
PHP加固
屏蔽PHP错误输出
先写了个错误的php文件,可以看到输出了错误文件的路径和小部分代码,非常危险
修改:display_errors=Off,可以看到无法显示页面
屏蔽PHP版本
未屏蔽如下,攻击者轻而易举的了解到你使用的PHP版本,进而去找相应漏洞
我们修改:expose_php=Off
关闭全局变量
如果开启了全局变量,则服务器端PHP脚本可以用$username和$password来获取到用户名和密码,这会造成极大的脚本注入危险
但是php.ini中没有register_globals=On
开启magic_quotes_gpc
这个需要php<5.4,我们的大于了已经被修复