もっと詳しく

作成中またはリポジトリにプッシュしているコードを保護することは非常に重要です。 しかし、どのようにしてコードを安全に保ち、脆弱性をなくすのでしょうか? 幸いなことに、 SonarQube コードの品質とコードのセキュリティに役立ちます。

SonarQubeは、ソースコードをスキャンして、潜在的なバグ、脆弱性、および保守性の問題を探すことができるオープンソースツールです。 このチュートリアルでは、UbuntuにSonarQubeをインストールし、サンプルコードをテストしてコードの品質を確認する方法を学びます。

今日のコード品質分析とレポートのためにSonarQubeであなた自身に力を与えてください!

前提条件

このチュートリアルは、段階的なデモンストレーションになります。 フォローするには、Ubuntu 14.04.4LTSLinuxマシン以降を使用していることを確認してください。 このチュートリアルでは、Ubuntu20.04.4LTSマシンを使用します。

UbuntuへのJavaバージョン11のインストール

SonarQubeはJava言語に基づいているため、SonarQubeのインストールに取り掛かる前に、Javaがシステムに存在している必要があります。 複数のJava実装を使用してJenkinsを操作できますが、 OpenJDK は最も人気があり、このチュートリアルでインストールして使用します。 Javaをインストールしましょう!

1.お気に入りのSSHクライアントを使用してUbuntuマシンにログインします。

2.次に、 aptアップデート 以下のコマンドを使用して、システムパッケージを更新します。

3.更新したら、次のコマンドを実行して、という名前のディレクトリを作成します 〜/ install_sonarqube_demo そのディレクトリに切り替えます。

mkdir ~/install_sonarqube_demo
cd ~/install_sonarqube_demo

4.ここで、 aptインストール 以下のコマンドを使用して、マシンにJavaをインストールします。 以下のコマンドは、OpenJDK11バージョンをインストールします。

# Installing Java Version: Java SE 11 (LTS)
sudo apt install default-jdk 
Javaバージョンのインストール:Java SE 11(LTS)
Javaバージョンのインストール:Java SE 11(LTS)

5.最後に、以下のコマンドを実行して、マシンにインストールされているJavaのバージョンを確認します。 そうすることで、Javaが正常にインストールされたことを確認できます。

インストールされているJavaバージョンの確認
インストールされているJavaバージョンの確認

UbuntuへのSonarQubeのインストール

UbuntuマシンにJavaがインストールされたので、同じマシンにSonarQubeをインストールする準備が整いました。 SonarQubeのインストールは、他のパッケージのインストールと似ています。

SonarQubeは、WindowsやLinuxなどのさまざまなオペレーティングシステムで動作します。 ただし、このデモでは、UbuntuサーバーでSonarQubeを実行します。

1.次のコマンドを実行して、SonarQubeのインストールに使用するパスワードを使用して専用ユーザーを作成します。 独自のユーザーを定義できますが、このチュートリアルの選択はsonaruserです。

sudo useradd sonaruser
sudo passwd sonaruser
SonarQubeユーザーとパスワードの追加
SonarQubeユーザーとパスワードの追加

2.次に、以下のwgetコマンドを実行して SonarQubeソフトウェアをダウンロードする あなたのシステムに。 SonarQubeのバージョンは、ここで示したものとは異なる場合があります。

wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-9.4.0.54424.zip
SonarQubeZipファイルのダウンロード
SonarQubeZipファイルのダウンロード

3.以下の各コマンドを実行して、解凍パッケージをインストールし、マシンにSonarQube zipファイル(sonarqube-9.4.0.54424.zip)を解凍します。

# Install the unzip package
sudo apt -y install unzip
# Unzip the SonarQube zip file
sudo unzip sonarqube-9.4.0.54424.zip
SonarQubeパッケージを解凍する
SonarQubeパッケージを解凍する

4.最後に、 chown 以下のコマンドを実行して、SonarQubeディレクトリのユーザーとグループが手順1で作成したユーザー(sonaruser)であることを確認します。

必ずホームディレクトリ(/ home / ubuntu /)を自分のものに変更してください。

sudo chown -R sonaruser:sonaruser /home/ubuntu/install_sonarqube_demo/sonarqube-9.4.0.54424

SonarQubeのデータベースのセットアップ

マシンにSonarQubeが正常にインストールされましたが、SonarQubeを構成するには、データを保存するためのデータベースが必要です。 どのように? このチュートリアルでは、Postgresデータベースをインストールし、SonarQubeのデータベースを作成します。

1.以下のwgetコマンドを実行して、Postgres公開鍵(apt-key)をシステムに追加します。

公開鍵を追加すると、PostgresサイトがPostgres公式リポジトリまたは必要なパッケージをダウンロードできるようになります。

