웹사이트 검색

Rocky Linux에 SysPass 암호 관리자를 설치하는 방법


이 페이지에서

  1. 전제 조건
  2. Httpd 웹 서버 설치
  3. MariaDB 서버 설치
  4. PHP 설치
  5. 작성기 설치
  6. SysPass 암호 관리자 설치\n
  7. SELinux 설정
  8. Httpd 가상 호스트 구성\n
  9. SysPass 암호 관리자 구성\n
  10. 결론

SysPass는 AES-256 CTR 암호화를 사용하여 PHP로 작성된 오픈 소스 비밀번호 관리자입니다. 중앙 집중식 공동 암호 관리를 위해 설계되었습니다. 고급 프로필 관리, 사용자, 그룹 및 프로필 관리가 포함된 다중 사용자를 제공합니다. MySQL/MariaDB 및 OpenLDAP Active Directory를 통한 인증 방법을 지원하고 HTML5 및 AJAX를 통한 머티리얼 디자인과 대화식으로 설계되었습니다.

SysPass는 다른 애플리케이션과 통합할 수 있는 API를 제공합니다. 가져오기 및 내보내기를 위한 Keepass 암호 데이터베이스 및 CSV 파일을 지원합니다. 또한 계정 내역 및 복원 포인트, 다국어, 로그인 없는 공개 링크(익명 링크)를 제공합니다.

이 튜토리얼에서는 Apache2, MariaDB 및 PHP와 함께 SysPass Password Manager를 Rocky Linux 서버에 설치합니다. 또한 SSL 인증서로 SysPass 설치를 보호하고 PHP 종속성을 관리하기 위해 Rocky Linux에 Composer를 설치하는 방법도 배웁니다.

전제 조건

이 자습서를 완료하려면 다음 요구 사항이 필요합니다.

  • Rocky Linux 서버 - Rocky Linux v8 또는 v9를 사용할 수 있습니다.\n
  • sudo 루트 권한이 있는 루트가 아닌 사용자.\n
  • 전체 도메인 이름은 서버 IP 주소를 가리킵니다.

Httpd 웹 서버 설치

이 가이드에서는 Apache 또는 httpd 웹 서버와 함께 SysPass Password Manager를 실행합니다. Rocky Linux에서 httpd 웹 서버는 기본적으로 BaseOS 및 AppStream 리포지토리에서 사용할 수 있습니다.

공식 Rocky Linux 저장소를 통해 httpd 웹 서버를 쉽게 설치할 수 있습니다.

아래의 dnf 명령을 실행하여 httpd 웹 서버를 설치합니다.

sudo dnf install httpd

Y를 입력하여 설치를 확인하고 ENTER를 눌러 계속 진행합니다.

httpd가 설치되면 아래의 systemctl 명령을 실행하여 httpd 서비스를 시작하고 활성화합니다. systemctl enable 명령을 사용하면 시스템 부팅 시 서비스를 실행할 수 있습니다.

sudo systemctl start httpd
sudo systemctl enable httpd

이제 다음 명령을 실행하여 httpd 서비스 상태를 확인하고 서비스가 실행 중인지 확인하십시오.

sudo systemctl status httpd

다음 스크린샷과 같은 출력을 받게 됩니다. httpd 서비스가 현재 실행 중이며 활성화되어 있습니다.

이제 Firewalld가 Rocky Linux 서버에서 실행 중이면 HTTP 및 HTTPS 서비스를 firewalld에 추가해야 합니다.

아래의 firwewall-cmd 명령을 실행하여 방화벽에 HTTP 및 HTTPS 서비스를 추가합니다.

sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent

그런 다음 방화벽을 다시 로드하고 아래 명령을 사용하여 규칙의 상태를 확인합니다.

sudo firewall-cmd --reload
sudo firewall-cmd --list-services

HTTP 및 HTTPS 서비스의 출력이 firewalld에 추가된 것을 볼 수 있습니다.

MariaDB 서버 설치

SysPass Password Manager는 데이터베이스에 대해 MySQL 또는 MariaDB를 지원합니다. 이 단계에서는 MariaDB를 설치하고 mysql_secure_installation 명령을 통해 보안을 설정합니다.

mysql_secure_installation은 루트 암호 설정, 루트 사용자에 대한 원격 로그인 비활성화, 익명 사용자 제거 및 데이터베이스 테스트와 같은 MariaDB 설치를 설정할 수 있는 MariaDB 패키지에서 제공하는 명령줄입니다.

