안녕하십니까.
좋은아빠되기입니다.
10년간의 게으름을 끝으로
어제부터 라이믹스로 갈아 타고 있습니다.
깃으로 덮어쓰자마자 문제가 좀 생겼지만
(글감 모듈이라는게 있는데.. 이게 말썽을 피우더라구요. 안쓰시면 미리 지우시길)
기진곰님의 빠른 답변으로 금방 해결하였습니다.
10년간의 게으름을 끝낸것은
저의 부지런함도 최근 있었던 대형 보안 사고도 아니였습니다.
하루 20만개쯤 되는 아이피를 돌려가면 들어 오는 악성 봇들과의 전쟁이었습니다.
처음에는 트래픽 쯤은 그냥 주겠다. 한달 10만원 더내면 OK 이러고 있었는데...
슬슬 열이 받고 있는 상황에
평소 1정도의 로드에버리지가 15까지 치솟더라구요
(20코어, 64G 서버입니다. 기진곤님께서 예쁘게 Nginx+PHP-ftm 7.4+MaridDB 10.X 셋팅해 주셨습니다.)
로그를 가만히 보니 95% 이상이 해외 아이피 였습니다.
저는 XE는 서브로 자료실로만 운영하고 메인 서비스가 따로 있는지라...
일단 자체적으로 막아 보려고 노력을 했습니다.
처음에는 그냥 방화벽에 /24 차단을 줄줄이 걸었는데
몇시간 되지 않아서 2천개가 넘어 가더라구요.
그래서 IPset방식으로 전환하고
실시간으로 로그를 분석하여
GeoIP 조회를 통하여 해외 아이피의 경우 /24 차단
국내 아이피의 경우 20일 차단하는 방식으로 실시간 대응하는 쉘 스크립트를 만들었고
중간 중간에 따로 만들어둔 Merge 기능으로 /23 /22 /21 이렇게 대역을 줄이기 시작했습니다.
1회 차단시 1일후 차단을 풀어 주고
2회 차단시 4일후 차단을 풀어 주고
4회 차단시 7일후 차단을 풀어 주고
그러다 보니.. 하루도 안되어서.. 만개가 넘는 대역을 차단하고 있는 저를 보면서
하.....진짜 이래야 하나.. 끝은 있는건가? 하는 회의감들 들더라구요.

그래서 결국 이런 괴물같은 녀석도 만들었습니다만.. 답이 없더라구요.
(모든걸 실시간으로 자동화 해도.. 답이 없었습니다.)
nginx 에서 limit_req도 걸고 별 쌩쇼를 해도
초당 3~5개 정도 두드리는 녀석들을 어찌할 방법이 없더라구요.
아이피가 수십만개 넘게 돌려 쓰는데 답은 없었습니다.
로그를 보면서 생각한것이..그래 서버 부하를 주는 녀석이라도 잡자 하는 단순한 생각에
https://rhymix.org/pds/1961072
이런 녀석도 만들었습니다.
검색이나, 정렬위주로 부하를 일으키면서 때리길레..
nginx단에서 차단도 했지만... 검색기능을 열어놔야 해서...
임시 방편삼아 썼구요.
미리 만들어 두었던
https://rhymix.org/pds/1961052
로그 정리 애드온도 도움이 되었습니다.
하루 20만개 이상 방문자 기록이 찍히니깐 기분은 좋터군요..ㅎㅎㅎ
그래도 카운터로그가 부담이 되서.. 열씨미 돌렸습니다.
그래도 답은 없었습니다.
결국, 제가 제일 탐내던
기진곰님의 명작
구충제 모듈 : https://rhymix.org/pds/1843071
이녀석이 많이 탐나서.. 라이믹스로 갈아 타게 되었습니다.
두말할것 없는 명작이죠..
현재
제가 만든 애드온과
제가 만든 쉘 스크립트
그리고 기진님곰의 구충제 모듈로
라이믹스에 방어막도 어느정도 쳤고.
트래픽은 그나마 적게 튀는 상황입니다.
라이믹스 하나만 운영하는 서버가 아니라서
두곳을 막아야해서 좀 힘들기도 하지만..
든든한 라이믹스와 구충제 모듈로
오늘 하루는 즐겁게 넘어가고 있습니다.
자꾸 자꾸 머리 굴려서 막다 보면 또다른 수가 생기겠지요.
현재 nginx 단에서 /xe 하단과
제가 만든 프로그램의 limit_req도 달리 설정을 해서
차별적으로 방어는 하고 있지만...
참..힘드네요..
그냥 넉두리 삼아서 적어 봤습니다.
어찌되었든.
라이믹스로 갈아 타면서 한시름 놓았고.
구닥다리 XE의 보안 구멍도 매꾸고 1석 2조인것 같습니다.
간간히 봇들과의 전쟁에서 일시적인 승리나마
기념할 일이 있으면 글 적도록 하겠습니다.
편안한밤 되세요.
긴글 읽어 주셔서 감사합니다.
ps : 클플은 구글광고 때문에 감히 적용을 못하는 상황입니다.
도저히 안되면 피난이라도 가야 겠습니다. ㅋㅋㅋ
ps2 : 이런짓도 하고 있습니다.
파일 다운로드 하루 100개로 제한하고
100개 이상히면 내일 다운로드 더 하세요. 하는데..
그거 무시하고 자꾸 들어오면 카운터는 30개 더 올라갑니다.
결국 130에 근접하면... 봇이라는 이야기죠.

