Linux
possible SYN flooding on port 80. Sending cookies 에 대한 대응책(?)
CHOMAN
2015. 6. 12. 11:17
syslog (/var/log/messages)
Jun 24 18:56:35 localhost kernel: possible SYN flooding on port 80. Sending cookies.
좀 심한 경우라면 아래와 같이 로그가 남을수가 있다....
possible SYN flooding on port 80. Sending cookies.
TCP: too many of orphaned sockets
Out of socket memory
백로그큐 확인 (1024) 적당...
[root@localhost ~]# sysctl -a | grep syn_back
net.ipv4.tcp\_max_syn_backlog = 1024
SYN 공격시 초당 몇만개의 스푸핑아이피들이 들어오므로 해결방법은 되지 못한다.
접속자가 일시적으로 늘어나는 경우는 1024 값을 조금씩 높여본다
syncookie 기능
[root@localhost ~]# sysctl -a | grep syncookie
net.ipv4.tcp_syncookies = 1
이 기능이 활성화 되어 있을때 possible SYN flooding on port 80. Sending cookies. 메세지 출력된다고 함
위 기능은 최근 / 최신 커널들에 기본적으로 활성화 되어 있으므로 별신경 안 써도 됨
SYN 관련 도움이 될만한 커널 옵션..
sysctl -w net.ipv4.tcp_max_syn_backlog=16384
sysctl -w net.ipv4.tcp_syn_retries=3
sysctl -w net.ipv4.tcp_keepalive_time=30
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_tw_buckets=720000
sysctl -w net.ipv4.tcp_keepalive_probes=2
sysctl -w net.ipv4.icmp_ignore_bogus_error_responses=1
netstat -anlp | wc -l
SYN 갯수는 항상 256개 유지 (한계치일듯)
과도한 SYN 공격이나 접속자 요청시 서버를 요청하는 수에 비례하여 늘려야 한다.