在 Debian 上“Java 安全配置”通常包含几个层面:系统/运行环境安全、JVM 安全参数、Java 应用安全(Web/服务)、依赖与漏洞管理。下面按实战角度给你一个可落地清单。
sudo apt update
sudo apt install -y openjdk-17-jdk
推荐:
查看版本:
java -version
创建专用用户:
sudo useradd -r -s /bin/false javasvc
sudo -u javasvc java -jar app.jar
java -Djava.security.manager -Djava.security.policy=my.policy -jar app.jar
Java 17+ 已弱化 SecurityManager,更推荐用容器/系统权限控制
java \
-Djava.rmi.server.useCodebaseOnly=true \
-Dcom.sun.jndi.rmi.object.trustURLCodebase=false \
-Dcom.sun.jndi.ldap.object.trustURLCodebase=false \
-jar app.jar
防止:
示例:
client_max_body_size 10m;
limit_req_zone $binary_remote_addr zone=java:10m rate=10r/s;
sudo ufw allow 80,443/tcp
sudo ufw deny 8080/tcp
sudo apt install -y debsecan
debsecan
mvn org.owasp:dependency-check-maven:check
gradle dependencyCheckAnalyze
-Dlog4j2.formatMsgNoLookups=true
/opt/app # 750 javasvc
/etc/app # 640
/var/log/app # 750
禁止:
FROM eclipse-temurin:17-jre
USER nonroot
COPY app.jar /app.jar
ENTRYPOINT ["java","-jar","/app.jar"]
配合:
ps -ef | grep java
❌ root 运行 Java
❌ 开放 0.0.0.0:8080 到公网
❌ 使用旧 JDK 8 无补丁
❌ 信任远程 codebase
❌ 忽略依赖漏洞
如果你能告诉我:
我可以给你一份更精准的安全配置模板。