아래를 보면 아시겠지만 빙봇이 제일 나쁜놈입니다... 확~~~ 짤라 버릴수도 없고... 단 몇 %지만 검색시장을 장악하고 있으니.. 제가 참아야죠.. [오늘 봇 다운로드 통계] [Googlebot] : IP 수 : 16 총 다운로드 : 320회 1위 32회 Googlebot 34.64.82.71 2위 29회 Googlebot 34.64.82.75 3위 26회 Googlebot 34.64.82.77 4위 25회 Googlebot 34.64.82.74 5위 23회 Googlebot 34.64.82.66 6위 23회 Googlebot 34.64.82.65 7위 22회 Googlebot 34.64.82.79 8위 20회 Googlebot 34.64.82.70 9위 20회 Googlebot 34.64.82.69 10위 19회 Googlebot 34.64.82.64 11위 18회 Googlebot 34.64.82.76 12위 17회 Googlebot 34.64.82.73 13위 14회 Googlebot 34.64.82.72 14위 12회 Googlebot 34.64.82.67 15위 12회 Googlebot 34.64.82.68 16위 8회 Googlebot 34.64.82.78 [GoogleWv] : IP 수 : 2 총 다운로드 : 3회 1위 2회 GoogleWv 106.101.201.221 2위 1회 GoogleWv 1.226.154.211 [Googlebot-Image] : IP 수 : 2 총 다운로드 : 2회 1위 1회 Googlebot-Image 34.64.82.65 2위 1회 Googlebot-Image 34.64.82.70 [Bingbot] : IP 수 : 29 총 다운로드 : 3,791회 1위 1866회 Bingbot 52.231.148.0 2위 1011회 Bingbot 52.231.148.3 3위 836회 Bingbot 52.231.148.1 4위 15회 Bingbot 20.15.133.174 5위 9회 Bingbot 20.15.133.184 6위 8회 Bingbot 20.15.133.175 7위 7회 Bingbot 20.15.133.163 8위 6회 Bingbot 20.15.133.191 9위 5회 Bingbot 20.15.133.162 10위 5회 Bingbot 20.15.133.160 11위 3회 Bingbot 52.167.144.220 12위 2회 Bingbot 52.167.144.213 13위 2회 Bingbot 52.167.144.205 14위 1회 Bingbot 52.167.144.189 15위 1회 Bingbot 52.167.144.23 16위 1회 Bingbot 52.167.144.175 17위 1회 Bingbot 52.167.144.209 18위 1회 Bingbot 52.167.144.162 19위 1회 Bingbot 52.167.144.211 20위 1회 Bingbot 52.167.144.169 21위 1회 Bingbot 52.167.144.142 22위 1회 Bingbot 52.167.144.136 23위 1회 Bingbot 52.167.144.159 24위 1회 Bingbot 52.167.144.161 25위 1회 Bingbot 52.167.144.158 26위 1회 Bingbot 52.167.144.234 27위 1회 Bingbot 52.167.144.210 28위 1회 Bingbot 52.167.144.176 29위 1회 Bingbot 52.167.144.137 [NaverYeti] : IP 수 : 11 총 다운로드 : 11회 1위 1회 NaverYeti 211.249.46.185 2위 1회 NaverYeti 114.111.32.152 3위 1회 NaverYeti 114.111.32.119 4위 1회 NaverYeti 211.249.46.130 5위 1회 NaverYeti 110.93.150.138 6위 1회 NaverYeti 114.111.32.206 7위 1회 NaverYeti 110.93.150.218 8위 1회 NaverYeti 211.249.46.69 9위 1회 NaverYeti 110.93.150.110 10위 1회 NaverYeti 211.249.46.74 11위 1회 NaverYeti 110.93.150.80 [Daum] : IP 수 : 26 총 다운로드 : 318회 1위 39회 Daum 121.53.91.107 2위 31회 Daum 121.53.92.107 3위 19회 Daum 211.183.208.245 4위 18회 Daum 211.183.208.242 5위 17회 Daum 211.249.246.105 6위 17회 Daum 211.249.246.122 7위 16회 Daum 121.53.92.108 8위 15회 Daum 121.53.91.108 9위 14회 Daum 211.183.208.241 10위 13회 Daum 203.133.184.224 11위 13회 Daum 121.53.221.224 12위 12회 Daum 211.249.246.136 13위 12회 Daum 211.183.208.243 14위 11회 Daum 121.53.91.109 15위 10회 Daum 211.249.246.152 16위 10회 Daum 211.183.208.244 17위 8회 Daum 121.53.93.224 18위 7회 Daum 121.53.220.224 19위 7회 Daum 121.53.91.224 20위 7회 Daum 121.53.92.224 21위 7회 Daum 203.133.185.224 22위 6회 Daum 211.249.246.168 23위 5회 Daum 121.53.90.224 24위 2회 Daum 211.231.103.106 25위 1회 Daum 27.0.238.114 26위 1회 Daum 27.0.238.71
댓글 1
좋은아빠되기님~ 진짜 너무 오랫만이예요.
다시 만나 반가와요~
라이믹스로 잘 넘어오셨네요.