
이 iptable 규칙 목록이 있습니다.
Chain INPUT (policy DROP)
target prot opt source destination
ACCEPT tcp -- 127.0.0.1 0.0.0.0/0 tcp dpt:3306
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_INPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:3306
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
Chain FORWARD (policy DROP)
target prot opt source destination
VZ_FORWARD all -- 0.0.0.0/0 0.0.0.0/0
Chain OUTPUT (policy DROP)
target prot opt source destination
acctboth all -- 0.0.0.0/0 0.0.0.0/0
VZ_OUTPUT all -- 0.0.0.0/0 0.0.0.0/0
ACCEPT tcp -- 94.101.25.40 0.0.0.0/0 state NEW tcp dpt:3306
localhost와 내 IP만 tcp 3306에 액세스하길 원합니다. 위에 표시된 대로 다른 모든 규칙을 삭제할 수 있나요? 내가 그 중 하나를 보관해야 하는지 아닌지는 모르겠습니다.
답변1
acctboth 대상은 아마도 bandmin에 의해 자동으로 거기에 배치될 것입니다. 삭제하시면 아마 다시 나올 겁니다. 'chkconfig bandmin off'를 사용하여 bandmin을 비활성화할 수 있지만 실제로는 패킷 카운트 외에는 아무 작업도 수행하지 않습니다.
VZ_INPUT은 익숙하지 않은 방화벽 패키지처럼 보입니다.
그 외에도 수락하는 항목이 세 개 있는 것 같습니다.모두포트 3306에 대한 트래픽과 내가 가정하는 것으로부터의 새로운 연결만 허용하는 트래픽은 귀하의 IP입니다.
INPUT의 마지막 4개 규칙을 제거하고 다음과 같이 교체하는 것이 좋습니다.
iptables -A INPUT -p tcp --dport 3306 -s 94.101.25.40 -j ACCEPT
iptables -A INPUT -p tcp -i l0 --dport 3306 -j ACCEPT
DROP의 OUTPUT 정책을 갖는 것은 약간 까다롭고 많은 것을 망칠 수 있으므로, 제가 여러분이라면 이를 ACCEPT로 변경하겠습니다.
iptables -p OUTPUT ACCEPT
당신이 가지고 있는 것을 있는 그대로 유지하려고 고집한다면, 당신은 단지 허용하는 것뿐입니다.새로운SQL 연결이 끊어졌으므로 규칙을 삭제하고 다음을 추가하세요.
iptables -A OUTPUT -p tcp -s 94.101.25.40 --sport 3306 -j ACCEPT
iptables -A OUTPUT -p tcp -i l0 -sport 3306 -j ACCEPT
이는 94.101.25.40이 원격 IP가 아닌 시스템 자체 IP 주소 중 하나라고 가정합니다.
서버에 어떻게 액세스하고 있나요? 다른 체인 중 하나에 없는 한 여기에서는 SSH 트래픽을 허용하는 규칙조차 표시되지 않습니다. 실제로 전체 iptables -L 출력을 게시해야 합니다. 당신이 여전히 당신의 박스에 접근할 수 있는 유일한 이유는 다른 체인의 규칙 때문일 가능성이 있습니다.
다시 글을 올리신다면 iptables -L -v를 이용해주세요. 이는 규칙이 작동하는 인터페이스와 같은 유용한 추가 정보를 추가합니다.