はじめに
-
いくつかのサイトを参照して、DVWAをOracleLinuxにデプロイしようとしたのですが、
パッケージのバージョンなどに制約がありハマったため、手順を残します。 -
特に、OracleLinux 7.9 では PHP 8.x がインストールできず、最新のDVWAが利用できなかったため、OracleLinux 8.x で作り直すことに。。
-
以下の記事を参考にさせて頂いています。
脆弱なアプリケーション(DVWA)をOCIにデプロイする
1. OracleLinux 8.x 作成
OCI に Oracle Linux 8.x のコンピュートを作成します。
一般的な手順のため割愛します。
2.環境設定
DVWAのデプロイに必要なOSの設定を行います。
※以下、VMにOPCでログインして実施します。
OS設定を変更します。
#Fierwall無効
$ sudo systemctl stop firewalld
$ sudo systemctl disable firewalld
#SE Linux無効
$ sudo setenforce 0
$ sudo vi /etc/selinux/config
-> SELINUX=disabledにする
必要なパッケージのインストールを行います。
#HTTP, PHPインストール
$ sudo dnf install httpd
$ sudo dnf install @php:8.2
$ sudo dnf install php-pdo php-mysqlnd php-gd
$ sudo dnf install @mysql:8.0
※以下でインストール可能なモジュールバージョンが分かります。
$ sudo dnf module list php
$ sudo dnf module list mysql
# httpd の起動
$ sudo systemctl start httpd
$ sudo systemctl enable httpd
#DVWAダウンロード
$ cd /tmp
$ wget https://github.com/digininja/DVWA/archive/master.zip
$ unzip master.zip
$ sudo cp -R DVWA-master/ /var/www/html
#コンフィグ有効化
$ cd /var/www/html/DVWA-master/config
$ sudo mv config.inc.php.dist config.inc.php
MYSQLの設定を行います。
#MySQL起動
$ sudo systemctl start mysqld.service
$ sudo systemctl enable mysqld.service
$ sudo systemctl status mysqld.service
※ MYSQL 8.0 はパスワードが空で設定されます
# cat /var/log/mysql/mysqld.log | grep password
-> 空パスワードが設定されてる、と出力されている
例:
[root@ap1 /tmp]# cat /var/log/mysql/mysqld.log | grep password
2025-04-14T10:37:27.930317Z 6 [Warning] [MY-010453] [Server] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.
2025-04-14T10:37:28.081643Z 6 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
#以下でパスワードを設定する
$ mysql -u root
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH 'caching_sha2_password' BY '<password>';
$ mysql -u root -p
※パスワードでログインできることを確認
DVWAのDB接続設定を変更します。
$ sudo vi /var/www/html/DVWA-master/config/config.inc.php
※以下の2行を変更します。
$_DVWA[ 'db_user' ] = getenv('DB_USER') ?: 'root';
$_DVWA[ 'db_password' ] = getenv('DB_PASSWORD') ?: '<password>';
※DB接続設定周りの内容は以下のようになります。
$_DVWA = array();
$_DVWA[ 'db_server' ] = getenv('DB_SERVER') ?: '127.0.0.1';
$_DVWA[ 'db_database' ] = getenv('DB_DATABASE') ?: 'dvwa';
$_DVWA[ 'db_user' ] = getenv('DB_USER') ?: 'root';
$_DVWA[ 'db_password' ] = getenv('DB_PASSWORD') ?: '<password>';
$_DVWA[ 'db_port'] = getenv('DB_PORT') ?: '3306';
3.DVWA セットアップ,ログイン確認
以上でDVWA起動のための準備は終わりです。
DVWAにアクセスすると、セットアップ画面が表示されます。
http://VMのPublicIP/DVWA-master/setup.php
これ以降は以下の参考にさせて頂いた記事の通りのため、割愛します。
脆弱なアプリケーション(DVWA)をOCIにデプロイする