2007년 12월 3일 월요일

FreeBSD: Limiting open port RST response from xxx to 200 packets/sec

FreeBSD에서 /var/log/message 안에 "Limiting open port RST response from xxx to 200 packets/sec"라는 메시지를 볼 수 있다. 외부로부터 잘못된 SYN요청이 과도하게 들어와서 RST로 응답하는 회수를 초당 200건으로 제한했다는 의미이다. 이게 SYN 공격을 통해서 발생할 수도 있지만, 의도치 않게 네트워크 상황에 따라 발생할 수도 있다.

예를 들어 해외에 NAT로 묶인 망이 있고, 그곳에 서비스 이용 클라이언트가 3,000개(순단 시 자동으로 재접속 시도가 있다는 것도 가정!)가 있다는 가정을 해보자. 해외망 특성상 네트워크 순단이 숨쉬기보다 조금 덜 발생하는데, 위에서 말한 망이 살짝 순단일 경우 동시에 3,000개 접속(session)이 떨궈진다. 이때 거의 한정적인 아이피 - NAT에 묶여 있으니 - 에서 많은 SYN이 발생할 것이다. 게다가 이런 경우 심심치 않게 중간 망이나 NAT쪽 망이 갑자기 부하가 몰려 장비가 앉았다 일어났다를 빠르게 반복할 수도 있다. NAT에 묶인 클라이언트 OS는 connection timeout를 뿜기 전에 SYN을 몇 번 더 보내볼 것이고... 덕분에 서비스를 제공한 서버로 의도와 상관 없이 DDoS SYN attack을 날려주는 멋진 결과를 선사한다.

공격이라고 생각한다면 tcpdump를 이용해서 패킷을 걸러내는 문서를 참조해보자.


Powered by ScribeFire.