질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

SYN_RECV 상태로 머무르는 소켓들에 대해..

작성자 정보

  • 홍석범 작성
  • 작성일

컨텐츠 정보

본문

안녕하십니까? CDN 홍석범입니다..

말씀하신대로 한 서버를 대상으로 한 syn flooding 공격이 성공하려면 소스IP는 모두 위조된 IP이어야 합니다. 그래야만 시스템의 백로그큐를 가득 채워서 서비스를 중단시킬 수가 있습니다. 그런데 말씀하신 내용으로 추측해 보면 공격이 아닌 것 같습니다.

바쁜(busy) 서버에서 SYN_RECV가 수십~100개 정도 보이는 것은 지극히 정상적인 것이며 게다가 ESTABLISHED와 함께 보이는 것은 100% 정상접속이라고 보시면 됩니다.

다만 최근의 ddos 공격은 수십만pps 이상의 패킷을 발송하기 때문에 문제가 되는 것이며, 이 정도의 경우에는 syn flooding 공격을 성공시켜 backlog queue를 채우는 것에는 관심없고 대량의 pps로 서비스를 마비시키려는 것입니다.

따라서, 아래 말씀하신 내용만으로만 보았을때는 공격은 아니며 IDC측에 관련 flow 나 정보를 요청하셔서 받아보셔야 할 것 같습니다.

 

감사합니다.

김기환 님의 글



저번주에 IDC에서 연락이 왔습니다. SYN 패킷이 다량으로 감지되었다고 공격인듯 싶으니 점검하라고
APACHE에 연결된 JSP WAS는 메모리 부족으로 몇번 누으셨구요.
SYN 공격이었다고 생각합니다.
그후로 며칠 후 특별히 SYN 패킷이 대량으로 감지되는 않고있습니다.
그후로 패킷 상태 개수를 체크해서 주기적으로 확인하고 있습니다.

netstat -anp | grep :80 | grep SYN_RECV | wc -l
netstat -anp | grep :80 | grep EST | wc -l

그런데 이상한것은 SYN_RECV 된 소켓이 항상 ESTABLISHED소켓과 비례적으로 증가한다는 겁니다.
또한 SYN_RECV 상태인 소켓의 src IP가 ESTABLISHED 상태인 소켓의 src IP중에도 있다는 겁니다.
즉, 정상연결된 IP들중에 SYN_RECV상태로 타임아웃 될때까지 대기중인 소켓을 발생시키는 놈들이 있다는 겁니다.
공격이라면 SYN_RECV 인 놈들의 IP가 가짜여야 하지 않을까요 ?
개중에는 ping이나 traceroute 했을때 못찾는 IP도 있긴 있습니다.
SYN_RECV 상태로 한 2분 좀 안되게 그대로 타임아웃 될때까지 대기하는 IP들의 80%는
실제 ping이 가거나 ESTABLISHED된 IP입니다.

apache가 바쁠때, 사용자가 몰릴때 SYN_RECV가 순간적으로 보일수는 있을듯 싶습니다만,
정상적으로 ESTABLISHED된 IP 들에서
정상연결된 소켓 상태도 보이고
SYN_RECV 상태로 계속 남아있는 소켓도 보이는 상태가
지속적으로 발견되된다면 어떻게 생각하는게 맞을까요 ?
사용자들이 브라우져가 웹서버에 요청하는 순간에 정지나 닫기를 그렇게 많이 하는걸까요 ?
정상적인 사용자들이 SYN_RECV 상태로 남는 소켓을 왜 그렇게 자주 만들까요 ?

실제로 ab로 apache에 스트레스를 주면서 여러차례 테스트 해봐도
SYN_RECV는 거의 안보이다가 잠깐 보이고 사라집니다.
그런데 이상하게 실제 서비스에서 사용자가 많아지면 SYN_RECV 상태로 남는 놈들이 많아지고
그놈들의 IP로 ping을 해보면 상당수의 IP가 ping이 제대로 간다는 겁니다.
ping이 안간다고 해서 무조건 가짜 IP로 생각할 수도 없을진데, 대부분은 ping이 가니..
SYN_RECV 상태로 한참동안 있는 소켓이 어떤 이유인지 정말 궁금합니다.

이것또한 공격일까요 ?

참고로 생각해볼 수 있는 것이라도 도움말씀 부탁드립니다.

참고로,

웹서버 앞단에 하드웨어는 존재하지 않으며 웹서버 한대에 한개의 IP에 300개 정도의 도메인이 가상호스트로 접속됩니다.

-----------------------------------------------------------
httpd.conf (설정값을 다양하게 바꿔봤지만.. 결과는 동일합니다.)
-----------------------------------------------------------
KeepAlive On
MaxKeepAliveRequests 5000
KeepAliveTimeout 5


ThreadLimit           25
ServerLimit           20
StartServers           3
MaxClients           500
MinSpareThreads       25
MaxSpareThreads       75
ThreadsPerChild       25
MaxRequestsPerChild    0


-----------------------------------
ESTABLISHED SOCKET SRC IP LIST
-----------------------------------
121.158.246.103
123.142.40.229
125.133.2.41
203.210.53.173
118.34.61.68
125.190.181.46
218.52.46.56
61.100.205.21
211.49.2.108
211.48.109.10
221.164.148.240
203.123.210.89
............
............

-------------------------------
SYN_RECV SOCKET SRC IP LIST
-------------------------------
125.133.2.41
61.100.205.21
................





 

관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,048 명
  • 현재 강좌수 :  35,869 개
  • 현재 접속자 :  101 명