티스토리 뷰
[CentOS 6.X] 웹 페이지 느림 현상
웹페이지 로딩이 느리다고 한다... 오늘은 너무나도 활기찬 주말이다 하하하하하하ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ
멘탈을 다잡고.. ㅠ.... 콘솔을 연결하니... nf_conntrack table full 메시지가 발생중이다 킄...
1) 문제현상
Aug 21 20:28:06 -- kernel: possible SYN flooding on port 80. Sending cookies.
Aug 21 20:28:03 -- kernel: nf_conntrack: table full, dropping packet.
a) possible SYN flooding on port 80. Sending cookies.
-> syn flooding 공격이 들어왔을 때 리눅스에 syncookies가 설정되어 있을 때 나타나는 로그이다. syn flooding 공격이 해당 vm에 들어왔고 리눅스 내부에서 synflooding 공격을 막기 위해 syncookies 실행이 되어 짐.
b) nf_conntrack: table full, dropping packet.
-> nf_conntrack 의 테이블이 꽉차 패킷이 다운되었다는 로그이다. --> 현재 time_wait으로 묶여있는 패킷들이 많은데 synflooding 공격이 들어옴으로써 테이블이 꽉차버린것으로 추정된다.
2) 해결방안
a) sysctl의 변수값을 조정함으로써 네트워크에 여유를 준다.
b) iptables 룰셋 추가로 악의적인 패킷의 공격을 차단한다.
※ 현재 테스트환경에서는 iptables 룰셋 추가만으로 synflooding 공격이 차단되었다.
iptables set
잘못된 패킷 차단
이 규칙은 SYN 패킷이 아니며 설정된 TCP 연결에 속하지 않는 모든 패킷을 차단한다.
iptables -t mangle -A PREROUTING -m conntrack --ctstate INVALID -j DROP |
SYN이 아닌 새 패킷 차단
iptables -t mangle -A PREROUTING -p tcp ! --syn -m conntrack --ctstate NEW -j DROP
이렇게하면 새 패킷(설정된 연결에 속하지 않음)이 모두 차단되고 SYN 플래그는 사용되지 않는다. 이 규칙은 "Block Invalid Packets" 규칙과 비슷하지만 다른 패킷이 포착하지 않는 패킷을 발견하게 된다.
흔하지 않은 MSS 값 차단
iptables -t mangle -A PREROUTING -p tcp -m conntrack --ctstate NEW -m tcpmss ! --mss 536:65535 -j DROP
위의 iptables 규칙은 공통적이지 않은 TCP MSS 값을 사용하는 새로운 패킷을 차단한다.(이전의 두 규칙에 따라 SYN 패킷만 새 패킷이 될 수 있다.) 이렇게하면 벙어리 SYN 플러드를 차단하는데 도움이 된다.
가짜 TCP 플래그가 있는 패킷 차단
iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN,RST,PSH,ACK,URG NONE -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,SYN FIN,SYN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN,RST -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,RST FIN,RST -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags FIN,ACK FIN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,URG URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,FIN FIN -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ACK,PSH PSH -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL ALL -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL NONE -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,FIN,PSH,URG -j DROP iptables -t mangle -A PREROUTING -p tcp --tcp-flags ALL SYN,RST,ACK,FIN,URG -j DROP |
위의 룰셋은 가짜 TCP 플래그를 사용하는 패킷을 차단한다. (합법적인 패킷이 사용하지 않는 TCP 플래그)
iptables -t mangle -A PREROUTING -p icmp -j DROP
이렇게하면 모든 ICMP 패킷이 삭제된다. ICMP는 호스트가 아직 살아 있는지를 핑(ping)하는 데에만 사용된다.
ICMP는 일반적으로 필요하지 않으며 공격자가 악용할 수 있는 또 다른 취약점만을 나타내기 때문에 Ping of Death (ping flood), ICMP flood 및 ICMP fragmentation flood를 완화하기 위해 모든 ICMP 패킷을 차단한다.
iptables -t mangle -A PREROUTING -f -j DROP
이 규칙은 프래그맨테이션된 패킷을 차단한다. 일반적으로 UDP는 필요하지 않으며 UDP 단편화를 완화하는데 도움이 된다.
----CentOS 7----
SYNPROXY 사용이 CentOS7부터 가능하다 ㅎ
|
'OS > CentOS 6.X' 카테고리의 다른 글
[CentOS 6.X] DB Query 실행시 느림 (0) | 2018.08.14 |
---|---|
[CentOS 6.X] Owncloud 설치 (0) | 2018.07.16 |
[CentOS 6.X] 센토스 mirror 사이트 구축(HTTP를 이용한 FTP구축) (0) | 2018.06.26 |
[CentOS 6.X] MySQL (0) | 2017.12.08 |
[CentOS 6.X] Apache (0) | 2017.12.07 |
- Total
- Today
- Yesterday
- 웹쉘 해결
- selinux 설명
- 이지 부스트 700
- 이지 부스트 700 모브
- 파워쉘 문자열 포함
- 나이키 켄드릭라마
- 리눅스 모니터링
- 이지 700 모브
- 이지 350 지브라
- 나이키 코르테즈
- linux bridge 설정
- selinux 사용법
- 파워쉘 문자열
- Java
- 조던1 사틴 블랙토
- troijan
- 조던1 사틴
- 웹쉘 탐지
- 조던1 사틴 블랙토 개봉기
- 리니지m 격수 팁
- end 응모
- 케니4
- 리눅스 hostname 변경
- 웹쉘 예방
- 파워쉘 문자열 포함 조건
- 피파온라인4
- selinux 정책설정
- 배트멍 할인
- 매치스패션 할인
- CloudStack
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |