Ubuntu 16.04에서 SSL을 지원하는 안전한 MariaDB

MariaDB는 무료 오픈 소스 데이터베이스이며 MySQL에서 가장 널리 사용되는 드롭 인 대체품입니다. MySQL 개발자가 만든 것으로 GNU GPL 하에서 자유로 워야합니다. 매우 빠르고 확장 가능하며 다양한 사용 사례에 매우 유용한 다양한 기능 세트가 제공됩니다.

이 튜토리얼은 Ubuntu 16.04에서 SSL을 지원하는 MariaDB를 설치하고 구성하는 방법을 안내합니다.

요구 사항

  • 새로운 우분투 16.04 Vultr 인스턴스.
  • sudo 권한이있는 루트가 아닌 사용자
  • 고정 IP 주소 192.168.0.190이 서버 인스턴스에 구성되어 있습니다.
  • 고정 IP 주소 192.168.0.191이 클라이언트 시스템에 구성되어 있습니다.

1 단계 : MariaDB 설치

기본적으로 Ubuntu 16.04 리포지토리에서 최신 버전의 MariaDB를 사용할 수 없습니다. 따라서 시스템에 MariaDB 저장소를 추가해야합니다.

먼저 다음 명령으로 키를 다운로드하십시오.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

다음으로 MariaDB 저장소를 /etc/apt/sources.list파일에 추가 하십시오.

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

다음 명령으로 apt 색인을 업데이트하십시오.

sudo apt-get update -y

apt 색인이 업데이트되면 다음 명령을 사용하여 MariaDB 서버를 설치하십시오.

sudo apt-get install mariadb-server -y

MariaDB 서버를 시작하고 부팅시 시작하도록 활성화하십시오.

sudo systemctl start mysql
sudo systemctl enable mysql

다음으로 mysql_secure_installationMariaDB 설치를 보호하기 위해 스크립트를 실행해야 합니다. 이 스크립트를 사용하면 루트 비밀번호를 설정하고 익명 사용자를 제거하고 원격 루트 로그인을 허용하지 않고 테스트 데이터베이스를 제거 할 수 있습니다.

sudo mysql_secure_installation

2 단계 : 서버에 대한 SSL 인증서 및 개인 키 작성

먼저 모든 키 및 인증서 파일을 저장할 디렉토리를 작성하십시오.

sudo mkdir /etc/mysql-ssl

다음으로 디렉토리를 변경 /etc/mysql-ssl하고 다음 명령으로 CA 인증서 및 개인 키를 작성하십시오.

sudo cd /etc/mysql-ssl
sudo openssl genrsa 2048 > ca-key.pem
sudo openssl req -new -x509 -nodes -days 365000 -key ca-key.pem -out ca-cert.pem

아래와 같이 모든 질문에 답하십시오 :

You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:GUJ
Locality Name (eg, city) []:JND
Organization Name (eg, company) [Internet Widgits Pty Ltd]:ENJ
Organizational Unit Name (eg, section) []:SYSTEM
Common Name (e.g. server FQDN or YOUR name) []:HITESH
Email Address []:[email protected]

다음 명령으로 서버의 개인 키를 작성하십시오.

sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout server-key.pem -out server-req.pem

이전 명령에서했던 것처럼 모든 질문에 대답하십시오.

다음 명령을 사용하여 서버의 개인 키를 RSA 유형 키로 내 보냅니다.

sudo sudo openssl rsa -in server-key.pem -out server-key.pem

마지막으로 다음과 같이 CA 인증서를 사용하여 서버 인증서를 생성하십시오.

sudo openssl x509 -req -in server-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out server-cert.pem

이제 다음 명령으로 모든 인증서와 키를 볼 수 있습니다.

ls

다음과 같은 결과가 나타납니다.

ca-cert.pem  ca-key.pem  server-cert.pem  server-key.pem  server-req.pem

완료되면 다음 단계로 진행할 수 있습니다.

3 단계 : SSL을 사용하도록 MariaDB 서버 구성

모든 인증서와 개인 키가 있어야합니다. 이제 키와 인증서를 사용하도록 MariaDB를 구성해야합니다. /etc/mysql/mariadb.conf.d/50-server.cnf파일 을 편집하여이를 수행 할 수 있습니다 .

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

