그런데, 이제 우리에겐 Agent가 있지않은가?!ㅎ 그냥 시키면 된다. 그래서 RAM은 22G 라서 넉넉하다 못해 광활하지만 CPU나 Storage 제약이 심한 OCI 가상머신에서 동작시킬 방어방법을 생각해내고 구현하는게 최종목적이었다.
Snort3를 돌리는 건 파리잡자고 머신건 쓰는 격 아니던가. 그럼에도 불구하고 사용하는 건 HTTP/HTTPS 포트에 다른 프로토콜을 사용하는 경우를 차단하기 위해서다. 일단 걸리면 무조건 하루동안 block이 되게 했다. 정상 사용자가 아닌 것이 확실하기 때문. 그리고 많은 규칙을 만드는 것 보다 NGINX 접근에 따라 실시간으로 반응하게 하는게 이 구성의 핵심이다. 즉, 불필요한 로그인을 시도하는 것 자체가 3시간~6시간 block 감이고, .env 또는 그 변형을 찾거나 언제적 cgi-bin/ 을 호출하는 것 같은 짓거리를 하면 곧바로 6시간 block을 먹인다. block은 차단이 아니라 packet drop 방식을 사용하는데, 상대방에겐 사이트가 하염없이 연결 대기중 상태가 된다. 그래서 봇이나 앱으로 내용 검색을 시도하면 timeout을 설정하지 않는 이상 앱이나 봇이 무한대기를 할 것이다. 상대방을 짜증나게해서 아예 탐색 대상에서 내 서버를 제외시키려는 의도라고나 할까;;;
또한 secure_link를 사용해서 REFERER 없이 접근하는 것을 막고, REFERER를 위조하는 경우도 막는다. 아… 물론 그렇게 대단한게 있어서 막는게 아니라, 사이트 트래픽이 곧 비용이라서 그런거다.
GeoIP를 사용해서 상당수 국가에서 오는 트래픽 자체를 막았다. 차단국가는 CN,KP,TW,SG,IN,VN,HK,MY,ID,TH,MM,BD,LA,PK,AF,IR,IQ,SA,YE,OM,RU,US,DE,BR. 미국도 포함된다ㅋ 겁나게 많은 공격이 미국발이다.
현재상태는 조용히 게시글만 보고 댓글 달 사람만 알음알음 오면 된다. 잘 나가는 블로그가 되면 뭐 그때 생각해보자.
관제하는 Admin Plugin을 만들게되면 이 게시글을 업데이트 할 예정.

Agent에게 일을 시킬 때 중요한 건, 여러 태스크 간의 목적과 결과를 참조하게 하는 것이었다. Hermes는 개발단계에선 부적절하다.
방법이야 여러가지가 있겠고 나는 나대로의 방법으로 진행했는데 토큰 소모가 좀 많았던게 흠이다. 지금 생각은 그 과정자체를 MCP로 제어하면 토큰 소모를 줄일 수 있지 않았을까 생각이 든다.
Telegram Noti는 초반엔 유용했는데, 뻔한 패턴이 반복되니 꺼버리고 그냥 차단 시간/일수를 왕창 늘여서 불필요한 알림을 줄이는 쪽으로 가게됐다.
`260630 현재, 차단된 IP는 10개 미만이다.
target country expires_at remaining reason
176.32.193.16 AM 2026-06-30 11:49 0d/1h/1m nginx-access-general-protection-ip-host-access
206.189.5.249 NL 2026-06-30 11:50 0d/1h/2m nginx-access-general-protection-ip-host-access
34.78.81.50 BE 2026-06-30 11:03 0d/0h/15m nginx-access-general-protection-ip-host-access
93.174.93.12 NL 2026-07-01 07:32 0d/20h/44m repeated-block-immediate:2026-06-30