소개
MariaDB는 오픈 소스 관계형 데이터베이스 관리 시스템으로, 인기 있는 LAMP (Linux, Apache, MySQL, PHP/Python/Perl) 스택의 데이터베이스 부분으로서 MySQL의 대안으로 자주 사용됩니다. 이는 MySQL의 대체품으로 사용되도록 의도되었습니다.
이 설치 가이드의 간략한 버전은 다음 세 단계로 구성됩니다:
apt
를 사용하여 패키지 인덱스를 업데이트합니다apt
를 사용하여mariadb-server
패키지를 설치합니다. 이 패키지는 MariaDB와 상호 작용하기 위한 관련 도구도 가져옵니다- 포함된
mysql_secure_installation
보안 스크립트를 실행하여 서버 접근을 제한합니다
이 자습서에서는 Ubuntu 22.04 서버에 MariaDB를 설치하고 실행 중인지 확인하고 안전한 초기 구성이 있는지 설명합니다.
전제 조건
- 이 튜토리얼을 따르려면 Ubuntu 22.04를 실행 중인 서버가 필요합니다. 이 서버에는 루트 권한이 없는 관리용 사용자와 UFW로 구성된 방화벽이 있어야합니다. 이를 설정하려면 Ubuntu 22.04용 초기 서버 설정 가이드를 따르십시오.
단계 1 — MariaDB 설치
이 문서 작성 시점에서 Ubuntu 22.04의 기본 APT 저장소에는 MariaDB 버전 10.5.12가 포함되어 있습니다.
설치하려면 서버에서 패키지 인덱스를 업데이트하십시오: apt
를 사용하여:
그런 다음 패키지를 설치하십시오:
이 명령은 MariaDB를 설치하지만 비밀번호를 설정하거나 다른 구성 변경을 요청하지 않습니다. 기본 구성은 MariaDB 설치를 보안 없는 상태로 남겨둡니다. 서버 액세스를 제한하고 사용되지 않는 계정을 제거하기 위해 mariadb-server
패키지가 제공하는 스크립트를 사용할 것입니다.
단계 2 — MariaDB 구성
새 MariaDB 설치에 대해 다음 단계는 포함된 보안 스크립트를 실행하는 것입니다. 이 스크립트는 원격 루트 로그인 및 샘플 사용자와 같은 일부 보안되지 않은 기본 옵션을 변경합니다.
보안 스크립트를 실행하십시오:
이 스크립트는 일련의 프롬프트를 통해 MariaDB 설치의 보안 옵션을 변경할 수 있는 기회를 제공합니다. 첫 번째 프롬프트에서는 현재 데이터베이스 root 암호를 입력하라고 요청합니다. 아직 설정하지 않았으므로 “없음”을 나타내기 위해 ENTER
를 누르세요.
OutputNOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, you'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none):
다음으로, unix 소켓 인증으로 전환하고 싶은지 물어봅니다. 이미 보호된 root 계정이 있으므로 이 단계를 건너뛸 수 있습니다. n
을 입력하고 ENTER
를 누르세요.
Output. . .
Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.
You already have your root account protected, so you can safely answer 'n'.
Switch to unix_socket authentication [Y/n] n
다음 프롬프트에서는 데이터베이스 root 암호를 설정하고 싶은지 물어봅니다. Ubuntu에서 MariaDB의 root 계정은 자동 시스템 유지 관리와 긴밀하게 연결되어 있으므로 해당 계정의 구성된 인증 방법을 변경해서는 안됩니다.
이렇게하면 패키지 업데이트가 관리 계정에 대한 액세스를 제거함으로써 데이터베이스 시스템을 손상시킬 수 있습니다. n
을 입력하고 ENTER
를 누르세요.
Output. . .
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] n
나중에 소켓 인증이 사용 사례에 적합하지 않은 경우 비밀번호 액세스를 위한 추가 관리 계정을 설정하는 방법을 설명하겠습니다.
그런 다음 모든 후속 질문에 대한 기본값을 수락하려면 Y
를 누르고 ENTER
를 누르세요. 이렇게하면 일부 익명 사용자와 테스트 데이터베이스가 제거되고, 원격 root 로그인이 비활성화되며, 이러한 새 규칙이로드되어 MariaDB가 즉시 적용됩니다.
그렇게 하면 MariaDB의 초기 보안 구성이 완료됩니다. 다음 단계는 선택 사항입니다. 그러나 MariaDB 서버에 암호를 사용하여 인증하려면 이 단계를 따르는 것이 좋습니다.
단계 3 – (선택 사항) 암호 인증을 사용하는 관리 사용자 만들기
Ubuntu 시스템에서 MariaDB 10.5를 실행하는 경우 기본적으로 unix_socket
플러그인을 사용하여 root MariaDB 사용자를 인증합니다. 이는 많은 경우에 보다 큰 보안과 사용 편의성을 제공하지만 외부 프로그램(예: phpMyAdmin)에게 관리 권한을 부여해야 하는 경우에는 복잡성을 야기할 수도 있습니다.
서버가 로그 회전 및 서버 시작 및 중지와 같은 작업을 수행하는 데 root 계정을 사용하므로 root 계정의 인증 정보를 변경하는 것이 좋지 않습니다. /etc/mysql/debian.cnf
구성 파일에서 자격 증명을 변경하는 것은 초기에는 작동할 수 있지만 패키지 업데이트가 해당 변경 사항을 덮어쓸 수 있습니다. 패키지 유지 관리자는 root 계정을 수정하는 대신 암호 기반 액세스용 별도의 관리 계정을 만들 것을 권장합니다.
이를 위해 admin이라는 새 계정을 만들 것입니다. 이 계정은 root 계정과 동일한 기능을 가지지만, 암호 인증이 구성될 것입니다. 터미널에서 MariaDB 프롬프트를 열어주세요:
그런 다음 root 권한과 암호 기반 액세스를 가진 새 사용자를 만들어주세요. 사용자 이름과 암호를 원하는 대로 변경하세요:
세션에서 권한을 플러시하여 저장되고 현재 세션에서 사용할 수 있도록 해주세요:
이후 MariaDB 셸을 종료해주세요:
마지막으로 MariaDB 설치를 테스트해보겠습니다.
단계 4 — MariaDB 테스트
기본 저장소에서 설치된 경우 MariaDB는 자동으로 실행됩니다. 이를 테스트하려면 상태를 확인하세요.
다음과 유사한 출력을 받게 될 것입니다:
Output● mariadb.service - MariaDB 10.5.12 database server
Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-03-11 22:01:33 UTC; 14min ago
Docs: man:mariadbd(8)
https://mariadb.com/kb/en/library/systemd/
. . .
MariaDB가 실행되지 않은 경우 sudo systemctl start mariadb
명령으로 시작할 수 있습니다.
추가로, 관리 명령을 실행할 수 있는 mysqladmin
도구를 사용하여 데이터베이스에 연결해보세요. 예를 들어, 이 명령은 유닉스 소켓을 사용하여 root로 MariaDB에 연결하고 버전을 반환합니다:
이와 유사한 출력을 받게 될 것입니다.
Outputmysqladmin Ver 9.1 Distrib 10.5.12-MariaDB, for debian-linux-gnu on x86_64
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Server version 10.5.12-MariaDB-1build1
Protocol version 10
Connection Localhost via UNIX socket
UNIX socket /run/mysqld/mysqld.sock
Uptime: 15 min 53 sec
Threads: 1 Questions: 482 Slow queries: 0 Opens: 171 Open tables: 28 Queries per second avg: 0.505
결론
이 가이드에서는 MariaDB 관계형 데이터베이스 관리 시스템을 설치하고, 함께 설치된 mysql_secure_installation
스크립트를 사용하여 보안을 강화했습니다. 또한 MariaDB 서버의 기능을 테스트하기 전에 비밀번호 인증을 사용하는 새로운 관리자 사용자를 생성할 수 있었습니다.
이제 실행 중이고 안전한 MariaDB 서버가 있으므로, 다음 단계로 진행할 수 있는 몇 가지 예제를 살펴보겠습니다:
Source:
https://www.digitalocean.com/community/tutorials/how-to-install-mariadb-on-ubuntu-22-04