cicd 보안(2/5) - sonarQube

유유·2022년 10월 29일
0

보안

목록 보기
1/3

SonarQube는 코드 품질 분석을 위한 오픈 소스 웹 기반 도구입니다. SonarQube는 플러그인을 통해 다양한 프로그래밍 언어로 된 광범위한 코드를 분석할 수 있습니다.

https://www.vultr.com/docs/install-sonarqube-on-ubuntu-20-04-lts/

  1. PostgreSQL 설치 및 구성

PostgreSQL 리포지토리를 추가합니다.

sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ `lsb_release -cs`-pgdg main" >> /etc/apt/sources.list.d/pgdg.list'

PostgreSQL 서명 키를 추가합니다.

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O - | sudo apt-key add -

PostgreSQL을 설치합니다.

sudo apt install postgresql postgresql-contrib -y

재부팅 시 데이터베이스 서버가 자동으로 시작되도록 합니다.

sudo systemctl enable postgresql

데이터베이스 서버를 시작합니다.

sudo systemctl start postgresql

기본 PostgreSQL 비밀번호를 변경합니다.

sudo passwd postgres

포스트그레스 사용자 로 전환합니다 .

su - postgres

sonar 라는 사용자를 만듭니다 .

$ createuser sonar

PostgreSQL에 로그인합니다.

$ psql

소나 사용자 의 비밀번호를 설정합니다 . . 대신 강력한 암호를 사용하십시오

my_strong_password.

ALTER USER sonar WITH ENCRYPTED password 'my_strong_password';

sonarqube 데이터베이스를 만들고 소유자를 sonar 로 설정합니다 .

CREATE DATABASE sonarqube OWNER sonar;

sonarqube 데이터베이스 에 대한 모든 권한을 소나 사용자에게 부여합니다.

GRANT ALL PRIVILEGES ON DATABASE sonarqube to sonar;

PostgreSQL을 종료합니다.

\q

루트가 아닌 sudo 사용자 계정으로 돌아갑니다.

$ exit
  1. SonarQube 다운로드 및 설치

SonarQube 파일의 압축을 푸는 데 필요한 zip 유틸리티를 설치 합니다.

$ sudo apt-get install zip -y

SonarQube 배포 파일을 다운로드합니다.

sudo wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-8.9.10.61524.zip

다운로드한 파일의 압축을 풉니다.

sudo unzip sonarqube-8.9.10.61524.zip

압축을 푼 파일을 /opt/sonarqube디렉토리 로 이동

sudo mv sonarqube-8.9.10.61524.zip /opt/sonarqube
  1. SonarQube 그룹 및 사용자 추가
    루트 사용자 로 실행할 수 없는 SonarQube 전용 사용자 및 그룹을 만듭니다 .

소나 그룹 을 만듭니다 .

$ sudo groupadd sonar

소나 사용자를 만들고 /opt/sonarqube 를 홈 디렉토리로 설정 합니다 .

$ sudo useradd -d /opt/sonarqube -g sonar sonar

소나 사용자에게 /opt/sonarqube디렉토리 에 대한 액세스 권한을 부여합니다 .

$ sudo chown sonar:sonar /opt/sonarqube -R
  1. SonarQube 구성
    SonarQube 구성 파일을 편집합니다.
$ sudo nano /opt/sonarqube/conf/sonar.properties

다음 행을 찾으십시오.

#sonar.jdbc.username=

#sonar.jdbc.password=
행의 주석 처리를 제거하고 2단계에서 생성한 데이터베이스 사용자와 암호를 추가합니다.

sonar.jdbc.username=sonar

sonar.jdbc.password=my_strong_password
이 두 줄 아래에 sonar.jdbc.url 을 추가합니다 .

sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonarqube

파일을 저장하고 종료합니다.

소나 스크립트 파일을 편집합니다.

$ sudo nano /opt/sonarqube/bin/linux-x86-64/sonar.sh

약 50줄 아래에서 다음 줄을 찾습니다.

#RUN_AS_USER=
줄의 주석을 제거하고 다음과 같이 변경합니다.

RUN_AS_USER=sonar

파일을 저장하고 종료합니다.

  1. 시스템 서비스 설정
    시스템 부팅 시 SonarQube를 시작하는 systemd 서비스 파일을 만듭니다.
$ sudo nano /etc/systemd/system/sonar.service

파일에 다음 줄을 붙여넣습니다.

[Unit]

Description=SonarQube service

After=syslog.target network.target



[Service]

Type=forking



ExecStart=/opt/sonarqube/bin/linux-x86-64/sonar.sh start

ExecStop=/opt/sonarqube/bin/linux-x86-64/sonar.sh stop



User=sonar

Group=sonar

Restart=always



LimitNOFILE=65536

LimitNPROC=4096



[Install]

WantedBy=multi-user.target

파일을 저장하고 종료합니다.

시스템 시작 시 실행되도록 SonarQube 서비스를 활성화합니다.

$ sudo systemctl enable sonar

SonarQube 서비스를 시작합니다.

$ sudo systemctl start sonar

서비스 상태를 확인하세요.

$ sudo systemctl status sonar
  1. 커널 시스템 제한 수정
    SonarQube는 Elasticsearch 를 사용하여 인덱스를 MMap FS 디렉터리에 저장합니다. 시스템 기본값을 약간 변경해야 합니다.

sysctl 구성 파일을 편집합니다.

$ sudo nano /etc/sysctl.conf

다음 행을 추가하십시오.

vm.max_map_count=262144

fs.file-max=65536

ulimit -n 65536

ulimit -u 4096

파일을 저장하고 종료합니다.

변경 사항을 적용하려면 시스템을 재부팅하십시오.

$ sudo reboot
  1. SonarQube 웹 인터페이스에 액세스
    포트 9000의 서버 IP 주소로 웹 브라우저에서 SonarQube에 액세스합니다. 예:
http://url:9000
profile
하이

0개의 댓글