본문 바로가기

리눅스

우분투에서 RackTables를 설치하는 방법

반응형

우분투 24.04에서 RackTables를 설치하는 방법

RackTables는 데이터센터 자산 관리 및 데이터베이스 관리를 지원하는 오픈 소스 도구입니다.

테스트 환경

  • 웹 서버 : Nginx 1.26
  • 미들웨어 서버 : PHP 8.3
  • 데이터베이스 : MySQL 8.0

1. 필수 패키지 설치

RackTables에 필요한 의존성 패키지를 설치합니다.

sudo apt update
sudo apt install -y unzip wget graphviz

Nginx 설치

sudo apt-get install -y curl gnupg2 ca-certificates lsb-release

sudo apt-get install -y ubuntu-keyring apt-transport-https

curl -s https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
https://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

sudo apt-get update

PHP 설치

sudo apt-get install -y software-properties-common

sudo add-apt-repository ppa:ondrej/php -y

sudo apt-get update

sudo apt install -y php8.3 php8.3-fpm php8.3-cli php8.3-common php8.3-mysql php8.3-bcmath php8.3-intl \
  php8.3-mbstring php8.3-gd php8.3-snmp php8.3-zip php8.3-curl php8.3-xml php-json

MySQL 설치

wget https://dev.mysql.com/get/mysql-apt-config_0.8.33-1_all.deb

sudo dpkg -i mysql-apt-config_0.8.33-1_all.deb

sudo sed -i.bak 's|http://|https://|g' /etc/apt/sources.list.d/mysql.list

sudo apt update

sudo apt install -y mysql-server

2. MySQL 데이터베이스 설정

RackTables용 데이터베이스와 사용자를 생성합니다.

 

MySQL 로그인

sudo mysql -u root -p

데이터베이스 및 사용자 생성

CREATE DATABASE racktables_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'racktables_user'@'localhost' IDENTIFIED BY 'your_database_password';
GRANT ALL PRIVILEGES ON racktables_db.* TO 'racktables_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. RackTables 소스 다운로드

RackTables 최신 릴리스를 다운로드하고 NGINX 웹 루트에 압축을 해제합니다.

cd /usr/share/nginx
wget https://sourceforge.net/projects/racktables/files/RackTables-0.22.0.tar.gz
tar -xvf RackTables-0.22.0.tar.gz

파일 권한 설정

sudo chown -R www-data:www-data /usr/share/nginx/RackTables-0.22.0
sudo chmod -R 755 /usr/share/nginx/RackTables-0.22.0

4. NGINX 설정

RackTables를 위한 NGINX 가상 호스트 설정 파일을 생성합니다.

sudo vim /etc/nginx/conf.d/racktables
# HTTP -> HTTPS 리다이렉트
server {
    listen 80;
    server_name racktables.scbyun.com;
    return 301 https://racktables.scbyun.com$request_uri;
}

# HTTPS 설정
server {
    listen 443 ssl;
    http2 on;    
    server_name racktables.scbyun.com;

    root /usr/share/nginx/RackTables-0.22.0/wwwroot;
    index index.php index.html;

    # 로그 설정
    access_log /var/log/nginx/racktables_access.log main;
    error_log /var/log/nginx/racktables_error.log warn;

    # 기본 위치
    location / {
        try_files $uri $uri/ =404;
    }

    # PHP 처리
    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # SSL 인증서
    ssl_certificate /etc/nginx/ssl/sangchul_kr/cert.pem;
    ssl_certificate_key /etc/nginx/ssl/sangchul_kr/key.pem;

    # SSL 보안 설정
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 1d;
    ssl_session_tickets off;

    # HTTP Strict Transport Security (HSTS)
    add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

    # .htaccess 및 숨김 파일 접근 차단
    location ~ /\.(?!well-known) {
        deny all;
    }

    # 크기 제한 등 추가 보호 설정
    client_max_body_size 10M;
    client_body_timeout 12s;
}

NGINX 구성을 테스트한 후 재시작합니다.

sudo nginx -t
sudo systemctl restart nginx

5. PHP-FPM 설정 확인

PHP-FPM이 NGINX와 올바르게 통신하도록 설정을 확인합니다.

sudo vim /etc/php/8.3/fpm/php.ini

확인하거나 활성화합니다.

cgi.fix_pathinfo=0

PHP-FPM 서비스를 재시작합니다.

sudo systemctl restart php8.3-fpm

6. RackTables 웹 설치

웹 브라우저에서 http://your_domain_or_ip로 접속하여 RackTables 설치 마법사를 실행합니다.

https://racktables.scbyun.com/?module=installer

데이터베이스 정보 입력

  • Database Host : localhost
  • Database Name : racktables_db
  • Database User : racktables_user
  • Database Password : your_database_password

7. 보안 강화

설치 마법사가 완료된 후 secret.php(inc/secret.php) 파일이 자동 생성됩니다.

 

secret.php 파일 권한 설정

cd /usr/share/nginx/RackTables-0.22.0/wwwroot/inc
chown www-data:nogroup secret.php
chmod 440 secret.php

설치 디렉토리 삭제

sudo rm -rf /var/www/racktables/wwwroot/install.php

 

우분투 24.04에서 Nginx, PHP 8.3, MySQL 8.0을 사용하여 RackTables 0.22.0을 성공적으로 설치할 수 있습니다.

 

참고URL

- Project's Web-Site : RackTables

- Github : RackTables

- SOURCEFORGE : RackTables Files(Download)

 

728x90
반응형