MariaDB를 설치하려면 다음 dnf 명령을 실행합니다. 설치를 확인하라는 메시지가 표시되면 Y를 입력하고 ENTER를 눌러 계속 진행합니다.

sudo dnf install mariadb-server

MariaDB가 설치되면 아래의 systemctl 명령을 통해 MariaDB 서비스를 시작하고 활성화합니다.

sudo systemctl start mariadb
sudo systemctl enable mariadb

이제 MariaDB 서비스를 확인하여 서비스가 활성화되어 실행 중인지 확인하십시오.

sudo systemctl status mariadb

MariaDB 서비스의 출력이 활성화되고 시스템 부팅 시 자동으로 실행되는 것을 볼 수 있습니다. 그리고 MariaDB 서비스의 상태가 실행 중입니다.

이제 MariaDB 서비스가 실행 중이므로 mysql_secure_installation을 통해 MariaDB 배포를 보호할 시간입니다.

다음 명령을 실행하여 MariaDB 배포를 보호하십시오.

sudo mysql_secure_installation

이제 다음 MariaDB 서버 구성을 묻는 메시지가 표시됩니다.

  1. 인증을 unix_socket으로 변경하시겠습니까? 아니오에 대해 n을 입력하십시오.\n
  2. MariaDB 루트 암호를 변경하시겠습니까? y를 입력하여 확인한 다음 MariaDB 루트 사용자의 새 비밀번호를 입력하십시오.\n
  3. 루트 사용자의 원격 로그인을 비활성화하시겠습니까? 예에 대해 y를 입력합니다.\n
  4. 익명 사용자를 제거하시겠습니까? y를 입력합니다.\n
  5. 기본 데이터베이스 테스트를 제거하시겠습니까? y를 다시 입력합니다.\n
  6. 마지막으로 테이블 권한을 다시 로드하고 새 구성을 적용하시겠습니까? y를 입력하여 확인하십시오.\n

이제 서버에 MariaDB를 설치하고 보호했습니다.

PHP 설치

MariaDB를 설치한 후 이제 Rocky Linux 서버에 PHP를 설치합니다. SysPass Password Manager를 설치하려면 PHP 7.4가 필요하므로 이제 REMI 저장소를 통해 설치합니다.

Rocky Linux 8의 경우 - 다음 명령을 실행하여 REMI 리포지토리를 추가합니다.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Rocky Linux 9의 경우 - 다음 명령을 실행하여 REMI 리포지토리를 추가합니다.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

설치를 확인하라는 메시지가 표시되면 y를 입력합니다.

이제 아래 dnf 명령을 실행하여 사용 가능한 PHP 패키지 목록을 확인하십시오. 그리고 REMI 저장소가 여러 PHP 버전 7.4, 8.0, 8.1 및 8.2를 제공하는 것을 볼 수 있습니다.

sudo dnf module list php

SysPass 설치의 경우 PHP 7.4를 설치합니다. 따라서 다음 명령을 실행하여 PHP 모듈 remi-7.4를 활성화하십시오. 모듈을 확인하고 활성화하려면 Y를 입력합니다.

sudo dnf module enable php:remi-7.4

이제 다음 dnf 명령을 실행하여 시스템에 PHP 7.4를 설치하십시오.

sudo dnf install -y php php-pear php-cgi php-cli php-common php-gd php-json php-mysql php-readline php curl php-intl php-ldap php-mcrypt php-xml php-mbstring php-zip

설치가 시작되고 설치를 확인하라는 메시지가 표시됩니다. 계속하려면 y를 입력하고 ENTER를 누르십시오.

PHP가 설치되면 다음 명령을 사용하여 기본 구성 파일인 /etc/php.ini를 편집합니다.

sudo nano /etc/php/7.4/apache2/php.ini

다음 설정을 사용하여 기본 PHP 구성을 변경합니다. 시스템 환경에 따라 시간대와 memory_limit를 조정해야 합니다.

post_max_size = 120M
upload_max_filesize = 120M
max_execution_time = 6000
memory_limit = 256M
date.timezone = Europe/Stockholm

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 systemctl 명령을 실행하여 httpd 서비스를 다시 시작하고 PHP 구성을 적용하십시오. 이제 SysPass Password Manager용 LAMP Stack의 기본 설치가 완료되었습니다.

