메뉴 건너뛰기

조회 수 9555 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
방화벽에서 비정상 접속 패킷 차단. iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP
# 룰 적용 후 iptables-save 명령어로 config 를 확인하여,
/etc/sysconfig/iptables 파일을 수정한다.

# 커널파라메터 수정
/etc/rc.local 에 등록하거나,
sysctl -w net.ipv4.tcp_syncookies=1
sysctl -w net.ipv4.tcp_fin_timeout=30
sysctl -w net.ipv4.tcp_window_scaling=0
sysctl -w net.ipv4.tcp_sack=0
sysctl -w net.ipv4.tcp_max_syn_backlog=1024

/etc/sysctl.conf 설정 수정.
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_window_scaling = 0
net.ipv4.tcp_sack = 0
net.ipv4.tcp_max_syn_backlog = 1024
sysctl -p 명령어로 적용.
확인방법
sysctl -a | grep net.ipv4.tcp_max_syn_backlog

# ddos 서버 IP 확인.
netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n


Check whether it shows lot of SYN_WAIT / TIME_WAIT / FIN_WAIT. If yes its due to the high number of connections. You can reduce these by adding some rules to the Iptables.
# iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP
# iptables -A INPUT -p tcp --tcp-flags FIN,RST FIN,RST -j DROP
# iptables -A INPUT -p tcp --tcp-flags ACK,FIN FIN -j DROP

# service iptables save
# service iptables restart

Adding rules to sysctl.conf
Also you can reduce these by adding some rules to sysctl.conf, the details given below.
# echo 1 > /proc/sys/net/ipv4/tcp_syncookies
Put following in /etc/sysctl.conf
# Enable TCP SYN cookie protection
net.ipv4.tcp_syncookies = 1
# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 30
# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0
# Turn off the tcp_sack
net.ipv4.tcp_sack = 0


Then execute the command :-
# /sbin/sysctl -p

A quick and usefull command for checking if a server is under ddos is:
# netstat -anp |grep 'tcp|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
Reference : http://linuxhow2.net/?p=9

# Set default policies
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP
/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables -F -t mangle
/sbin/iptables -X
/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -d 127.0.0.0/8 -j REJECT
/sbin/iptables -A INPUT -i eth0 -j ACCEPT
/sbin/iptables -A INPUT -m state --state INVALID -j DROP
### chains to DROP too many SYN-s ######
/sbin/iptables -N syn-flood
/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
/sbin/iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
/sbin/iptables -A syn-flood -j DROP
Reference : http://www.webhostingtalk.com/archive/index.php/t-355411.html

List of Articles
번호 제목 날짜 조회 수
57 리눅스 기본보안설정(13) file 2014.05.15 7297
56 my.cnf 케릭터 셋 설정 (uft8) 2015.07.16 7290
55 find명령과 grep명령을 이용하여 파일안의 문자열 찾기 2014.02.27 7287
54 [apache] - .htaccess 설정 2016.03.18 7262
53 시스템 이상시 복구 모드 사용법..(rescue mode) Linux 2014.03.26 7260
52 netstat [option] 2014.04.12 7238
51 crontab 설정 방법 2017.02.02 7215
50 find - 파일 검색 2014.04.29 7200
49 find 명령어로 특정 디렉토리 내 특정 파일들의 특정 문자열 일괄 변경 2014.02.27 7195
48 mod_rewrite 예제 2016.12.22 7145
47 htaccess를 이용한 특정 디렉토리 접근 관리하기 2014.02.27 7136
46 htaccess를 이용한 특정 디렉토리 접근 관리하기 2014.02.27 7122
45 리눅스 NFS (네트워크 파일 시스템 ) 설치하기 2014.02.27 7110
44 mail 명령어 사용법 2014.03.26 7107
43 CentOS 32Bit 운영체제에서 메모리 4G인식 시키는 방법 2014.02.27 7103
42 cdrom 마운트 하기 2014.03.26 7102
41 linux 커널 파라메터 수정 2014.02.27 7094
40 bind , 네임서버 구축 ( CentOS 6.x) file 2016.04.22 7089
39 tmp 보안 셋팅 2014.02.27 7086
38 apachec rewrite 사용하기 // www 강제 사용 // HTTP to HTTPS // 특정경로만 HTTP 2016.12.30 7081
Board Pagination Prev 1 ... 3 4 5 6 7 8 9 10 11 12 Next
/ 12

하단 정보를 입력할 수 있습니다

© k2s0o1d4e0s2i1g5n. All Rights Reserved