Rate limit · Bot detect · Geo

건축학
버스트 승수(기본값 1.5×)는 짧은 스파이크를 허용합니다.
모드 - 모니터링 및 시행
감시 장치
하지만 요청을 다음을 통해 전달합니다.
억지로 시키다
봇 감지 신호
빈 사용자 에이전트 — 자신을 식별하지 않는 클라이언트를 차단합니다.
알려진 봇 UA 하위 문자열 — 컬, wget, python-requests, python-urllib, go-http-client, httpie, java-http-client, okhttp, apache-httpclient, 봇, 크롤러, 스파이더, 스크레이퍼(대소문자 구분 안 함)와 일치합니다.
Accept-Language 누락 — 실제 브라우저는 항상 이를 보냅니다.
Accept-Encoding 누락 — 위와 동일합니다.
사용자 정의 블록 정규식 — 자신만의 패턴(대소문자 구분 안 함) 예:
맞춤 허용 정규식 - 설정된 경우 일치하지 않는 모든 UA가 거부됩니다(엄격한 허용 목록).
특정 통합이 일반 UA(예: 합법적인 백그라운드 작업)를 보낼 수 없는 경우 전역적으로 봇 신호를 완화하는 대신 해당 IP를 화이트리스트에 추가하세요.
IP/지역/ASN 목록
블랙리스트 — 즉시 403을 얻는 CIDR이며 카운터를 사용하지 않습니다.
차단된 국가 — ISO-2 코드는 로컬 GeoIP를 통해 확인됩니다.
차단된 ASN - 호스팅/VPN 제공업체(예: AS14061 Digital Ocean, AS16509 Amazon)
Redis 키 참조
운영 런북
최초 활성화: 모드 설정 = 모니터, 속도 제한 활성화.
원격 측정 검토: 429 스파이크가 발생할 때 스파크라인이 표시됩니다.
소프트 시행: 설정 모드 = 목표보다 2배 더 높은 제한으로 시행합니다.
최종 시행: 생산 가치에 대한 제한을 강화합니다.
사고 대응: IP 공격 → 블랙리스트 텍스트 영역에 추가하고 저장합니다(Redis를 통해 5초 이내에 nginx로 전파).
오탐지 차단 해제: IPTV 설정 → 보안 → 주요 위반자 → 차단 해제.
구현 파일
지속형 구성 키(iptv_defaults)
모두 접두사 sec.* 아래에 저장됩니다.
개요
Stream Manager는 네트워크 액세스 제어를 위해 UFW(Uncomplicate Firewall)를 사용하고 침입 방지를 위해 fall2ban을 사용합니다.
UFW는 서버에 도달하도록 허용되는 네트워크 트래픽을 제어합니다.|기본 규칙: HTTP(80), HTTPS(443) 및 미디어 서버(8080)는 모두에게 공개됩니다.
fall2ban은 반복되는 인증 실패에 대해 로그 파일을 모니터링하고 문제가 되는 IP 주소를 자동으로 금지합니다.|sshd 감옥은 로그인 시도가 여러 번 실패한 후 IP를 금지하여 SSH 액세스를 보호합니다.|효율적인 패킷 필터링을 위해 nftables 백엔드를 사용합니다.|금지된 IP는 구성 > 보안 탭에서 수동으로 금지를 해제할 수 있습니다.
멀티캐스트 트래픽(224.0.0.0/4)은 두 개의 신뢰할 수 있는 네트워크로 제한됩니다.|10.0.0.0/8 - 로컬 스트림 소스 및 관리를 위한 내부 네트워크.|147.78.168.0/22 - 에지 서버 배포를 위한 CDN 네트워크.|이렇게 하면 승인되지 않은 멀티캐스트 소스가 스트리밍 파이프라인에 트래픽을 주입하는 것을 방지할 수 있습니다.
CDN 네트워크(147.78.168.0/22)는 에지 서버에 스트림을 배포하는 데 사용됩니다.|원격 관리를 위해 CDN IP에서 SSH 액세스가 허용됩니다.|멀티캐스트 전달은 내부 네트워크와 CDN 네트워크 간에 활성화됩니다.|CDN의 다른 모든 트래픽은 표준 방화벽 규칙을 따릅니다.
모범 사례
UFW를 항상 활성화 상태로 유지|알려진 네트워크에만 SSH 액세스 제한|fail2ban 감옥에서 공격 패턴을 정기적으로 모니터링|강력한 비밀번호 및 키 기반 SSH 인증 사용|방화벽 규칙을 주기적으로 검토하고 사용하지 않는 항목 제거|fail2ban 및 UFW 패키지를 계속 업데이트