[mysqld]섹션 아래에 다음 줄을 추가 하십시오.

ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/server-cert.pem
ssl-key=/etc/mysql-ssl/server-key.pem

##Change this value to connect the MariaDB server from another host.
bind-address = *

파일을 저장 한 다음 MariaDB 서비스를 다시 시작하여 다음 변경 사항을 적용하십시오.

sudo systemctl restart mysql

이제 다음 쿼리에서 SSL 구성이 작동 중인지 확인할 수 있습니다.

mysql -u root -p
MariaDB [(none)]> SHOW VARIABLES LIKE '%ssl%';

구성에 성공하면 다음 출력이 표시됩니다.

+---------------+--------------------------------+
| Variable_name | Value                          |
+---------------+--------------------------------+
| have_openssl  | YES                            |
| have_ssl      | YES                            |
| ssl_ca        | /etc/mysql-ssl/ca-cert.pem     |
| ssl_capath    |                                |
| ssl_cert      | /etc/mysql-ssl/server-cert.pem |
| ssl_cipher    |                                |
| ssl_crl       |                                |
| ssl_crlpath   |                                |
| ssl_key       | /etc/mysql-ssl/server-key.pem  |
+---------------+--------------------------------+

당신은 통지해야 have_ssl하고 have_openssl값은 위의 출력에 사용할 수 있습니다.

4 단계 : SSL 권한이있는 사용자 작성

SSL을 통해 MariaDB 서버에 액세스 할 권한이있는 원격 사용자를 작성하십시오. 다음 명령을 실행하여이를 수행하십시오.

먼저 MySQL 쉘에 로그인하십시오 :

mysql -u root -p

그런 다음, 사용자를 작성 remote하고 SSL을 통해 서버에 액세스 할 수있는 권한을 부여하십시오.

MariaDB [(none)]>GRANT ALL PRIVILEGES ON *.* TO 'remote'@'192.168.0.191' IDENTIFIED BY 'password' REQUIRE SSL;

그런 다음 다음 명령으로 권한을 플러시하십시오.

MariaDB [(none)]>FLUSH PRIVILEGES;

마지막으로 다음 명령을 사용하여 MySQL 셸을 종료하십시오.

MariaDB [(none)]>exit;

참고 : 192.168.0.191은 원격 사용자 (클라이언트) 시스템의 IP 주소입니다.

이제 서버가 원격 사용자에게 연결할 수 있습니다.

5 단계 : 클라이언트 인증서 생성

서버 측 구성이 완료되었습니다. 다음으로 클라이언트에 대한 새 키와 인증서를 작성해야합니다.

서버 시스템에서 다음 명령을 사용하여 클라이언트 키를 작성하십시오.

sudo cd /etc/mysql-ssl
sudo sudo openssl req -newkey rsa:2048 -days 365 -nodes -keyout client-key.pem -out client-req.pem

다음 명령으로 클라이언트 RSA 키를 처리하십시오.

sudo openssl rsa -in client-key.pem -out client-key.pem

마지막으로 다음 명령으로 클라이언트 인증서에 서명하십시오.

sudo openssl x509 -req -in client-req.pem -days 365 -CA ca-cert.pem -CAkey ca-key.pem -set_serial 01 -out client-cert.pem

6 단계 : SSL을 사용하도록 MariaDB 클라이언트 구성

모든 인증서와 키가 클라이언트를 위해 준비되었습니다. 다음으로, 모든 클라이언트 인증서를 MariaDB 클라이언트를 실행하려는 클라이언트 시스템으로 복사해야합니다.

클라이언트 머신에 MariaDB 클라이언트를 설치해야합니다.

먼저 클라이언트 시스템에서 다음 명령을 사용하여 MariaDB 키를 다운로드하십시오.

sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

그런 다음 MariaDB 저장소를 /etc/apt/sources.list파일에 추가 하십시오.

sudo echo "deb [arch=amd64,i386,ppc64el] http://ftp.utexas.edu/mariadb/repo/10.1/ubuntu xenial main" >> /etc/apt/sources.list

다음 명령으로 apt 색인을 업데이트하십시오.

sudo apt-get update -y

apt 색인이 업데이트되면 다음 명령을 사용하여 클라이언트 머신에 MariaDB 클라이언트를 설치하십시오.

