Debian Java安全设置实操指南
一 基础环境与安全安装
sudo apt update && sudo apt install openjdk-17-jdkjava -versionsudo update-alternatives --config javaupdate-alternatives --config java 查看):
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64export PATH=$JAVA_HOME/bin:$PATHsource /etc/profile二 Java运行时安全策略
grant {
// 示例:仅允许标准输出,按需最小化授权
permission java.lang.RuntimePermission "getenv.*";
permission java.io.FilePermission "/var/log/myapp.log", "write";
};
java -Djava.security.manager -Djava.security.policy=/etc/java-17-openjdk/security/java.policy -jar app.jar-Dhttps.protocols=TLSv1.2,TLSv1.3
-Djdk.tls.client.protocols=TLSv1.2,TLSv1.3
-Djdk.certpath.disabledAlgorithms=SSLv3,RC4,MD5withRSA
-Djdk.tls.disabledAlgorithms=SSLv3,RC4,DES,MD5withRSA
keytool 管理信任库。三 系统级加固
sudo apt update && sudo apt upgrade -ysudo apt install unattended-upgrades && sudo dpkg-reconfigure unattended-upgradessudo apt install ufwsudo ufw allow OpenSSH、sudo ufw allow 80/tcp、sudo ufw allow 443/tcp、sudo ufw enablePermitRootLogin no、PasswordAuthentication no、可选 Port 2222sudo systemctl restart sshdsudo adduser deploy && sudo usermod -aG sudo deploysudo apt install libpam-pwquality/etc/security/pwquality.conf):minlen=12、dcredit=-1、ucredit=-1、ocredit=-1sudo apt install fail2ban。四 应用层安全要点
http.headers()
.contentSecurityPolicy("default-src 'self'")
.and().csrf().csrfTokenRepository(CookieCsrfTokenRepository.withHttpOnlyFalse())
.and().requiresChannel().anyRequest().requiresSecure();
五 快速检查清单
| 检查项 | 关键要点 | 验证命令或路径 |
|---|---|---|
| Java 版本与来源 | 使用受支持的 OpenJDK,及时更新 | java -version,apt policy openjdk-17-jdk |
| 多版本管理 | 使用 alternatives 统一默认版本 | sudo update-alternatives --config java |
| 安全管理器与策略 | 启用 SecurityManager,策略最小化 | 启动参数含 -Djava.security.manager 与 -Djava.security.policy=...;策略文件如 /etc/java-17-openjdk/security/java.policy |
| 加密协议 | 仅启用 TLSv1.2/1.3,禁用弱算法 | 启动参数含 -Dhttps.protocols=TLSv1.2,TLSv1.3 等 |
| 系统与防火墙 | 持续更新、UFW 最小化放行 | sudo apt update && sudo apt upgrade -y,sudo ufw status |
| SSH 安全 | 禁用 root 口令登录、使用密钥 | /etc/ssh/sshd_config 中 PermitRootLogin no、PasswordAuthentication no |
| 口令策略 | 复杂度与长度要求 | /etc/security/pwquality.conf 中 minlen=12 等 |
| 登录防护 | Fail2ban 监控暴力尝试 | sudo systemctl status fail2ban |