저희 리눅스 서버에 mysql이 깔려 있는데 퇴사한 직원이 외부에서 접속을 하는 것 같습니다.
부득이한 사정으로 ID와 PASSWD를 바꿀수 없는 상황이라 접속한 IP를 알면 차단하고 싶은데 외부에서 mysql에 접속한 IP list를 확인 할 수 있나요??
퇴사한 직원에 의해서 DB가 유출되고 있습니다.
고수님들 도와 주세요
현재 접속된 user를 보려면 "SHOW PROCESSLIST" 명령을 내리면 됩니다.
접속 기록을 남기려면 MySQL의 general_log라는 것을 enable 시키면 되는데요. 그러면 user가 실행한 모든 query가 기록됩니다. 의심되는 사람이 접속을 했다면, 그 사람이 실행한 쿼리도 알 수 있죠.
무제는 general_log는 모든 query가 로깅되기 때문에 부하가 많은 경우 disk가 금방 full될 수 있습니다.
mysql은 user name과 접근 ip address의 조합으로 권한관리를 합니다.
mysql.users 테이블을 조회해 보시면, 어떤 user가 어떤 ip에서 접속가능하지를 알수 있습니다.
기본적으로는 어떤 상황에서도 회사 ip 이외의 ip가 users에 등록되어 있으면 안되겠지요.
혹시 지금이 그런 상황이면 users테이블의 host 컬럼의 값을 적절히 수정후 flush privileges; 명령을 실행하면 허락된 ip이외의 곳에서는 접속이 불가능하게 됩니다.
보안을 위해서는 이외에도 iptable과 같은 local firewall을 사용하시는걸 추천드립니다.