sudo apt-get install mariadb-client -y

이제 모든 인증서를 저장할 디렉토리를 작성하십시오.

sudo mkdir /etc/mysql-ssl

다음 명령을 사용하여 모든 클라이언트 인증서를 서버 시스템에서 클라이언트 시스템으로 복사하십시오.

sudo scp [email protected]:/etc/mysql-ssl/client-* /etc/mysql-ssl/

그런 다음 SSL을 사용하도록 MariaDB 클라이언트를 구성해야합니다. /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf파일 을 작성하여이를 수행 할 수 있습니다 .

sudo nano /etc/mysql/mariadb.conf.d/50-mysql-clients.cnf

다음 줄을 추가하십시오.

[client]
ssl-ca=/etc/mysql-ssl/ca-cert.pem
ssl-cert=/etc/mysql-ssl/client-cert.pem
ssl-key=/etc/mysql-ssl/client-key.pem

완료되면 파일을 저장하십시오.

7 단계 : 원격 연결 확인

이제 모든 것이 구성되었으므로 이제 MariaDB 서버에 연결할 수 있는지 여부를 확인할 차례입니다.

클라이언트 시스템에서 다음 명령을 실행하여 MariaDB 서버에 연결하십시오.

mysql -u remote -h 192.168.0.190 -p mysql

remote사용자 비밀번호 를 입력하라는 메시지가 표시됩니다 . 암호를 입력하면 원격 MariaDB 서버에 로그인됩니다.

다음 명령으로 연결 상태를 확인하십시오.

MariaDB [mysql]> status

다음과 같은 결과가 나타납니다.

--------------
mysql  Ver 15.1 Distrib 10.2.7-MariaDB, for debian-linux-gnu (x86_64) using readline 5.2

Connection id:      62
Current database:   mysql
Current user:       [email protected]
SSL:            Cipher in use is DHE-RSA-AES256-SHA
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server:         MariaDB
Server version:     10.0.31-MariaDB-0ubuntu0.16.04.2 Ubuntu 16.04
Protocol version:   10
Connection:     192.168.0.190 via TCP/IP
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    utf8
Conn.  characterset:    utf8
TCP port:       3306
Uptime:         1 hours 31 min 31 sec

SSL: Cipher in use is DHE-RSA-AES256-SHA위 출력에서 볼 수 있습니다. 즉, 이제 SSL로 안전하게 연결됩니다.

결론

축하합니다! SSL을 지원하는 MariaDB 서버를 성공적으로 구성했습니다. 이제 SSL을 통해 MariaDB 서버에 액세스하기 위해 다른 클라이언트에 대한 액세스 권한을 부여 할 수 있습니다.



Leave a Comment

코골이가있는 앞마당 2 설정

코골이가있는 앞마당 2 설정

Barnyard2는 Snort의 바이너리 출력을 MySQL 데이터베이스에 저장하고 처리하는 방법입니다. 시작하기 전에 코골이가 없으면

MongoDB 보안

MongoDB 보안

MongoDB는 기본적으로 안전하지 않습니다. 인증을 위해 구성하지 않고 MongoDB를 설치하고 시작하는 경우 시간이 오래 걸립니다

CentOS 7에 Laravel GitScrum을 설치하는 방법

CentOS 7에 Laravel GitScrum을 설치하는 방법

Laravel GitScrum 또는 GitScrum은 개발 팀이 비슷한 방식으로 Scrum 방법론을 구현할 수 있도록 설계된 오픈 소스 생산성 도구입니다.

OpenBSD 6에서 MariaDB 구성

OpenBSD 6에서 MariaDB 구성

이 기사에서는 OpenBSD 6에 MariaDB를 설치하고 chroot 된 웹 서버 (Apache 또는 Nginx)에 액세스 할 수 있도록 구성하는 방법을 보여줍니다. 당신은 Als

Ubuntu 16.04에서 ArangoDB를 설치하고 사용하는 방법

Ubuntu 16.04에서 ArangoDB를 설치하고 사용하는 방법

다른 시스템을 사용하십니까? 소개 ArangoDB는 문서, 그래프 및 키-값을위한 유연한 데이터 모델을 갖춘 오픈 소스 NoSQL 데이터베이스입니다. 그것은

Arch Linux에 MongoDB 4.0을 설치하는 방법

