Image

지식 기반 → MariaDB 데이터베이스에 대한 원격 액세스 설정

[가상 서버]
출판 날짜: 17.10.2023

기본적으로 MariaDB 데이터베이스 서비스에 대한 원격 액세스는 보안상의 이유로 비활성화되어 있습니다. 이 가이드에서는 IP 주소로 데이터베이스에 대한 원격 액세스를 설정하는 방법을 살펴보겠습니다.

2개의 서버가 있고 그 중 하나에는 특정 시스템(웹사이트/crm)이 있고 다른 하나에는 서버의 로그인, 비밀번호 및 IP 주소를 지정하여 데이터베이스를 저장하고 데이터를 요청한다고 가정해 보겠습니다.

#1. 설정 준비 중

1.1 구성 파일을 확인해 봅시다

연결 옵션이 주석 처리되지 않았는지 확인하고 다음과 같이 표시됩니다:

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

...
bind-address = 0.0.0.0
...

설정을 적용하려면 서비스를 다시 시작하세요

systemctl restart mariadb

1.2 포트의 가용성을 확인해 봅시다

netstat -ant | grep 3306

tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN

2. Настройка

mysql -u aroot -p

2.1 데이터베이스와 사용자를 생성해보자

CREATE DATABASE base1;
CREATE USER  'user1'@'localhost' IDENTIFIED BY 'password';

2.2 연결할 서버의 IP를 지정하여 연결을 허용해 보겠습니다

GRANT ALL ON base1.* to 'user1'@'xx.ip.xx.ip' IDENTIFIED BY 'password' WITH GRANT OPTION;
FLUSH PRIVILEGES;
EXIT;

이러한 세부정보를 사용하여 다음을 연결할 수 있습니다:

  • base1 - 데이터베이스.
  • user1 - 사용자.
  • password - 비밀번호입니다.
  • xx.ip.xx.ip - 연결할 서버의 IP 주소입니다.

2.3 기타 예

2.3.1 지정된 IP에서 모든 데이터베이스에 대한 접근을 허용합니다

GRANT ALL ON *.* to 'user1'@'xx.ip.xx.ip' IDENTIFIED BY 'password' WITH GRANT OPTION;

2.3.2 모든 IP 주소에서 base1로의 연결 허용

GRANT ALL ON base1.* to 'user1'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

2.3.3 특정 서브넷에서 base1로의 연결만 허용

GRANT ALL ON base1.* to 'user1'@'xx.ip.xx.%' IDENTIFIED BY 'password' WITH GRANT OPTION;

3. iptables 방화벽 설정

3.1 특정 IP만 허용하자

iptables -A INPUT -p tcp -s xx.ip.xx.ip --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

3.2 모든 ip를 허용하자

iptables -A INPUT -p tcp -m tcp --dport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

3.3 특정 서브넷 허용

iptables -A INPUT -p tcp -s xx.ip.xx.0/24 --dport 3306 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 3306 -m conntrack --ctstate ESTABLISHED -j ACCEPT

4. 서버 1의 연결을 확인해보자

4.1 mariadb 클라이언트 설치

apt install mariadb-client

4.2 구성된 서버에 연결

mysql -u wpuser -h ip.xx.ip.xx -p

Enter password:

MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| information_schema |
| base1              |
+--------------------+
2 rows in set (0.10 sec)

준비가 된.





No Comments Yet