DB 포트 변경

기본 DB 포트가 아닌, 다른 포트로 변경하는게 보안상 더 안전하다.

(포트 변경 후, 외부에서 포트로 접속 하려면 해당 포트 방화벽에서 열어주어야 함)

 

1. 서버 접속 후 db 설정파일 열기

vi /etc/my.cnf.d/server.cnf

 

2. 다음 설정 파일에서 [mysql] 섹션 바로 아래에 port 변경

[mysqld]

port=바꿀 포트 번호

 

3. 포트번호 변경 후 저장하고 mariadb 재기동

systemctl restart mariadb

 

4. mariadb 실행중 포트 확인

netstat -tnlp

 

DB 루트 패스워드 변경

기본 루트 패스워드 쓰지 말고, 복잡한 패스워드로 바꾼다.

 

1. DB 접속

mysql -u root -p

 

2. 패스워드 업데이트

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_secure_password');

 

3. 권한 flush

FLUSH PRIVILEGES;

 

4. 패스워드 포맷 확인

USE mysql; SELECT Host, User, Password FROM user WHERE User = 'root';

 

사용자 계정 생성 & 권한 설정

root계정은 외부 접속 못하게 한다. 사용자 계정도 가급적 내부 접속만 허용하게 한다.

 

1. 사용자 생성

# create user '계정'@'접속위치' identified by '패스워드';

ex) create user 'test'@'127.0.0.1' identified by 'Password'; -- 내부접속만 허용

ex) create user 'test2'@'%' identified by 'Password'; -- 외부접속 허용

 

2. 권한 주기

전체 권한 부여 (접속 위치에 %는 쓰지 말도록 하자. 가급적 localhost만 쓰거나, ip를 특정하는 것이 좋다.)

grant all privileges on DB이름.테이블 to '계정'@'접속위치';

ex) grant all privileges on testDB.* to 'test2'@'%';

ex) grant all privileges on testDB.* to 'test2'@'localhost';

 

usage (삭제하면 로그인조차 안됨) 권한 부여, 삭제

usage 권한 부여

mysql> GRANT USAGE ON *.* TO USER_NAME@HOST IDENTIFIED BY 'USER_NAME';

 

usage 권한 삭제

mysql> REVOKE USAGE ON *.* FROM USER_NAME@HOST;

 

3. 권한 적용

flush privileges;

 

4. 권한 확인

show grants for '계정'@'접속위치';

 

외부접속 허용제거

가급적 모든 아이디의 외부 접속을 막고, 꼭 필요하다면 아이피를 특정하여 외부 접속을 허용한다.

 

% 모든아이피 허용제거
mysql> DELETE FROM mysql.user WHERE Host=’%’ AND User=’아이디’;

 

특정ip허용 제거
mysql> DELETE FROM mysql.user WHERE Host=’111.111.111.111′ AND User=’아이디’;

 

설정적용
mysql> FLUSH privileges;

 

사용자 확인

select host, user, password from mysql.user;

 

DB 백업/복구, 자동백업(crontab)

해킹을 대비하여, 매일 DB 백업을 하도록 설정한다.

- crontab에 db 백업 스크립트 등록하여, 자동으로 백업하도록 설정

- 백업 파일이 쌓이면 디스크 full 날 수 있으므로, 특정 주기로 예전 백업은 삭제하도록 설정

https://foxydog.tistory.com/94

 

 

 

 

참고

https://tipland.tistory.com/47 

https://da-new.tistory.com/237

https://blog.servis.co.kr/index.php/2019/06/28/mysql-not-allowed-to-connect/

https://grmn.tistory.com/7

 

 

+ Recent posts