2018년에 적었던 포스트에서 인용하겠습니다.
혹시 여러분중에서 며칠전에 블로그가 접속되지 않았다는 사실 알고 계시나요? 다른게 아니라 Modsecurity2를 설치하는걸 까먹었다는 정신나간(?) 사태를 수습하기 위해서 Modsecurity2를 설치하다가 OWASP 룰셋 파일의 위치를 아파치 환경설정 파일에서 잘못 설정하는 바람에 아파치가 시동되지 못했던 것이었습니다.
그 문제를 해결하느라 한동안 다시 Modsecurity2를 끄고 사용하다가 작정하고 Modsecurity2를 다시 설치하고 OWASP 룰셋도 지우고 다시 받아서 위치를 지정하는 등 이래저래 손을 봤습니다. 다운되었을 때도 그랬지만 정말 맥북프로의 버터플라이 키보드가 불을 뿜었고.. 맥북프로의 키보드는 피드백은 확실하다는 것을 알았지만 정말 힘을 주어서 치게 되면 판때기 위에서 두드리는 느낌이라는 것을 체감했습니다.
좌우간 이래저래 서버를 몇번 다운시키고 나서야 Modsecurity2와 OWASP 룰셋을 적용시켰다고 생각했었는데…. Gutenberg(워드프레스의 차세대 포스트 편집기)가 파일을 저장못하는 사태가 벌어지는 것입니다. 다시 말해 글을 써도 저장이 되지 않는 것이었죠.
Gutenberg 도입 초기에는 CloudFlare 사의 웹 방화벽이 구텐베르크를 막았기 때문에 그것 때문이려나 하고 클라우드플레어를 만지작 거렸지만 이미 클라우드플레어는 문제를 해결했더군요. 흠.. 하면서 혹시나 싶어서 Modsecurity2를 끄니 잘 되더군요. 세상에나. 문제 분리를 위해서 Modsecurity2와 OWASP 룰셋을 지우고 Modsecurity2를 다시 설치하니, 이 상태에서는 잘됩니다. 결국은 OWASP 룰셋과 친하지 않구나 하고 이걸 이래저래 하다가 다시 재설치했는데(말은 간단하지만 그 와중에 환경설정이 꼬여서 아파치가 다운되서 복구하느라 키보드가 불이 납니다) 그러니 짜잔하고 다시 작동하더군요. 잘됐습니다. 며칠뒤에 나온 5.0은 구텐베르크가 기본 에디터였거든요. 이 문제가 해결되지 않았다면 Classic Editor를 사용할 각오까지 하고 있던 참이었습니다.
사실 지금도 OWASP CRS 룰셋은 기본적으로 구텐베르크가 저장하는데 애로점을 낳고 있습니다. OWASP 측도 이를 알고 있는지, 새로 도입한 플러그인을 활용해 워드프레스용 예외 룰셋을 배포하고 있고요. 다만 이건 Modsecurity 3 이후에 적용되는지라 Apache에서는 덕을 못봅니다. LiteSpeed로 서버를 변경하면서 Modsecurity 3을 쓸 수 있게 되면서 플러그인 폴더를 환경 설정에 추가하면 됩니다. 이런게 모두 GUI 상에서 가능하기 때문에 키보드가 불을 뿜을 일이 없습니다.
게다가 LiteSpeed는 .htaccess는 실시간으로 반영하고, 재부팅이 필요한 상황이 되어도 서버 자체를 다운시키고 재부팅하지 않습니다. 새 인스턴스를 시작함과 동시에 기동이 성공하면 기존 인스턴스를 죽이는 식으로 재부팅하게 되어 있습니다. 따라서 최악의 상황이 되어도 웹서버가 기동실패가 되어 웹서버가 죽는 경우는 이론상 불가능하게 설계되어 있습니다. 버전 업그레이드 역시 그러한 구조라네요.
이렇게 기술이 발전하고 있구나 라고 느낍니다. 월 $10달러지만요.