wget -q https://www.postgresql.org/media/keys/ACCC4CF8.asc -O- | sudo apt-key add -
システムへのPostgres公開鍵の追加
システムへのPostgres公開鍵の追加

2.次に、次のコマンドを実行して、Postgres公式リポジトリをシステムに追加し、システムを更新します。

echo "deb [arch=amd64] http://apt.postgresql.org/pub/repos/apt/ focal-pgdg main" | sudo tee /etc/apt/sources.list.d/postgresql.list
sudo apt update
Postgres公式リポジトリの追加とシステムパッケージの更新
Postgres公式リポジトリの追加とシステムパッケージの更新

3.更新後、以下の各コマンドを実行してPostgresパッケージをインストールし、インストールを確認します。

# Install Postgres
sudo apt install postgresql-13
# Verify Postgres installation
sudo systemctl status postgresql
Postgresソフトウェアのインストール
Postgresソフトウェアのインストール
Postgresデータベースのインストールの確認
Postgresデータベースのインストールの確認

4.次に、各コマンドとクエリを実行して、データベース(sonardb)とユーザー(sonaruser)をデータベースに作成します。

# Set the Postgres user password (passwd postgres). 
# By default, Postgres runs using the postgres user.
sudo passwd postgres
# Switch to postgres user
su - postgres
# Create a user in the database, which will be used in SonarQube.
createuser sonaruser
# Switch to postgres command-line
psql
# Sets password for the sonaruser
ALTER USER sonaruser WITH ENCRYPTED password 'password';
# Create the database (sonardb)
CREATE DATABASE sonardb OWNER sonaruser;
Postgres DBでのデータベース(sonardb)の作成
Postgres DBでのデータベース(sonardb)の作成

5.以下のコマンドを実行するか、Ctrl+Dを押してPostgresコマンドラインを終了します。

Postgresコマンドラインを終了する
Postgresコマンドラインを終了する

6.最後に、以下のコマンドを実行するか、Ctrl+Dを押してpostgresユーザーからログアウトします。

postgresユーザーからログアウトする
postgresユーザーからログアウトする

SonarQubeの設定

この時点で、データを格納するためのデータベースを作成しました。 次に、正しいデータベースの詳細を含む構成ファイルを作成し、SonarQubeをサービスとして実行します。

このセクション全体で構成ファイルを編集するには、sudoアクセスが必要であることに注意してください。

1. SonarQubeの構成ファイルを作成します(/home/ubuntu/install_sonarqube_demo/sonarqube-9.4.0.54424/conf/sonar.properties)お好みのテキストエディタで。

必ず変更してください / home / ubuntu あなたのホームディレクトリで。

2. SonarQubeを次のように更新し、変更を保存してファイルを閉じます。

  • sonar.jdbc.username –ソナーのユーザー名を設定します(sonaruser)。
  • sonar.jdbc.password –ソナーユーザーのパスワードを設定します(パスワード)。
  • sonar.jdbc.url – SonarQubeがデータを保存するデータベース(sonardb)を設定します。
ソナーキューブ構成の更新
ソナーキューブ構成の更新

3.次に、 /etc/systemd/system/sonar.service テキストエディタでファイルを作成し、以下のコードを追加します。 ただし、必ず/ home / ubuntuを自分のホームディレクトリに変更し、変更を保存してエディタを閉じてください。

このコードはSonarQubeサービスを作成します。このサービスは、システムが再起動した場合でも常にバックグラウンドで実行されます。

[Unit]
Description=SonarQube
After=syslog.target network.target
[Service]
Type=forking
ExecStart=/home/ubuntu/install_sonarqube_demo/sonarqube-9.4.0.54424/bin/linux-x86-64/sonar.sh start
ExecStop=/home/ubuntu/install_sonarqube_demo/sonarqube-9.4.0.54424/bin/linux-x86-64/sonar.sh stop
LimitNOFILE=131072
LimitNPROC=8192
User=sonaruser
Group=sonaruser
Restart=on-failure
[Install]
WantedBy=multi-user.target

4.次に、以下のsystemctlコマンドを実行して、デーモンをリロードします(daemon-reload)。 このコマンドは出力を提供しませんが、作成したサービスをシステムにロードし、次のシステムの再起動時に実行するように設定します。

sudo systemctl daemon-reload

5.以下の各コマンドを実行して、ソナーサービスを有効にして開始し、サービスが実行されていることを確認します。

# Enabling the sonar service
sudo systemctl enable sonar.service
# Starting the sonar service
sudo systemctl start sonar
# Verifying the sonar service
sudo systemctl status sonar

mmapカウントのデフォルトのオペレーティングシステム制限が低すぎます。 この動作により、メモリ不足の例外が発生する可能性があります。 サービスが停止した場合は、次のコマンドを実行して解決します。sudo sysctl -w vm.max_map_count = 262144

