mysql을 localhost와 특정 주소로만 열기

mysql을 localhost와 특정 주소로만 열기

내 구성: 우분투 서버 9 및 msyql 5

my.cnf = bind-address = 0.0.0.0

내 iptables 스크립트 =

iptables -A INPUT -i eth0 -s 99.88.77.66 -p tcp --destination-port 3306 -j ACCEPT

해당 IP뿐만 아니라 어느 곳에서나 mysql에 연결할 수 있습니다. iptables-save, /etc/init.d/netwokring을 다시 시작했지만... 여전히 모든 IP에서 연결할 수 있습니다. 단서가 있습니까?

답변1

이 규칙은 99.88.77.66에서의 연결을 허용하지만 다른 곳에서의 연결을 차단하지는 않습니다. 그렇게 하려면 들어오는 모든 연결에 대해 기본적으로 DROP을 사용하는 규칙이 있어야 합니다.

iptables -P INPUT DROP

그런 다음 명시적으로 원하는 항목만 허용합니다. 또는 99.88.77.66이 아닌 모든 클라이언트에 대해 특별히 포트 3306을 닫을 수 있습니다.

iptables -A INPUT -i eth0 -s ! 99.88.77.66 -p tcp --destination-port 3306 -j DROP

답변2

그 규칙허용한다특정 IP에서 포트 3306/tcp로의 트래픽입니다. 기본 iptables 정책은 모든 것을 허용하기 때문에 해당 포트에 대한 다른 모든 트래픽을 삭제하려면 나중에 규칙(또는 기본 정책)이 필요합니다.

답변3

아마도 iptables의 기본 정책은 모든 입력 트래픽을 허용하는 것일 수 있습니다. 이렇게 하면 모든 IP에서 연결이 허용됩니다. 이 정책을 삭제하도록 변경:

iptables -P INPUT DROP

관련 정보