기본적으로 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
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
준비가 된.
No Comments Yet