SonarQubeサービスのステータスの表示
SonarQubeサービスのステータスの表示

SonarQubeへのアクセスとコードのスキャン

これでSonarQubeがインストールされ、サービスが実行されています。 しかし、SonarQubeが実際に実行されていることをどうやって知ることができますか? サービスを開始したら、ブラウザでSonarQubeのデフォルトのWebページにアクセスして、サーバーが正しく実行されていることを確認します。

1.お気に入りのWebブラウザーを開き、IPアドレスに続いてポート9000に移動します(つまり、 52.15.72.168:9000)。 すべてがうまくいけば、SonarQubeのログインページが下に表示されます。

ユーザー名とパスワードの両方にadminを使用してSonarQubeにログインします。

SonarQubeへのアクセス
SonarQubeへのアクセス

2.正常にログインしたら、プロンプトが表示されたら古いパスワード(admin)と新しいパスワード(好きなもの)を入力し、[更新]をクリックして現在のパスワードを変更します。

パスワードを更新すると、SonarQubeのホームページが表示されます(ステップ3)。

パスワードの更新
パスワードの更新

3.次に、リポジトリからプロジェクトを取得するのではなく、Ubuntuマシンでプロジェクトを作成するため、[手動]をクリックします。

プロジェクトの手動作成の開始
プロジェクトの手動作成の開始

4.次に、以下に示すようにプロジェクトの詳細を定義し、[設定]をクリックします。 このチュートリアルでは、プロジェクトの表示名とプロジェクトキーにATAラーニングを使用します。

後でスキャンを実行するときに必要になるため、プロジェクトキーをメモしておきます。

プロジェクト名の指定
プロジェクト名の指定

5.ローカルマシンでプロジェクトを作成しているため、[ローカル]オプションを選択します。

ローカルオプション
ローカルオプション

6.次に、次のトークンを生成します。

  • を選択 トークンオプションを生成する
  • トークンの名前を入力します。 この場合、トークンにプロジェクトの名前と同じ名前を付けます(ATA-ラーニング)ステップ4で設定します。
  • [生成]をクリックして、プロジェクトに関連付けられたトークンを生成します。
ATA学習プロジェクトのトークンの生成
ATA学習プロジェクトのトークンの生成

7.生成されたトークンを書き留めて、[続行]をクリックします。 このトークンは、後でコードまたはローカルファイルをスキャンするために必要になります。

生成されたトークンを書き留める
生成されたトークンを書き留める

8.次に、次のコマンドを実行して、 SonarQubeスキャナークライアント マシンでファイルを圧縮し、ファイルを解凍します。

# Download the SonarQube Scanner client zip
wget https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/sonar-scanner-cli-4.7.0.2747-linux.zip
# Unzip the SonarQube Scanner client zip file
unzip sonar-scanner-cli-4.7.0.2747-linux.zip
SonarQubeスキャナーのダウンロード
SonarQubeスキャナーのダウンロード
SonarQubeスキャナーを解凍します
SonarQubeスキャナーを解凍します

9./にいる間に次のコマンドを実行しますhome / ubuntu / install_sonarqube_demo / sonar-scanner-4.7.0.2747-linux / bin スキャナーを実行するディレクトリ。

それに応じて以下を置き換えます。

  • ATA-Learning –実際のプロジェクトキー。
  • http://54.145.237.10:9000 –SonarQubeへのアクセスに使用するURL。
  • token - The token you noted down in step seven.
./sonar-scanner  
>   -Dsonar.projectKey=ATA-Learning 
>   -Dsonar.sources=. 
>   -Dsonar.host.url=http://54.145.237.10:9000 
>   -Dsonar.login=token
スキャンの実行
スキャンの実行
スキャン結果の表示
スキャン結果の表示

10.最後に、SonarQubeダッシュボードに移動し、[プロジェクト]タブをクリックして、プロジェクト(ATA-Learning)の最初の実行(スキャン)に合格したことを確認します。

SonarQubeダッシュボードを介したスキャン結果の確認
SonarQubeダッシュボードを介したスキャン結果の確認

結論

このチュートリアルでは、SonarQubeをセットアップし、プロジェクトに保存されているデータをスキャンする方法を学びました。 スキャンを使用すると、トリッキーなバグを見つけて、エンドユーザーへの大きな影響を防ぐことができます。

SonarQubeは、アプリを危険にさらす脆弱性を認識し、よりクリーンで安全なコード書き込みを提供します。 また、完全に機能するSonarQubeがマシンにインストールされているので、次のプロジェクトで何をスキャンする予定ですか?

The post LinuxでのSonarQubeの最も信頼のおけるスタートガイド appeared first on Gamingsym Japan.