아파치(Apache) Mod Security와 phpMyAdmin 403 Forbidden 해결

제가 https://www.sobi.tips 사이트를 구축하면서 비교적 중점을 둔 부분은 “보안”이었습니다. 유지보수가 빠른 워드프레스를 택했고, 우분투 리눅스나 php도 최신버전으로 선택했죠.
MySQL 명령어로 DB를 다루는게 서툴러서 phpMyAdmin을 설치하긴 했는데, phpMyAdmin을 써서 PHP언어로 DB를 다룬다는건… 반대로 생각하면 PHP 취약점을 노린 공격에 취약할 수 있는거라, mod_security 라는 Apache 애드온을 설치함으로서 기초수준의 공격에 대비하였습니다.

덕분에 PHP로 DB에 기록을 시도할 때마다 그게 누구든 mod_security가 전부 막아버렸는데, 운영자(저)도 예외 없었습니다.-_-;; 예상치 못한 곳에서 에러메세지가 툭툭 튀어나오니까 머리가 복잡해지길래 기록 차원에서 포스팅해 봅니다.

 

1. phpMyAdmin 에서 가져오기(import) 시도했을 때…

▲ 위 메뉴입니다. 가져오기…

 

403 Forbidden : You don’t have permission to access 블라블라/import.php on this server.
Apache/2.4.18 (Ubuntu) Server at www.sobi.tips Port 443

 

당황하지 말고 etc/modsecurity/modsecurity.conf 파일에서 SecRuleEngine On 을 찾아서 SecRuleEngine DetectionOnly 로 바꿔주고, 아파치 서비스를 재시작해 줍니다(sudo service apache2 restart). 이후 phpMyAdmin에서 가져오기 재시도해 봤더니 정상적으로 진행되었습니다.
작업을 마친 뒤에는 SecRuleEngine On 으로 복구 후 아파치 서비스를 재시작하여 mod_security가 다시 작동하도록 조치했습니다.

 

2. “그누커머스” 플러그인에서 게시판 관리 중 “확인”버튼 눌렀을 때…

이때도 403 Forbidden : You don’t have permission to access /wp-admin/admin.php on this server. 라는 에러메세지가 뜨더군요. 그누커머스 플러그인이 php언어로 DB를 건들기 때문인데, 역시 mod_security가 발동되겠죠?
이 경우도 같은 방법으로 mod_security 작동을 잠시 멈추고 게시판 관리를 진행하면 됩니다. 관리 마친 다음에는 SecRuleEngine On 으로 복구 후 아파치 서비스를 재시작하면 됩니다.

CC BY-NC-ND 4.0