웹사이트 검색

Ubuntu 14.04에서 phpMyAdmin을 설치하고 보호하는 방법


소개

많은 사용자가 MySQL과 같은 데이터베이스 관리 시스템의 기능을 필요로 하지만 MySQL 프롬프트에서만 시스템과 상호 작용하는 것이 불편할 수 있습니다.

phpMyAdmin은 사용자가 웹 인터페이스를 통해 MySQL과 상호 작용할 수 있도록 만들어졌습니다. 이 가이드에서는 Ubuntu 14.04에서 데이터베이스를 안전하게 관리하는 데 사용할 수 있도록 phpMyAdmin을 설치하고 보호하는 방법에 대해 설명합니다.

참고: phpMyAdmin은 Droplet 사용자 데이터에 대해 자세히 알아보기 위해 이 자습서를 추가하여 Droplet에 자동으로 설치할 수 있습니다.

전제 조건

이 가이드를 시작하기 전에 몇 가지 기본 단계를 완료해야 합니다.

먼저 Ubuntu 14.04의 초기 서버 설정에서 1-4단계에 설명된 대로 sudo 권한이 있는 루트가 아닌 사용자를 사용하고 있다고 가정합니다.

또한 Ubuntu 14.04 서버에 LAMP(Linux, Apache, MySQL 및 PHP) 설치를 완료했다고 가정합니다. 아직 완료되지 않은 경우 Ubuntu 14.04에 LAMP 스택 설치에 대한 이 가이드를 따를 수 있습니다.

이 단계를 마치면 이 가이드를 시작할 준비가 된 것입니다.

1단계 - phpMyAdmin 설치

시작하려면 기본 Ubuntu 리포지토리에서 phpMyAdmin을 설치하기만 하면 됩니다.

로컬 패키지 인덱스를 업데이트한 다음 apt 패키징 시스템을 사용하여 파일을 풀다운하고 시스템에 설치하면 됩니다.

sudo apt-get update
sudo apt-get install phpmyadmin

설치를 올바르게 구성하기 위해 몇 가지 질문을 합니다.

첫 번째 프롬프트가 나타나면 apache2가 강조 표시되지만 선택되지는 않습니다. Apache를 선택하기 위해 "SPACE\를 누르지 않으면 설치 프로그램이 설치 중에 필요한 파일을 이동하지 않습니다. "SPACE\, "TAB\, "ENTER\를 눌러 선택하십시오. 아파치.

  • 서버 선택을 위해 apache2를 선택합니다.
  • dbconfig-common을 사용하여 데이터베이스를 설정할 것인지 물으면 예를 선택하십시오.
  • 데이터베이스 관리자 비밀번호를 입력하라는 메시지가 표시됩니다
  • 그러면 phpMyAdmin 애플리케이션 자체의 비밀번호를 선택하고 확인하라는 메시지가 표시됩니다

설치 프로세스는 실제로 phpMyAdmin Apache 구성 파일을 /etc/apache2/conf-enabled/ 디렉토리에 추가하고 여기서 자동으로 읽습니다.

우리가 해야 할 유일한 일은 php5-mcrypt 확장을 명시적으로 활성화하는 것입니다. 다음을 입력하여 수행할 수 있습니다.

sudo php5enmod mcrypt

그런 다음 변경 사항을 인식하려면 Apache를 다시 시작해야 합니다.

sudo service apache2 restart

이제 /phpmyadmin 다음에 서버의 도메인 이름 또는 공용 IP 주소를 방문하여 웹 인터페이스에 액세스할 수 있습니다.

<예비>

이제 root 사용자 이름과 MySQL 설치 중에 설정한 관리 암호를 사용하여 인터페이스에 로그인할 수 있습니다.

로그인하면 다음과 같은 사용자 인터페이스가 표시됩니다.

2단계 — phpMyAdmin 인스턴스 보안

우리는 phpMyAdmin 인터페이스를 꽤 쉽게 가동할 수 있었습니다. 그러나 아직 끝나지 않았습니다. 편재성 때문에 phpMyAdmin은 공격자에게 인기 있는 대상입니다. 무단 사용을 방지하려면 애플리케이션을 보호해야 합니다.

이를 수행하는 가장 쉬운 방법 중 하나는 전체 애플리케이션 앞에 게이트웨이를 배치하는 것입니다. Apache의 내장 .htaccess 인증 및 권한 부여 기능을 사용하여 이를 수행할 수 있습니다.

