[태호] MySQL 보안설정 - boostcampwm2023/web04-ALGOCEAN GitHub Wiki
MySQL이 해킹당했음
해결 3줄 요약
- 외부접속 계정의 계정명, 비밀번호 변경
- 외부접속 계정의 권한을 SELECT, INSERT, UPDATE, CREATE, DELETE로 제한
- 외부접속 계정의 로그인 시도 3회 이상 실패 시 9999초 동안 계정 잠금
추정 원인
- 계정명을 추론하기 너무 쉬웠음 (root or admin 사용)
- 비밀번호가 너무 쉬웠음 (1234 사용)
해결
-
해킹당한 데이터베이스를 drop 했음
- DROP DATABASE ALGOCEAN
-
root의 계정명을 변경 (localhost)
- USE MYSQL;
- UPDATE USER SET root USER=’변경할계정명’ WHERE USER=’root’;
- FLUSH PRIVILEGES;
-
변경된 계정명의 PASSWORD를 변경
- ALTER USER '변경된 계정명'@'localhost' IDENTIFIED BY ‘변경할 비밀번호';
-
외부 접속을 허용하기 위해 계정생성
- CREATE USER '계정명'@'%' IDENTIFIED BY '비밀번호';
-
외부 접속 허용 계정의 권한을 제한
- GRANT SELECT, UPDATE, CREATE, DELETE, INSERT PRIVILEGES ON algocean.* TO 'AKAPSDOPA'@'%';
- FLUSH PRIVILEGES;
- ALTER USER ‘변경된 계정명'@'%' IDENTIFIED BY '비밀번호' FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 9999;
- 3회 비밀번호 오류시 계정을 9999시간 잠금
- root 계정에서 계정 잠금을 풀 수 있음 (UNLOCK ACCOUNT)
-
root 계정명 변경은 피해야함
- root 계정명 변경 시 권한설정에 대한 부분을 건드리지 않아도 admin과 관련된 권한들이 잘려나가서 root 계정을 복구할 수 없음