4.3.1 Nginx
安全加固-Nginx
禁止显示版本
server_tokens off;
或者通过源码编译的时候修改
/src/core/nginx.h
#define NGINX_VERSION "1.9.15"
#define NGINX_VER "nginx/" NGINX_VERSION
禁止上传目录禁止php文件
可写目录,不解析;解析目录,不可写
单个目录
location ~ /upload/.*\.(php|php5)?$ {
deny all;
}
多个目录
location ~* ^/(administrator|upload)/.*\.(php)$ {
deny all;
}
禁止访问所有目录下的敏感文件
location ~. *\.(sql|log|txt|rar|zip|sh|py|svn|git) {
deny all;
}
禁用不必要的HTTP方法
if ($request_method !~ ^(GET|HEAD|POST)$)
{
return 405;
}
Nginx、php-fpm运行帐号及组为nobody Lua + nginx
4.4.1 tomcat
安全加固-Tomcat
tomcat弱口令拿Shell
常见弱口令账户密码:
tomcat tomcat admin 空 admin admin admin 123456
补丁和漏洞管理
必须及时安装与安全性相关的tomcat补丁 http://tomcat.apache.org/lists.html#tomcat-announce
设置Tomcat服务最小权限
useradd -s /sbin/nologin tomcat
/usr/lib/systemd/system/tomcat8.service
service下添加 User=tomcat Group=tomcat
chown -R tomcat:tomcat /usr/local/tomcat
网络级限制
tomcat8上已经禁止所有,只允许本地访问。
/usr/local/tomcat/webapps/manager/META-INF/context.xml
<Valve className="org.apache.catalina.valves.RemoteHostValve"
allow=".*\.admins\.domain\.com"
/>
用户管理
tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-jmx"/>
<role rolename="manager-status"/>
<user username="admin" password="123ccc" roles="manager-gui,manager-script,manager-jmx,manager-status"/>
http 验证
<role rolename="users"/>
<user name="xx123"password="12345678" roles="users"/>
隐藏tomcat版本信息
修改$CATALINA_HOME/conf/server.xml,在Connector节点添加server字段
/usr/local/tomcat/lib/org/apache/catalina/util
关闭自动部署
在$CATALINA_HOME/conf/server.xml中的host字段
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
session超时
/conf/web.xml
<session-config>
<session-timeout>20</session-timeout>
</session-config>
启用cookie的HttpOnly属性
CATALINA_BASE/conf/context.xml
<Context useHttpOnly='true' .../>