이전 글 보러 가기
이전 실습에서는 PHP 환경 구성 및 phpinfo 테스트까지 완료하였다. 이번 실습은 phpMyAdmin 설치 및 설정, HTTP 기본 인증 구성, 그리고 보안 키 생성 및 적용 등 데이터베이스 관리 도구를 보안적으로 설정하는 작업을 수행하였다.
1. phpMyAdmin 다운로드 및 압축 해제
저번 포스팅에서는 깃허브에서 다운로드하였는데 이번에 좀 더 간단한 다운로드 방법을 알아보겠다.
phpMyAdmin은 웹 기반 MySQL 관리 도구로, 실습에서는 다음 명령어를 통해 다운로드 하였다.
wget https://files.phpmyadmin.net/phpMyAdmin/5.1.3/phpMyAdmin-5.1.3-all-languages.zip -O /var/www/phpmyadmin2.zip
다운로드 후 .zip 파일을 해제하고 /var/www/html/phpmyadmin 디렉터리에 위치시켜 웹에서 접근 가능하게 구성하였다.
2. HTTP 기본 인증 구성하기
사용자 인증을 위한 PHP 코드를 직접 작성하여 phpMyAdmin 접근을 보호하였다.
$val_passwords = ['ahhyun' => 'ahhyunpass','ahhyun98' =>'ahhyun98pass'];
$val_users = array_keys($val_passwords);
$user = $_SERVER['PHP_AUTH_USER'];
$pass = $_SERVER['PHP_AUTH_PW'];
$valid = (in_array($user, $val_users)) && ($pass == $val_passwords[$user]);
if (!$valid) {
header('WWW-Authenticate: Basic realm="password??"');
header('HTTP/1.0 401 Unauthorized');
die ("Not valid");
}
구성 설명
- $val_passwords : 사용자와 비밀번호 목록
- $user, $pass : 클라이언트 요청으로 전달된 인증 정보
- $valid : 사용자 검증 결과
- 401 Unauthorized : 인증 실패 시 접근 차단
이를 통해 phpMyAdmin에 직접 접속 시 인증 팝업이 뜨고, 등록된 사용자만 접근 가능하도록 구성하였다.
3. phpMyAdmin 설정 파일 수정하기 (config.inc.php)
1. Blowfish 암호화 키 설정
openssl rand -base64 32
Blowfish 키는 쿠키 기반 인증에 사용되며, 보안성을 위해 32 바이트 이상의 랜덤 문자열이 필요하다.
$cfg['blowfish_secret'] = '생성한 키';
2. 기타 설정
$cfg['NavigationTreeEnableGrouping'] = false;
$cfg['MaxNavigationItems'] = '200';
$cfg['FirstLevelNavigationItems'] = '200';
$cfg['ShowDatabaseNavigationAsTree'] = false;
$cfg['NumRecentTables'] = 0;
$cfg['Servers'][$i]['port'] = '3306';
이 설정들은 phpMyAdmin 인터페이스 구성, 표시 항목 수 제한, 트리 구조 설정 등 사용자 경험 향상 및 성능 최적화 목적을 가지고 있다.
4. MySQL 연결 설정하기
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
- MySQL 서버의 기본 포트 3306을 명시적으로 설정
- 연결 문제 발생 시 추적을 쉽게 하기 위한 안전 설정
5. 기타 구성 항목 (주석 처리 가능 항목)
- 업로드 / 다운로드 디렉터리
- 아이콘 또는 텍스트 표시 방식
- 행 출력 수 제한
- 이진 필드 수정 여부
- 쿼리 히스토리 설정 등
$cfg['UploadDir'] = '';
//$cfg['SaveDir'] = '';
//$cfg['QueryHistoryMax'] = 100;
위 항목들은 프로젝트 환경에 따라 유연하게 설정할 수 있도록 준비해 두었다.
6. 마무리
이번 실습을 통해 phpMyAdmin 설치부터 보안 인증 구성, 다양한 설정 파일 조정까지 경험해 보았다. 특히, 인증 코드를 직접 구현하고 Blowfish 키를 안전하게 생성한 부분은 실제 서비스 운영 시 보안상 매우 중요한 요소이다.
다음 실습에서는 MySQL 데이터베이스 생성과 사용자 권한 설정, 그리고 웹 애플리케이션 연동에 대해 다룰 예정이다.
다음 글 보러 가기
이 블로그는 불법 해킹 및 악의적인 활동을 지양하며, 그런 행위는 절대 권장하지 않습니다.
모든 실습은 허가된 환경에서만 진행해야 하며, 법적 책임은 사용자 본인에게 있습니다.
'리눅스 서버 구축' 카테고리의 다른 글
리눅스 시스템 관리 실습 - 사용자, 패키지, 서비스, 방화벽 관리 (4) | 2025.05.24 |
---|---|
리눅스 서버 구축 실습 - 5편 - Virtual Host 설정과 SSL 인증서 적용 프로젝트 (2) | 2025.05.23 |
리눅스 서버 구축 실습 - 3편 - PHP 모듈 설치 및 보안 설정, phpinfo 조건부 출력 (0) | 2025.05.23 |
리눅스 서버 구축 실습 - 2편 - Apache 보안 설정 강화 및 SSL 활성화 (4) | 2025.05.22 |
리눅스 서버 구축 실습 - 1편 - 시스템 정보 확인부터 Apache2 웹서버 설정까지 (2) | 2025.05.22 |