지긋지긋한 스팸, 해킹, 악의적 접근 시도들
요즘은 매일 로그파일 검토가 일상이 되었습니다.
그리고 이젠 더이상 robot.txt는 무용지물에 가까워진 것 아닌가 싶기도 합니다.
대부분의 AI bot들은 robot.txt의 영향을 받지 않고 일부 변형 http client들도 전혀 영향을 받지 않는 것 같습니다.
sshd 불법 시도도 엄청나고...
웹으로 시도하는 악성 clent도 참 많은 것 같습니다.
워드프레스 사이트가 전혀 없음에도 로그파일을 살펴보면 매일 wp-includes, wp-admin,...으로 접속시도하는 아이피가 엄청납니다.
그리고 그것의 상당수가 go-http-client/1.1 user agent인 것도 확인했습니다.
그래서 아예 go-http-client/1.1 user agent으로 접속하는 것을 원천차단하는 방법은 없을까 물었더니...
차단 방법 요약
-
방화벽/서버 수준에서 UA 차단
-
Cloudflare 등 CDN/방화벽 사용 시:
Cloudflare에서는 "User Agent Blocking" 기능을 통해 정확히 일치하는 UA만 차단할 수 있으며, "Firewall Rule"에서는 부분 일치(예:go-http-client포함)로 차단이 가능합니다1.-
예시 Cloudflare 방화벽 규칙:
(http.user_agent contains "go-http-client" and not cf.client.bot)이렇게 하면
go-http-client가 포함된 모든 UA를 차단할 수 있습니다
-
-
서버 직접 운영 시 (예: Nginx, Apache, Caddy)
-
Nginx:
server블록에 아래와 같이 추가:if ($http_user_agent ~* "go-http-client") { return 403; } -
Apache:
.htaccess파일에 아래와 같이 추가:RewriteEngine On RewriteCond %{HTTP_USER_AGENT} go-http-client [NC] RewriteRule ^.*$ - [F,L] -
Caddy:
Caddy v2에서는 아래와 같이 설정할 수 있습니다(정확한 문법은 버전별로 다를 수 있음):@go_http_client { header User-Agent *go-http-client* } handle @go_http_client { abort }(Caddy 설정에서 일부 버전에서는 정확한 매칭 방식이 다를 수 있으니 공식 문서 참고)3.
-
-
-
워드프레스 등 CMS 플러그인 사용 시
-
보안 플러그인(예: Wordfence, iThemes Security)에서 UA 차단 기능을 사용해
go-http-client를 추가할 수 있습니다. -
단, UA에 버전 번호가 붙어 있을 경우(예:
go-http-client/1.1,go-http-client/2.0등) 각 버전을 모두 차단 목록에 추가해야 할 수 있습니다.
-
차단 시 주의사항
-
UA 스푸핑 가능성:
악의적인 봇은 UA를 변경할 수 있으므로, UA 차단만으로 모든 봇을 막을 수는 없습니다. 추가적인 봇 탐지 기법(예: TLS/JA3 핑거프린팅, HTTP 헤더 일관성 검사, 행동 패턴 분석 등)을 병행하는 것이 좋습니다. -
정상적인 트래픽 영향:
일부 서비스나 API 클라이언트가 Golang 기반일 수 있으므로, 차단 시 정상적인 트래픽이 차단되지 않도록 주의해야 합니다.
요약 표
| 차단 방법 | 예시/설명 | 적용 대상 |
|---|---|---|
| Cloudflare 방화벽 | http.user_agent contains "go-http-client" |
Cloudflare 사용 사이트 |
| Nginx | if ($http_user_agent ~* "go-http-client") |
직접 서버 운영 |
| Apache | .htaccess RewriteCond/RewriteRule |
직접 서버 운영 |
| Caddy | @go_http_client { header User-Agent ... } |
직접 서버 운영 |
| 워드프레스 플러그인 | UA 차단 기능 활용 | 워드프레스 사이트 |
By 웹학교