linux & tomcat安全配置

Linux服务器安全
[b]配置
账户密码策略[/b]
强制口令的最小长度,组成要素,如口令需要设置在6位以上,需有数字和字母的组成;

SSH会话超时断开
修改/etc/ssh/sshd_config
ClientAliveInterval 60 //单位秒
ClientAliveCountMax 20 //指如果发现客户端没有相应,则判断一次超时,这个参数设置允许超时的次数,则代表允许超时 1200秒 = 20分钟

限制登录
/etc/pam.d/sshd 增加
session   required  pam_limits.so

限制登录次数
/etc/security/limits.conf 增加
redhat hard maxlogins 2  //hard参数是对redhat用户登陆次数的硬限制。登陆次数不能达到2,即只能登陆一次。

软件防火墙开端口
修改/etc/sysconfig/iptables
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)

服务器被哪些ip登录过

grep "Failed password for root" /var/log/secure | awk '{print $9}' | uniq -c | sort -nr
# awk分割,uniq -c 剔重 + 显示重复次数 ,  sort -nr 降序(-r) + 数值排序(-n)

find ./ -type f -name "messages*" | xargs grep "root" | more

查看用户最后登录时间
last  //当前用户最近登录记录
lastlog //查看用户最后登录时间
Web容器安全
Tomcat v7.0安全
禁用Tomcat用户
修改conf/tomcat-user.xml,注释所有user、role
禁用默认应用
删除webapp目录下所有默认应用。
清除work/Catalina/localhost下所有缓存内容。
日志记录变更
修改conf/server.xml中默认为:
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt"
     pattern="%h %l %u %t &quot;%r&quot; %s %b" />
pattern可改为:%a %l %u %t %S &quot;%r&quot; %s %b
ip,用户,时间,会话,url,Http返回码,返回字节数
具体格式可参见http://tomcat.apache.org/tomcat-7.0-doc/config/valve.html
连接配置
修改conf/server.xml中<Connector port="80" protocol="HTTP/1.1" ….
(可参见http://tomcat.apache.org/tomcat-7.0-doc/config/http.html)
最大队列长度acceptCount=”100”
acceptorThreadCount
address
connectionTimeout
connectionUploadTimeout
keepAliveTimeout
最大连接数:maxConnections=”10000”
maxExtensionSize
maxHttpHeaderSize
maxKeepAliveRequests
maxThreads
minSpareThreads
连接超时30s:connectionTimeout="20000"
默认页设置
修改conf/web.xml中<error-page>
404、500应指向特定错误页面
增加jsp特定异常处理:
<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error.jsp</location> 
</error-page>
jsp页面中加<%@ page errorPage="/error.jsp" %>
典型的error.jsp错误页面的程序写法如下: 
<%@ page contentType="text/html;charset=GB2312"%>
<%@ page isErrorPage="true"%>
<html>
<head><title>错误页面</title></head>
<body>
出错了:</p> 错误信息:<%=exception.getMessage() %><br> 
Stack Trace is : <pre><font color="red">
<% java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
java.io.PrintWriter pw = new java.io.PrintWriter(cw,true);
exception.printStackTrace(pw);
out.println(cw.toString()); %>
</font></pre>
</body>
</html>

禁用显示文件列表
修改conf/web.xml中
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>

防火墙封8005端口
conf/server.xml中默认为:<Server port="8005" shutdown="SHUTDOWN">,需要通过防火墙封堵。

Java操纵文件权限控制
修改conf/catalina.policy中配置

猜你喜欢

转载自iamh.iteye.com/blog/2286036