10 분 동안 파충류 문제 해결!초 경량급 파충류 반대 방안
그러나 한편 으로 는 방어 라 는 ROI 가 잘 나타 나 지 않 고 다른 한편 으로 는 파충류 와 같은 시스템 은 상대 적 으로 간단 한 파충류 에 비해 난이도 와 복잡 도가 매우 높 기 때문에 빅 데이터 솔 루 션 이 있어 야 일 을 잘 할 수 있 기 때문에 소량의 회사 만 이 돌아 다 닐 수 있다.문제 가 생 겼 을 때 많은 회사 들 이 속수무책 으로 당 하 는 경우 가 많다.
본 고 는 가능 한 한 간단 한 반 파충류 방안 을 묘사 하여 십 여 분 안에 일부 간단 한 파충류 문 제 를 해결 하고 악의 적 인 공격 이나 시스템 과부하 운행 상황 을 완화 할 수 있다.복잡 한 파충류 와 더 정확 한 방 어 는 따로 논의 해 야 한다.
전체 방안 은 가능 한 한 간단 하고 이해 하기 쉬 우 며 전문 적 인 프로그램 개발 과 관련 되 지 않 을 뿐만 아니 라 기 존의 구성 요 소 를 최대한 이용 하여 추가 구성 요소 의 도입 을 피 할 것 이다.내용 상 으로 는 주로 세 부분 으로 나 뉜 다.
간단 한 데이터 획득
데이터 획득 은 반 파충류 시스템 을 잘 하 는 관건 이 고 흔히 볼 수 있 는 몇 가지 모델 이다.
이 편 은 nginx 로그 방식 을 사용 합 니 다. 일반적인 nginx 에 대한 가장 간단 한 설정 을 통 해 원 격 으로 접근 로 그 를 가 져 올 수 있 습 니 다.
공식 nginx 설정:
log_format warden '" "$remote_addr" "$remote_port" "$server_addr" "$server_port" "$request_length" "$content_length" "$body_bytes_sent" "$request_uri" "$host" "$http_user_agent" "$status" "$http_cookie" "$request_method" "$http_referer" "$http_x_forwarded_for" "$request_time" "$sent_http_set_cookie" "$content_type" "$upstream_http_content_type" "$request_body"
';
access_log syslog:server=127.0.0.1:9514 warden ;
tengine 설정 (컴 파일 할 때 -- with - syslog)
log_format warden '" "$remote_addr" "$remote_port" "$server_addr" "$server_port" "$request_length" "$content_length" "$body_bytes_sent" "$request_uri" "$host" "$http_user_agent" "$status" "$http_cookie" "$request_method" "$http_referer" "$http_x_forwarded_for" "$request_time" "$sent_http_set_cookie" "$content_type" "$upstream_http_content_type" "$request_body"
';
access_log syslog:user::127.0.0.1:9514 warden ;
이 안에서 주의해 야 할 것 은:
반 파충류 의 마지막 발 효 는 합 리 적 인 금지 모델 에 의존 해 야 한다. 여기 서 몇 가지 모델 을 비교 해 보 자.
이 단락 은 iptables 기반 방안 을 소개 합 니 다. 적용 범위 가 작 지만;그러나 의존 도가 적 으 면 Liux 를 간단하게 설정 하면 효 과 를 얻 을 수 있 습 니 다.
첫걸음
ipset。ipset iptables ,
# centos 6.5
sudo yum install -y ipset
두 번 째 단계
iptables 에 해당 하 는 ipset 를 만들어 접근 권한 을 차단 합 니 다.
# ipset
sudo ipset -N --exist warden_blacklist iphash
# iptables
sudo iptables -A INPUT -m set --set warden_blacklist src -j DROP
# iptables
sudo service iptables save
세 번 째 단계
현재 차단 되 어 있 는 ip 블랙 리스트 를 가 져 오고 iptables 에 가 져 옵 니 다.
sudo ipset --exist destroy warden_blacklist_tmp; sudo ipset -N warden_blacklist_tmp iphash; echo "1.1.1.1,2.2.2.2" | tr , "
" | xargs -n 1 -I {} sudo ipset -A warden_blacklist_tmp {} ; sudo ipset swap warden_blacklist_tmp warden_blacklist
여기 서 가능 한 한 효율 을 높이 기 위해 다음 과 같은 일 을 했다.
파충 류 를 정확하게 분석 하려 면 강력 한 데이터 분석 플랫폼 과 규칙 엔진 이 필요 하 다. 이 IP / 장치 / 사용자 가 각각 짧 은 시간 구간 / 장시간 범위 에서 의 행위 특징 과 궤적 을 분석 하려 면 매우 복잡 한 데이터 시스템 개발 과 관련 되 는데 본 고 는 간단 한 셸 스 크 립 트 를 통 해 비교적 간단 한 규칙 을 설명 할 것 이다.
예 1, 최근 100000 개 중 5000 개가 넘 는 ip 차단
nc -ul 9514 | head -100000 | awk -F '" "' '{print $2}' | sort | uniq -c | sort -nr | awk '$1>=5000 {print $2}'
이 안:
예 2, 최근 100000 개 중 user 에이전트 를 차단 하 는 것 은 프로그램의 ip 임 이 분명 합 니 다.
nc -ul 9514 | head -100000 | awk -F '" "' '$10 ~ /java|feedly|universalfeedparser|apachebench|microsoft url control|python-urllib|httpclient/ {print $2}' | uniq
이 안:
물론 간단 한 예 만 들 었 을 뿐 부족 한 점 이 많다.
맞붙다
모든 모듈 을 조합 하여 완전한 예 를 만들다.가설:
nginx 설정 과 iptables 기본 설정 을 제외 하고 앞의 몇 단락 의 설정 이 약간 바 뀌 었 습 니 다.
### nginx [email protected]
log_format warden '" "$remote_addr" "$remote_port" "$server_addr" "$server_port" "$request_length" "$content_length" "$body_bytes_sent" "$request_uri" "$host" "$http_user_agent" "$status" "$http_cookie" "$request_method" "$http_referer" "$http_x_forwarded_for" "$request_time" "$sent_http_set_cookie" "$content_type" "$upstream_http_content_type" "$request_body"
';
access_log syslog:server=192.168.1.2:9514 warden ;
### @192.168.1.2, , 60 , 192.168.1.1
while true ; do nc -ul 9514 | head -100000 | awk -F '" "' '{print $2}' | sort | uniq -c | sort -nr | awk '$1>=5000 {print $2}' | tr '
' ',' | awk '{print $0}' | socat - UDP:192.168.1.1:9515 ; sleep 3600 ; done
### @192.168.1.1
#
sudo ipset -N --exist warden_blacklist iphash
sudo iptables -A INPUT -m set --set warden_blacklist src -j DROP
sudo service iptables save
# iptables
while true ; do sudo ipset --exist destroy warden_blacklist_tmp; sudo ipset -N warden_blacklist_tmp iphash; socat UDP-LISTEN:9515 - | tr , "
" | xargs -n 1 -I {} sudo ipset -A warden_blacklist_tmp {} ;sudo ipset swap warden_blacklist_tmp warden_blacklist ; sudo ipset list ; done
이상 은 간단 한 예제 일 뿐 실제 적 으로 셸 스 크 립 트 로 바 꾸 는 것 을 권장 합 니 다.
총결산
본 고 는 간단 한 반 파충류 방안 을 제시 했다. 너무 간단 하기 때문에 개념 예시 나 구급 방안 으로 삼 을 수 있다. 만약 에 더욱 심화 되 어야 한다 면 다음 과 같은 측면 에서 강화 해 야 한다.
저자 소개
어찌 안 과학기술 연합 창시자, 수석 제품 기술 관 은 PayPal 의 베테랑 고급 엔 지 니 어 를 맡 았 고 신뢰 할 수 있 는 계산, 컴퓨터 바람 제어 등 분야 에서 깊이 있 는 이론 연구 와 성 과 를 얻 었 다.또한 사기 방지 와 위험 감시 업계 에서 다년간 깊 은 업무 경력 을 가지 고 분포 식 시스템 과 실시 간 빅 데이터 계산 에 뛰어나다.그 는 어찌 안 과학기술 모든 제품 라인 의 구조 와 디자인 에 참여 하여 팀 을 이 끌 어 데이터 발굴, 멀티미디어 분석, 크로스 데이터 센터 분포 식 시스템, 고성능 실시 간 빅 데이터 계산, 대량의 데이터 수집 등 분야 에서 최첨단 연구 와 제품 화 를 하여 고객 이 내부 의 안전 과 통제 문 제 를 잘 해결 하도록 도와 준다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
간단! Certbot을 사용하여 웹 사이트를 SSL(HTTPS)화하는 방법초보자가 인프라 주위를 정돈하는 것은 매우 어렵습니다. 이번은 사이트를 간단하게 SSL화(HTTP에서 HTTPS통신)로 변경하는 방법을 소개합니다! 이번에는 소프트웨어 시스템 Nginx CentOS7 의 환경에서 S...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.