소개
동안 많은 사용자의 기능에 데이터베이스 관리 시스템과 같은 MySQL,지 않을 수도 있습 편안한 느낌과 상호 작용하는 시스템에서 전적으로 MySQL 프롬프트가 표시됩니다.
phpMyAdmin 은 사용자가 웹 인터페이스를 통해 MySQL 과 상호 작용할 수 있도록 만들어졌습니다. 이 가이드에서는 ubuntu16.04 시스템에서 데이터베이스를 관리하는 데 안전하게 사용할 수 있도록 phpMyAdmin 을 설치하고 보호하는 방법에 대해 설명합니다.
전제 조건
이 가이드를 시작하기 전에 몇 가지 기본 단계를 완료해야합니다.
첫째,우리 가정을 사용하고 있는 루트가 아닌 사용자 sudo 권한으로,설명된 대로 1~4 단계에서의 초기 서버가 설치의 우분투 16.04.
또한 Ubuntu16.04 서버에서 LAMP(Linux,Apache,MySQL 및 PHP)설치를 완료했다고 가정합니다. 이 작업이 아직 완료되지 않은 경우 Ubuntu16.04 에 램프 스택 설치에 대한이 가이드를 따를 수 있습니다.
마지막으로,거기에 보안에 대해 고려해야 할 중요한 사항을 때는 소프트웨어를 사용하여 다음과 같 phpMyAdmin,이후:
- 직접 통신하여 MySQL 설치
- 핸들은 인증을 사용하여 MySQL 자격 증명
- 실행하고 결과를 반환한 임의의 SQL 쿼리를
이러한 이유 때문에 그것이 널리 배포 PHP 응용 프로그램을 사용할 수 있습니다.을 대상으로 공격 수 phpMyAdmin 원격 시스템에서 통해 일반 HTTP 연결합니다. SSL/TLS 인증서로 구성된 기존 도메인이없는 경우 Ubuntu16.04 에서 Let’s Encrypt 로 Apache 보안에 관한이 가이드를 따를 수 있습니다.
이 단계를 마치면이 가이드를 시작할 준비가되었습니다.
1 단계-phpMyAdmin 설치
시작하려면 기본 우분투 저장소에서 phpMyAdmin 을 설치합니다.
여 이 작업을 수행할 수 있습니다 업데이트하는 우리 지역의 패키지 인덱스는 다음을 사용하는apt
패키지 시스템을 아래로 당겨 파일과 설치들에서 우리의 시스템:
- sudo apt-get update
- sudo apt-get install phpmyadmin php-mbstring php-gettext
설치를 올바르게 구성하기 위해 몇 가지 질문을 할 것입니다.
경고:첫 번째 프롬프트가 나타나면 apache2 가 강조 표시되지만 선택되지는 않습니다. 아파치를 선택하기 위해 공간을 치지 않으면 설치 프로그램이 설치 중에 필요한 파일을 이동하지 않습니다. 스페이스,탭을 누른 다음 아파치를 선택하려면 입력하십시오.
- 서버 선택에 대해 apache2 를 선택합니다.
- yes 를 선택합 여부를 물었을 때 사용하는
dbconfig-common
를 데이터베이스를 설정 - 메시지가 표시됩니다 당신의 데이터베이스 관리자 비밀번호
- 을 선택하라는 메시지가 표시됩니다 확인을 위해 암호를
phpMyAdmin
응용 프로그램 자체
설치 과정을 실제로 추가 phpMyAdmin 을 아파치 구성 파일로/etc/apache2/conf-enabled/
디렉토리,그것은 자동으로 읽어 보시기 바랍니다.
유일한 것은 우리가 할 필요가 있는 명시적으로 사용 PHPmcrypt
mbstring
확장,는 우리가 할 수 있는 입력:
- sudo phpenmod mcrypt
- sudo phpenmod mbstring
나중에 다시 시작해야 합니다 아파치에 대한 변경 사항을 인식 할 수 있:
- sudo systemctl restart apache2
스에 액세스할 수 있습 웹 인터페이스를 방문하여 서버의 도메인 이름 또는 공용 IP 주소에 의해 따라/phpmyadmin
:
https://domain_name_or_IP/phpmyadmin
있으로 로그인 인터페이스를 사용하는root
사용자 이름 및 관리자 비밀번호를 설정하는 동안 MySQL 설치합니다.
에 로그인할 때,당신은 당신이 볼 수은 사용자 인터페이스는 아래와 같습니다:
두 단계—보호하 phpMyAdmin 인스턴스
우리는 얻을 수 있었던의 phpMyAdmin 인터페이스 및 실행 매우 쉽습니다. 그러나 우리는 아직 끝나지 않았습니다. 편재성 때문에 phpMyAdmin 은 공격자에게 인기있는 대상입니다. 우리는 무단 액세스를 방지하기 위해 추가 조치를 취해야합니다.이 작업을 수행하는 가장 쉬운 방법 중 하나는 전체 응용 프로그램 앞에 게이트웨이를 배치하는 것입니다. Apache 의 내장.htaccess
인증 및 권한 부여 기능을 사용하여이 작업을 수행 할 수 있습니다.
허용하도록 아파치를 구성하십시오.htaccess 재정의
먼저 아파치 구성 파일을 편집하여.htaccess
파일 재정의 사용을 활성화해야합니다.
우리는 편집 링크된 파일에 배치되었습니다 우리의 아파치 설정 디렉토리:
- sudo nano /etc/apache2/conf-available/phpmyadmin.conf
리를 추가AllowOverride All
<Directory /usr/share/phpmyadmin>
섹션의 설정 파일은 다음과 같습니다.
<Directory /usr/share/phpmyadmin> Options FollowSymLinks DirectoryIndex index.php AllowOverride All . . .
이 줄을 추가했으면 파일을 저장하고 닫습니다.
변경 한 내용을 구현하려면 Apache 를 다시 시작하십시오.
- sudo systemctl restart apache2
만들기.htaccess 파일
이제는 우리가 사용하는.htaccess
사용에 대한 우리의 응용 프로그램,우리는 하나를 만들어야를 실제로 구현하는 보안이다.이것이 성공하려면 응용 프로그램 디렉토리 내에 파일을 만들어야합니다. 우리는 할 수 있습을 만들 필요한 파일 오픈에서 우리의 텍스트 편집기로 root 권한에 의해 입력:
- sudo nano /usr/share/phpmyadmin/.htaccess
이 파일 내에서,우리가 필요한 다음 정보를 입력:
AuthType BasicAuthName "Restricted Files"AuthUserFile /etc/phpmyadmin/.htpasswdRequire valid-user
이 각 줄의 의미를 살펴 보겠습니다:
AuthType Basic
:이 줄은 구현하려는 인증 유형을 지정합니다. 이 유형은 암호 파일을 사용하여 암호 인증을 구현합니다.AuthName
:인증 대화 상자의 메시지를 설정합니다. 권한이없는 사용자가 보호되고있는 것에 대한 정보를 얻지 못하도록이 일반을 유지해야합니다.AuthUserFile
:인증에 사용될 암호 파일의 위치를 설정합니다. 이것은 제공되고있는 디렉토리의 외부에 있어야합니다. 우리는 곧이 파일을 만들 것입니다.Require valid-user
:이 지정하는 인증된 사용자만에 대한 액세스 권한을 부여해야합니다. 이것은 실제로 권한이없는 사용자가 들어가는 것을 막는 것입니다.
완료되면 파일을 저장하고 닫습니다.
를 만듭니다.인증을위한 htpasswd 파일
암호 파일에 대해 선택한 위치는”/etc/phpmyadmin/.htpasswd
htpasswd
유틸리티를 사용하여 초기 사용자를 전달할 수 있습니다:
- sudo htpasswd -c /etc/phpmyadmin/.htpasswd username
생성중인 사용자의 암호를 선택하고 확인하라는 메시지가 표시됩니다. 그 후 입력 한 해시 된 암호로 파일이 생성됩니다.
를 입력 할 경우에는 사용자의 추가,당신은 그렇게 할 필요가 없이-c
플래그은 다음과 같습니다.
- sudo htpasswd /etc/phpmyadmin/.htpasswd additionaluser
지금 할 때,당신은에 액세스 phpMyAdmin 을 하위디렉토리라는 메시지가 표시됩에 대한 추가 계정의 이름과 암호는 당신은 단지 구성:
https://domain_name_or_IP/phpmyadmin
후에 들어가 아파치 인증,당신은 일반 phpMyAdmin 인증 페이지를 입력하는 다른 자격 증명입니다. 이것은 phpMyAdmin 이 과거에 취약점으로 고통 받았기 때문에 추가적인 보안 계층을 추가 할 것입니다.
결론
이제 phpMyAdmin 을 구성하고 사용할 준비가 우분투 16.04 서버입니다. 이 인터페이스를 사용하여 데이터베이스,사용자,테이블 등을 쉽게 만들 수 있습니다. 구조 및 데이터 삭제 및 수정과 같은 일반적인 작업을 수행합니다.