티스토리 뷰

Linux

mysql 외부 접속 차단하기

초보의 CHOMAN 2015.06.11 13:25

서버1대에 웹 + DB + 기타 모든 서비스를 운용중이라면 DB 서비스는 외부에서 접근할 필요가 없다.


DB서버에


netstat -anlp | grep 3306 명령어를 통해 확인해 보면





0.0.0.0:3306 → 모든 아이피에 대해 TCP 3306포트가 LISTEN 상태이다.



외부에서 해당 서버로 포트 스캔을 해보자



 


해당 서버는 mysql 이 구동중이라는것을 누구나 알게된다. 당장 문제는 없겠지만 mysql 취약점이 발견되거나


외부에서 해당 서버로 3306번 포트로 접근이 가능하기 때문에 접속할수 있는 빌미를 제공할수가 있다.



telnet 명령어를 통해 3306번 포트를 접근해보자





접근은 되지만 mysql 서비스가 외부 접근은 닫혀 있다라고 메세지가 뜬다.


어쨋든 외부 사용자가 mysql 서비스로 신호를 보내고 mysql 서비스는 외부 접근은 허용할수 없다 라고 메세지를 보내는것이다.



그냥 깔끔하게 아래 파일을 수정해보자


vim /etc/my.cnf (skip-networking 문자열 추가)

[mysqld]

datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

user=mysql

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

skip-networking


[mysqld_safe]

log-error=/var/log/mysqld.log

pid-file=/var/run/mysqld/mysqld.pid 


mysql 재시작을 하니 외부에서는 3306번 포트로 접근할수가 없었다.


제로보드 XE 에 대해서는 아래와 같이 에러가 발생함



 



다시 원복 시키고 mysql 재시작후 일단 문제점을 찾을때 까지는 방화벽을 올려야겠다.


 *filter

:INPUT ACCEPT [0:0]

:FORWARD ACCEPT [0:0]

:OUTPUT ACCEPT [0:0]

-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

-A INPUT -p icmp -j ACCEPT

-A INPUT -i lo -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT

-A INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j DROP

-A INPUT -j REJECT --reject-with icmp-host-prohibited

-A FORWARD -j REJECT --reject-with icmp-host-prohibited

COMMIT



자료들을 더 찾아봐야 할듯하다

'Linux' 카테고리의 다른 글

rrdtool 설치  (0) 2015.06.11
checking "LinuxThreads"... "Not found" ==> Mysql 설치 시 오류  (0) 2015.06.11
mysql 외부 접속 차단하기  (0) 2015.06.11
collectd  (0) 2015.06.10
DRBD for mysql  (0) 2015.06.10
mysql 외부 접속 가능하게 하기  (0) 2015.06.10
댓글
댓글쓰기 폼