.htaccess 재정의를 허용하도록 Apache 구성

먼저 Apache 구성 파일을 편집하여 .htaccess 파일 재정의 사용을 활성화해야 합니다.

Apache 구성 디렉토리에 있는 링크된 파일을 편집합니다.

sudo nano /etc/apache2/conf-available/phpmyadmin.conf

다음과 같이 구성 파일의 섹션 내에 AllowOverride All 지시문을 추가해야 합니다.

<예비>

이 줄을 추가했으면 파일을 저장하고 닫습니다.

변경 사항을 구현하려면 Apache를 다시 시작하십시오.

sudo service apache2 restart

.htaccess 파일 생성

이제 애플리케이션에 .htaccess 사용을 활성화했으므로 보안을 실제로 구현하기 위해 생성해야 합니다.

이 작업이 성공하려면 응용 프로그램 디렉터리 내에 파일을 만들어야 합니다. 다음을 입력하여 필요한 파일을 만들고 루트 권한으로 텍스트 편집기에서 열 수 있습니다.

sudo nano /usr/share/phpmyadmin/.htaccess

이 파일에 다음 정보를 입력해야 합니다.

AuthType Basic
AuthName "Restricted Files"
AuthUserFile /etc/phpmyadmin/.htpasswd
Require valid-user

각 행의 의미를 살펴보겠습니다.

  • AuthType Basic: 이 행은 구현 중인 인증 유형을 지정합니다. 이 유형은 암호 파일을 사용하여 암호 인증을 구현합니다.
  • AuthName: 인증 대화 상자에 대한 메시지를 설정합니다. 권한이 없는 사용자가 보호 대상에 대한 정보를 얻지 못하도록 이 일반 정보를 유지해야 합니다.
  • AuthUserFile: 인증에 사용될 암호 파일의 위치를 설정합니다. 이것은 제공되는 디렉터리 외부에 있어야 합니다. 곧 이 파일을 만들 것입니다.
  • 유효 사용자 필요: 인증된 사용자만 이 리소스에 액세스할 수 있도록 지정합니다. 이것은 승인되지 않은 사용자가 들어오는 것을 실제로 막는 것입니다.

완료되면 파일을 저장하고 닫습니다.

인증을 위한 .htpasswd 파일 생성

.htaccess 파일 내에서 AuthUserFile 지시문을 사용하여 암호 파일의 위치를 지정했으므로 이제 이 파일을 만들어야 합니다.

실제로 이 프로세스를 완료하려면 추가 패키지가 필요합니다. 기본 리포지토리에서 설치할 수 있습니다.

sudo apt-get install apache2-utils

나중에 htpasswd 유틸리티를 사용할 수 있습니다.

암호 파일에 대해 선택한 위치는 "/etc/phpmyadmin/.htpasswd”입니다. 이 파일을 만들고 다음을 입력하여 초기 사용자에게 전달합니다.

<예비>

만들고 있는 사용자의 암호를 선택하고 확인하라는 메시지가 표시됩니다. 그러면 입력한 해시 비밀번호로 파일이 생성됩니다.

추가 사용자를 입력하려면 다음과 같이 -c 플래그 없이 입력해야 합니다.

<예비>

이제 phpMyAdmin 하위 디렉터리에 액세스하면 방금 구성한 추가 계정 이름과 암호를 입력하라는 메시지가 표시됩니다.

<예비>

Apache 인증을 입력하면 일반 phpMyAdmin 인증 페이지로 이동하여 다른 자격 증명을 입력합니다. 이것은 phpMyAdmin이 과거에 취약점으로 인해 어려움을 겪었기 때문에 추가적인 보안 계층을 추가할 것입니다.

결론

이제 phpMyAdmin이 구성되어 Ubuntu 14.04 서버에서 사용할 준비가 되었습니다. 이 인터페이스를 사용하여 데이터베이스, 사용자, 테이블 등을 쉽게 생성하고 구조 및 데이터 삭제 및 수정과 같은 일반적인 작업을 수행할 수 있습니다.

SSL로 통신을 암호화하여 서버와의 상호 작용을 더욱 안전하게 보호하는 방법을 알아보려면 phpMyAdmin으로 SSL 인증서 설정에 대한 기사를 확인하십시오.

저스틴 엘링우드