Appearance
🔒 SonarQube 快速入门
📌 常见安全检查工具概述
何时使用 | 工具 | 说明 | 用法 |
---|---|---|---|
部署前 | SonarQube | 安全 & 质量检查 | 部署服务,Jenkins 通过命令调用 |
部署前 | OWASP Dependency-Check | 根据漏洞库做依赖扫描 | 插件 |
运行中 | AppScan | 漏洞扫描工具 | 部署并扫描 |
运行中 | AWVS | 漏洞扫描 | 部署并扫描 |
运行中 | Nessus | 漏洞扫描 | 部署并扫描 |
运行中 | HM(河马) | 漏洞扫描 & WebShell 检测 | 部署二进制 |
运行中 | 绿盟、奇安信、云安全中心等 | 漏洞扫描 & 安全防护 | 部署并扫描 |
运行中 | Trivy、Clair 等容器扫描工具 | 容器环境漏洞 & 配置扫描 | 容器化部署 |
什么是 SonarQube
SonarQube 是一个开源的代码质量管理系统,能够检测代码中的错误、漏洞与规范问题。
它可与 GitLab、Jenkins 等 CI/CD 工具集成,实现持续的代码检查与报告。
📝 SonarQube 快速入门
一、环境准备
服务 | IP | 配置 |
---|---|---|
SonarQube | 10.0.0.73 | 2C2G |
MySQL 5.7 | 10.0.0.72 | 2C2G |
Docker 镜像 |
二、启动数据库(MySQL 5.7 Docker 容器)
bash
docker run -d \
--name mysql-sonar \
-e MYSQL_ROOT_PASSWORD=你的Root密码 \
-e MYSQL_DATABASE=sonarqube \
-e MYSQL_USER=sonar \
-e MYSQL_PASSWORD=sonar \
mysql:5.7
### 三、部署 SonarQube
1. **下载并解压 SonarQube**
```plain
wget https://binaries.sonarsource.com/CommercialDistribution/sonarqube/sonarqube-9.9.0.65466.zip
unzip sonarqube-9.9.0.65466.zip -d /opt/
mv /opt/sonarqube-9.9.0.65466 /opt/sonarqube
- 编辑数据库连接配置
打开/opt/sonarqube/conf/sonar.properties
:
plain
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:mysql://10.0.0.72:3306/sonarqube?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true
- 启动 SonarQube
plain
su - sonar
/opt/sonarqube/bin/linux-x86-64/sonar.sh start
- 验证 SonarQube
打开浏览器访问http://10.0.0.73:9000
默认管理员账号/密码:admin
/admin
四、Jenkins 集成(可选)
在 Jenkins 上安装 SonarQube Scanner 插件,配置:
- SonarQube 服务器:
http://10.0.0.73:9000
- Server Authentication Token:在 SonarQube UI → Administration → Security → Generate Token
在 Jenkins Pipeline 中加入扫描步骤:
plain
stage('SonarQube Analysis') {
steps {
withSonarQubeEnv('MySonarQube') {
sh 'sonar-scanner -Dsonar.projectKey=my-project -Dsonar.sources=.'
}
}
}
📝 Sonar & Jenkins 自动分析 前端 China 项目
bash
# 解压 Sonar Scanner
unzip sonar-scanner-cli-4.7.0.2747-linux.zip -d /app/tools/
# 创建软连接
ln -s /app/tools/sonar-scanner-4.7.0.2747-linux/ /app/tools/sonar-scanner
# 配置全局环境变量
export PATH=/app/tools/sonar-scanner/bin:$PATH
b. 在 SonarQube UI 新建项目并获取 Token
项目名:webtest
Token:9b61b57e6d7640c590e21b6e823398f723695ea0
c. Jenkins 构建 Shell 配置
bash
复制
编辑
# 加载全局环境变量
source /etc/profile
# 前端依赖安装与打包
npm i
npm run build
# 运行 SonarQube 扫描
sonar-scanner \
-Dsonar.projectName=${JOB_NAME} \
-Dsonar.projectKey=${JOB_NAME} \
-Dsonar.sources=. \
-Dsonar.host.url=http://sonar.oldboylinux.cn:9000 \
-Dsonar.login=9b61b57e6d7640c590e21b6e823398f723695ea0
d. 分析效果
在 SonarQube 项目界面查看代码质量报告
在 Jenkins 控制台查看扫描日志和扫描结果
📘 本文档由 www.linuxpath.cn 整理
🚀 完善代码质量,保障生产安全!