sudo systemctl restart httpd

작곡가 설치

SysPass에 필요한 또 다른 종속성은 Composer입니다. 이는 SysPass 웹 애플리케이션에 대한 PHP 종속성을 설치하는 데 사용됩니다.

Rocky Linux 시스템에 Composer를 설치하려면 다음 명령을 실행하십시오.

curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/bin --filename=composer

아래에서 출력을 받게 됩니다.

이제 아래 명령을 사용하여 Composer를 확인합니다. 시스템에 설치된 PHP Composer 버전이 표시되어야 합니다.

sudo -u apache composer -v

Composer가 설치되면 다음에 SysPass 설치를 시작합니다.

SysPass 암호 관리자 설치

먼저 다음 dnf 명령을 실행하여 시스템에 git 및 unzip 패키지를 설치합니다.

sudo dnf install git unzip -y

이제 대상 설치 디렉터리 /var/www/syspass에 git 명령을 통해 SysPass 소스 코드를 다운로드합니다.

git clone https://github.com/nuxsmin/sysPass.git /var/www/syspass

다음 명령을 실행하여 SysPass 설치 디렉토리의 소유권 및 권한을 변경하십시오. 소유권은 실행 중인 httpd인 apache 사용자여야 합니다.

sudo chown -R apache:apache /var/www/syspass
sudo chmod 750 /var/www/syspass/app/config /var/www/syspass/app/backup

다음으로 다음 명령을 실행하여 Composer용 캐시 디렉토리를 생성합니다. 그런 다음 소유권을 사용자 apache로 변경합니다. 이 디렉토리는 애플리케이션에 대한 PHP 종속성을 저장하는 데 사용됩니다.

sudo mkdir -p /usr/share/httpd/.cache
sudo chown -R apache:apache /usr/share/httpd/.cache

마지막으로 SysPass 설치 디렉터리 /var/www/syspass로 이동하고 아래의 작성기 명령을 통해 SysPass용 PHP 종속성을 설치합니다.

cd /var/www/syspass
sudo -u apache composer install --no-interaction --no-dev

다음 스크린샷에서 SysPass Password Manager에 대한 PHP 종속성 설치를 볼 수 있습니다.

PHP 종속성이 설치되면 아래 단계로 이동합니다.

SELinux 설정

적용 모드에서 SELinux와 함께 SysPass를 실행 중인 경우 시스템에 새 SELinux 규칙을 추가해야 합니다.

SELinux 관리를 시작하기 전에 다음 명령을 실행하여 다음 패키지가 설치되어 있는지 확인하십시오.

sudo dnf install policycoreutils-python-utils -y

그런 다음 다음 명령을 실행하여 SysPass에서 사용할 SELinux 정책을 추가합니다.

이 명령에서 httpd 서비스가 네트워크를 통해 LDAP에 연결하도록 허용하고(LDAP 인증을 사용하는 경우) SysPass 소스 코드에 대한 올바른 레이블을 지정합니다.

sudo setsebool -P httpd_can_connect_ldap 1
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/syspass/app/(config|backup|cache|temp)(/.*)?"
sudo restorecon -R -v /var/www/syspass

Httpd 가상 호스트 구성

이제 SysPass Password Manager용 httpd/apache2 가상 호스트를 설정합니다. 시작하기 전에 SSL 인증서가 있고 도메인 이름이 서버 IP 주소를 가리키는지 확인하십시오.

아래의 dnf 명령을 실행하여 httpd 웹 서버용 mod_ssl 패키지를 설치합니다.

sudo dnf install mod_ssl -y

mod_ssl이 설치된 후 다음 명령을 실행하여 localhost에 대한 SSL 인증서를 생성합니다. 이 인증서를 생성해야 합니다. 그렇지 않으면 httpd가 실행되지 않습니다. 이 인증서는 구성 /etc/httpd/conf.d/ssl.conf에서 localhost에 의해 사용됩니다.

sudo openssl req -newkey rsa:4096  -x509  -sha512  -days 365 -nodes -out /etc/pki/tls/certs/localhost.crt -keyout /etc/pki/tls/private/localhost.key

그런 다음 다음 nano 편집기 명령을 사용하여 새 가상 호스트 구성 /etc/httpd/conf.d/syspass.conf을 만듭니다.

