在 Debian 上运行 JSP(通常是 Tomcat / Jetty 等 Java Web 容器) 时,“安全保障”可以从 系统层、Web 容器层、应用层、运维层 四个方面来做。下面给你一套实用、可落地的清单。
apt install --no-install-recommends tomcat9
systemctl disable bluetooth
apt update && apt upgrade -y
建议开启自动安全更新:
apt install unattended-upgrades
dpkg-reconfigure unattended-upgrades
apt install ufw
ufw allow 22
ufw allow 8080
ufw enable
vim /etc/ssh/sshd_config
PermitRootLogin no
systemctl restart ssh
useradd -r -s /usr/sbin/nologin tomcat
chown -R tomcat:tomcat /var/lib/tomcat9
rm -rf /var/lib/tomcat9/webapps/docs
rm -rf /var/lib/tomcat9/webapps/examples
rm -rf /var/lib/tomcat9/webapps/ROOT
vim /etc/tomcat9/server.xml
注释或删除:
<Connector port="8009" protocol="AJP/1.3" />
manager 和 host-manager<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127.0.0.1" />
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
apt install certbot
certbot certonly --webroot -w /var/lib/tomcat9/webapps -d jsp.example.com
在 server.xml 中配置 8443。
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/error.jsp</location>
</error-page>
web.xml 中:
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
response.setHeader("X-Content-Type-Options", "nosniff");
response.setHeader("X-Frame-Options", "DENY");
response.setHeader("Content-Security-Policy", "default-src 'self'");
/var/log/tomcat9/journalctl -u tomcat9chmod 750 /var/lib/tomcat9
chmod 640 /etc/tomcat9/*
nikto、OWASP ZAPSpotBugs / SonarQubetar czf tomcat-backup.tar.gz /var/lib/tomcat9 /etc/tomcat9
Debian + JSP 安全 = 系统最小化 + 容器加固 + 代码安全 + 持续运维
如果你愿意,我可以:
你现在是 学习 / 生产环境 / 面试 用?