Arch Linux에 MongoDB 4.0을 설치하는 방법

전제 조건 최신 Arch Linux를 실행하는 Vultr 서버 (이 기사 참조) Sudo 액세스 : 루트로 실행하는 데 필요한 명령 앞에는 #이 있고 하나는

MySQL 데이터베이스 백업

MySQL 데이터베이스 백업

MySQL은 데이터베이스에 사용되는 세계에서 가장 널리 사용되는 소프트웨어입니다. 데이터베이스 백업이 매우 중요합니다. 이 연습은

여러 MySQL 또는 MariaDB 데이터베이스를 자동으로 백업

여러 MySQL 또는 MariaDB 데이터베이스를 자동으로 백업

소개이 글에서, 사용자 정의 bash scrip을 사용하여 동일한 머신에있는 여러 MySQL 또는 MariaDB 데이터베이스를 백업하는 방법을 익히십시오.

CentOS 7에 Apache Cassandra 3.11.x를 설치하는 방법

CentOS 7에 Apache Cassandra 3.11.x를 설치하는 방법

다른 시스템을 사용하십니까? Apache Cassandra는 무료로 제공되는 오픈 소스 NoSQL 데이터베이스 관리 시스템으로 확장 성을 제공하도록 설계되었습니다.

CentOS 7에서 ArangoDB를 설치하고 구성하는 방법

CentOS 7에서 ArangoDB를 설치하고 구성하는 방법

다른 시스템을 사용하십니까? 소개 ArangoDB는 문서, 그래프 및 키-값을위한 유연한 데이터 모델을 갖춘 오픈 소스 NoSQL 데이터베이스입니다. 그것은

데비안 7에 최신 버전의 MongoDB 설치

데비안 7에 최신 버전의 MongoDB 설치

MongoDB는 빠르고 강력한 NoSQL 데이터베이스입니다. 그러나 데비안 리포지토리는 느리게 업데이트되며 종종 매우 오래된 버전의 패키지를 포함합니다. 이 tutoria

Ubuntu 16.04 LTS에 Apache Cassandra 3.11.x를 설치하는 방법

Ubuntu 16.04 LTS에 Apache Cassandra 3.11.x를 설치하는 방법

다른 시스템을 사용하십니까? Apache Cassandra는 무료로 제공되는 오픈 소스 NoSQL 데이터베이스 관리 시스템으로 확장 성을 제공하도록 설계되었습니다.

CentOS 7에서 OrientDB Community Edition을 설치하고 구성하는 방법

CentOS 7에서 OrientDB Community Edition을 설치하고 구성하는 방법

OrientDB는 차세대 다중 모델 오픈 소스 NoSQL DBMS입니다. 여러 데이터 모델을 지원함으로써 OrientDB는 더 많은 기능과 유연성을 제공 할 수 있습니다.

CentOS 7에 phpRedisAdmin을 설치하는 방법

CentOS 7에 phpRedisAdmin을 설치하는 방법

phpRedisAdmin은 직관적 인 그래픽 사용자 인터페이스로 Redis 데이터베이스를 관리하는 웹 애플리케이션입니다. 이 튜토리얼은 설치하는 방법을 설명합니다

Arch Linux에서 MariaDB 10.3 또는 MySQL 8.0을 설치하는 방법

Arch Linux에서 MariaDB 10.3 또는 MySQL 8.0을 설치하는 방법

전제 조건 최신 Linux Linux를 실행하는 Vultr 서버 (이 기사 참조) Sudo 액세스 : 루트로 실행해야하는 명령 앞에는 #이 있고 하나가 있습니다.

데비안 9에 Apache Cassandra 3.11.x를 설치하는 방법

데비안 9에 Apache Cassandra 3.11.x를 설치하는 방법

다른 시스템을 사용하십니까? Apache Cassandra는 무료로 제공되는 오픈 소스 NoSQL 데이터베이스 관리 시스템으로 확장 성을 제공하도록 설계되었습니다.

Ubuntu 15.10에 Redis를 설치하는 방법

Ubuntu 15.10에 Redis를 설치하는 방법

Redis는 종종 NoSQL 데이터베이스라고하는 키-값 데이터 스토리지 솔루션입니다. 인 메모리 부이므로 매우 높은 읽기 / 쓰기 속도를 달성 할 수 있습니다.