sudo nano /etc/httpd/conf.d/syspass.conf

파일에 다음 구성을 추가합니다. 또한 도메인 이름과 SSL 인증서의 경로도 변경해야 합니다.

#
# File: syspass.conf
#

RedirectMatch "^/$" "/index.php"

<Directory "/var/www/syspass">
    DirectoryIndex index.php
    Options -Indexes -FollowSymLinks -Includes -ExecCGI

    <RequireAny>
      Require expr "%{REQUEST_URI} =~ m#.*/index\.php(\?r=)?#"
      Require expr "%{REQUEST_URI} =~ m#.*/api\.php$#"
      Require expr "%{REQUEST_URI} =~ m#^/?$#"
    </RequireAny>
</Directory>

<FilesMatch ".(png|jpg|js|css|ttf|otf|eot|woff|woff2|ico)$">
    Require all granted
</FilesMatch>

<VirtualHost *:80>
  ServerName syspass.hwdomain.io

  ServerAdmin
    DocumentRoot /var/www/syspass

    ErrorLog /var/log/httpd/error.log
    CustomLog /var/log/httpd/access.log combined

    SSLEngine on

    SSLCertificateFile        /etc/letsencrypt/live/syspass.hwdomain.io/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/syspass.hwdomain.io/privkey.pem

    <FilesMatch "\.(cgi|shtml|phtml|php)$">
              SSLOptions +StdEnvVars
    </FilesMatch>
    <Directory /usr/lib/cgi-bin>
              SSLOptions +StdEnvVars
    </Directory>

    BrowserMatch "MSIE [2-6]" \
      nokeepalive ssl-unclean-shutdown \
      downgrade-1.0 force-response-1.0
    # MSIE 7 and newer should be able to use keepalive
    BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
  </VirtualHost>
</IfModule>

파일을 저장하고 완료되면 편집기를 종료하십시오.

이제 다음 명령을 실행하여 httpd 구성을 확인하고 적절한 httpd 구성이 있는지 확인하십시오.

sudo apachectl configtest

정확하고 적절한 httpd 구성이 있는 경우 Syntax OK와 같은 출력 메시지가 표시됩니다.

마지막으로 아래의 systemctl 명령을 실행하여 httpd 서비스를 다시 시작하고 새로운 변경 사항을 적용합니다. 이제 SysPass Password Manager가 설치되었으며 설정할 준비가 되었습니다.

sudo systemctl restart httpd

SysPass 암호 관리자 구성

웹 브라우저를 열고 SysPass 설치의 도메인 이름(예: https://syspass.hwdomain.io)을 방문하십시오.

이제 SysPass에 대한 새 관리 사용자 및 비밀번호를 생성해야 합니다. 그런 다음 새 마스터 비밀번호를 입력하십시오. 관리자 및 마스터 비밀번호 모두 강력하고 기억하기 쉬운 것을 사용하십시오.

하단 페이지에서 데이터베이스 사용자 이름을 root로 입력하고 암호를 입력합니다. 그런 다음 SysPass 설치 프로그램에서 자동으로 생성할 데이터베이스 이름을 입력합니다.

또한 기본 설치 언어를 원하는 언어로 변경할 수 있습니다.

준비가 되면 "설치"를 클릭하여 SysPass 설치를 시작하십시오.

SysPass가 설치되면 SysPass Password Manager의 로그인 페이지가 나타납니다.

관리자 사용자와 암호를 입력한 다음 로그인 버튼을 클릭합니다.

올바른 사용자와 암호를 사용하는 경우 SysPass Password Manager 대시보드가 표시됩니다.

여기에서 새 사용자 및 그룹을 추가하거나, CSV 파일 또는 Kepass 데이터베이스 파일에서 데이터베이스 비밀번호를 가져오거나, LDAP를 통해 인증을 통합할 수도 있습니다.

결론

이 자습서에서는 Rocky Linux에 SysPass Password Manager를 설치하고 구성했습니다. 또한 Rocky Linux 서버에 LAMP Stack(Apache2/httpd, MariaDB 및 PHP) 및 Composer를 설치했습니다.

SysPass를 설치하고 보안을 설정하면 이제 일일 암호 관리자로 사용할 수 있습니다. 또는 내부 조직에 대해 더 많은 사용자를 추가할 수 있습니다.