CentOS系统下SonarQube环境搭建与安全测试方法详细步骤
前置条件
CentOS系统,要求内存必须3G以上
1. 创建用户
#groupadd sonar
#useradd sonar -g sonar
#passwd sonar 设置密码为123456
2. 下载安装jdk11(官网或百度云盘资源)
#tar zxvf jdk-11.0.8_linux-x64_bin.tar.gz
#mv jdk-11.0.8 /opt
#chown -R sonar:sonar /opt/jdk-11.0.8/
#vim /etc/profile 添加:
export JAVA_HOME=/opt/jdk-11.0.8
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#source /etc/profile
#java --version
3. 安装PostgreSQL
#yum -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
#yum -y install postgresql13-server
#/usr/pgsql-13/bin/postgresql-13-setup initdb
#systemctl start postgresql-13
#systemctl enable postgresql-13
#cd /var/lib/pgsql/13/data/
#vim pg_hba.conf 添加:
host all all 0.0.0.0/0 md5
#vim postgresql.conf 修改:
listen_addresses = '*'
#systemctl restart postgresql-13
安装的时候会自动创建postgres用户密码为空,修改密码:
#su - postgres
bash-4.2$ psql
postgres=# alter user postgres with password '123456';
postgres=# \q
bash-4.2$ exit
4. 安装SonarQube
创建数据库
#su - postgres
bash-4.2$ psql
postgres=# create user sonar with password '123456';
postgres=# create database sonarqube owner=sonar encoding='UTF8';
postgres=# grant all on database sonarqube to sonar;
postgres=# \q
bash-4.2$ exit
配置SonarQube
#wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.0.43852.zip
#mv sonarqube-8.9.0.43852 /opt && mv sonarqube-8.9.0.43852 sonarqube
#chown sonar:sonar /opt/sonarqube -R
#cd /opt/sonarqube
#vim conf/sonar.properties 修改:
sonar.jdbc.url=jdbc:postgresql://localhost/sonarqube
sonar.web.host=0.0.0.0
sonar.web.port=9090
sonar.jdbc.username=sonar
sonar.jdbc.password=123456
#vim conf/wrapper.conf 修改:
wrapper.java.command=/opt/jdk-11.0.8/bin/java
#vim /etc/sysctl.conf 添加:
vm.max_map_count=655360
#sysctl -p
#vi /etc/security/limits.conf 添加:
sonar hard nofile 65536
sonar soft nofile 65536
启动服务
#su - sonar
#/opt/sonarqube/bin/linux-x86-64/sonar.sh start
#cat /opt/sonarqube/logs/sonar.log
#cat /opt/sonarqube/logs/es.log
创建服务
#vim /usr/lib/systemd/system/sonarqube.service
[Unit]
Description=SonarQube service
After=syslog.target network.target
[Service]
Type=forking
User=sonar
Group=sonar
ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start
ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=65536
LimitNPROC=8192
Restart=on-failure
[Install]
WantedBy=multi-user.target
#systemctl daemon-reload
#systemctl enable sonarqube.service
#systemctl start sonarqube.service
浏览器访问 http://10.180.101.140:9090 默认用户名/密码:admin/admin
安装汉化: Administration->Marketplace安装Chinese包汉化插件
安装findbugs:进入配置->Marketplace,搜索Findbugs,点install
5. 安全测试
安装sonar-scanner
#wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.6.2.2472-linux.zip
#unzip sonar-scanner-cli-4.6.2.2472-linux.zip
#mv sonar-scanner-cli-4.6.2.2472-linux /opt
#cd /opt/ && mv sonar-scanner-cli-4.6.2.2472-linux sonar-scanner
#vim /etc/profile 添加:
export PATH=$PATH:/opt/sonar-scanner/bin
#source /etc/profile
#sonar-scanner -v
sonarqube中创建项目
创建项目-》手工-》填写项目标识和显示名-》设置令牌名=》产生令牌=》点击构建技术(java?python?php?)-》复制产生的命令
执行安全测试
进入项目目录下执行:
sonar-scanner \
-Dsonar.projectKey=xxxxx \
-Dsonar.sources=. \
-Dsonar.host.url=https://xxxxxx.xxx \
-Dsonar.login=8713e35a38297d24d3f01506bd21fdedfc4d21ab
如果是java项目,安装maven:
#wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz
#tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/
#cd /usr/local && mv /usr/local/apache-maven-3.6.3 maven3.6
#vim /etc/profile 添加:
export PATH=$PATH:/usr/local/maven3.6/bin
#source /etc/profile
#mvn -v
然后进入项目目录下:
#mvn clean compile 编译出class文件
#mvn sonar:sonar \
-Dsonar.projectKey=xxxxx \
-Dsonar.host.url=https://xxxxxx.xxx \
-Dsonar.login=0fbeae765a5c8375bc2a69e41d76c3dc63d9baf0
#sonar-scanner \
-Dsonar.projectKey=xxxxx \
-Dsonar.java.binaries=./taget/classes \
-Dsonar.host.url=https://xxxxxx.xxx \
-Dsonar.login=0fbeae765a5c8375bc2a69e41d76c3dc63d9baf0
不编译java源码的情况下:
sonar-scanner \
-Dsonar.projectKey=xxxxx \
-Dsonar.java.binaries=. \
-Dsonar.host.url=https://xxxxxx.xxx \
-Dsonar.login=0fbeae765a5c8375bc2a69e41d76c3dc63d9baf0
0
