2015.09.25 14:48
SYN_Flooding 공격은 TCP 세션 연결 시 존재하는 취약성을 이용한 공격이며, DDoS 공격의 일종입니다.
일반적으로 TCP 세션은 보내는 서버와 받는 서버간의 몇 단계 확인 작업이 거쳐 패킷을 전송합니다.
SYN 과 ACK 패킷을 이용하여 송수신 준비를 합니다.
#cat /proc/sys/net/ipv4/tcp_syncookies
0
#cat /proc/sys/net/ipv4/tcp_max_syn_backlog
1024
SYN 패킷을 받은 서버는 SYN 과 ACK 패킷을 보내고, 소스서버에서 ACK 패킷을 보내기를 기다립니다.
이때, 백로그큐가 허용하는 공간에 연결 정보를 보관합니다.
이런 상태가 계속 쌓이면 목적지 서버의 서비스에 영향을 미치게 됩니다.
해당 공격을 차단하기 위해 두 가지 설정이 필요합니다.
1. 백로그큐 사이즈를 늘려준다.
2. tcp_syncookies 값을 "1" 로 설정한다.
정상적인 ACK 패킷이 도달하지 않으면 TCP 세션 연결을 위한 리소스 낭비를 하지 않게 됩니다.