Ubuntu 16.04에서 MySQL / MariaDB 데이터베이스를 백업, 복원 또는 전송하는 방법

Ubuntu 16.04에서 MySQL / MariaDB 데이터베이스를 백업, 복원 또는 전송하는 방법

백업은 데이터베이스 처리에서 중요한 부분입니다. 회사 사이트를 운영하든 WordPress를 호스팅하든 관계없이 백업하는 것이 중요합니다.

Arch Linux에 PostgreSQL 11.1을 설치하는 방법

Arch Linux에 PostgreSQL 11.1을 설치하는 방법

전제 조건 Arch Linux 최신 버전으로 실행되는 Vultr 서버 (이 기사 참조) Sudo 액세스. 루트로 실행하는 데 필요한 명령 앞에는 #이 있고 하나는

Redis로 WordPress를 구성하는 방법

Redis로 WordPress를 구성하는 방법

Redis는 데이터 구조 저장소입니다. 캐싱에 최적화 된 접근 방식으로 인해 성능이 크게 향상되므로 WordPress 사이트에서 인기가 있습니다.

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

AI가 랜섬웨어 공격의 증가와 싸울 수 있습니까?

랜섬웨어 공격이 증가하고 있지만 AI가 최신 컴퓨터 바이러스를 처리하는 데 도움이 될 수 있습니까? AI가 답인가? AI boone 또는 bane인지 여기에서 읽으십시오.

ReactOS: 이것이 Windows의 미래입니까?

ReactOS: 이것이 Windows의 미래입니까?

오픈 소스이자 무료 운영 체제인 ReactOS가 최신 버전과 함께 제공됩니다. 현대 Windows 사용자의 요구 사항을 충족하고 Microsoft를 무너뜨릴 수 있습니까? 이 구식이지만 더 새로운 OS 환경에 대해 자세히 알아보겠습니다.

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

WhatsApp 데스크톱 앱 24*7을 통해 연결 유지

Whatsapp은 마침내 Mac 및 Windows 사용자용 데스크톱 앱을 출시했습니다. 이제 Windows 또는 Mac에서 Whatsapp에 쉽게 액세스할 수 있습니다. Windows 8 이상 및 Mac OS 10.9 이상에서 사용 가능

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

AI는 어떻게 프로세스 자동화를 다음 단계로 끌어올릴 수 있습니까?

인공 지능이 소규모 회사에서 어떻게 인기를 얻고 있으며 어떻게 인공 지능이 성장할 가능성을 높이고 경쟁자가 우위를 점할 수 있는지 알아보려면 이 기사를 읽으십시오.

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

macOS Catalina 10.15.4 추가 업데이트로 인해 해결보다 더 많은 문제가 발생함

최근 Apple은 문제를 해결하기 위해 macOS Catalina 10.15.4 추가 업데이트를 출시했지만 이 업데이트로 인해 Mac 컴퓨터의 브릭킹으로 이어지는 더 많은 문제가 발생하는 것 같습니다. 자세히 알아보려면 이 기사를 읽어보세요.

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

빅데이터의 13가지 상용 데이터 추출 도구

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

저널링 파일 시스템이란 무엇이며 어떻게 작동합니까?

우리 컴퓨터는 모든 데이터를 저널링 파일 시스템이라고 하는 체계적인 방식으로 저장합니다. 검색을 누르는 즉시 컴퓨터에서 파일을 검색하고 표시할 수 있는 효율적인 방법입니다.https://wethegeek.com/?p=94116&preview=true

기술적 특이점: 인류 문명의 먼 미래?

기술적 특이점: 인류 문명의 먼 미래?

과학이 빠른 속도로 발전하고 우리의 많은 노력을 인수함에 따라 설명할 수 없는 특이점에 처할 위험도 높아집니다. 특이점이 우리에게 무엇을 의미할 수 있는지 읽어보십시오.

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

26가지 빅 데이터 분석 기법에 대한 통찰: 1부

2021년 의료 분야에서 인공 지능의 영향

2021년 의료 분야에서 인공 지능의 영향

의료 분야의 AI는 지난 수십 년 동안 큰 도약을 했습니다. 따라서 의료 분야에서 AI의 미래는 여전히 나날이 성장하고 있습니다.