![]()
DB 서버 보안 강화가 반드시 필요한 이유
일반적인 웹호스팅 환경에서는 DB 보안이 제한적이거나 자동 차단 기능이 부족한 경우가 많다. 자체적으로 서버를 운용하거나 VPS 환경을 사용한다면 보안 정책을 직접 구축해야 하며, 이 과정에서 가장 효과적인 도구가 바로 fail2ban이다.
DB 서버가 공격받는 대표적인 이유
DB는 인증 기능이 있기 때문에 해커가 접근만 가능하면 비밀번호 대입 공격을 지속할 수 있다. 특히 특정 계정이 ‘%’로 등록되어 있거나 3306 포트가 전체에 개방되어 있다면 위험도는 급격히 상승한다.
- 전세계에서 자동화된 포트 스캔이 지속적으로 유입됨
- 비밀번호 추정(Brute-force) 공격이 몇 초 단위로 시도됨
- 취약한 계정이 있다면 즉시 데이터 탈취로 이어질 위험
따라서 실전 보안 정책은 "탐지 → 자동 차단 → 알림" 구조로 설계해야 한다.
fail2ban의 역할과 동작 방식
fail2ban이 제공하는 핵심 기능
- 지정된 로그에서 인증 실패 패턴 자동 감지
- 정해진 횟수 초과 시 공격 IP를 방화벽에 즉시 등록하여 차단
- 지정된 시간 동안 재접속 차단 및 자동 해제
- 다양한 서비스(SSh, NGINX, MariaDB) 확장 가능
DB 서버 기준 가장 중요한 기능은 ‘인증 실패 횟수 감지 → IP 밴(ban)’ 구조다. 무차별 대입 공격을 초기에 원천 차단할 수 있다.
fail2ban 설치 및 기본 설정
fail2ban 설치
sudo dnf install fail2ban -y sudo systemctl enable --now fail2ban
MariaDB 로그 필터 생성
MariaDB의 인증 실패 로그 패턴을 인식하도록 전용 필터를 생성한다.
sudo vi /etc/fail2ban/filter.d/mariadb-auth.conf
[Definition] failregex = ^.*Access denied for user .* from <HOST>.*$ ignoreregex =
MariaDB 전용 jail 설정
sudo vi /etc/fail2ban/jail.d/mariadb.conf
[mariadb] enabled = true port = 3306 filter = mariadb-auth logpath = /var/log/mariadb/mariadb.log backend = auto maxretry = 5 bantime = 36000 findtime = 600
텔레그램 알림 연동으로 실시간 감지 가능
텔레그램 액션 생성
sudo vi /etc/fail2ban/action.d/telegram.conf
[Definition] actionstart = actionstop = actioncheck = actionban = /usr/bin/curl -s -X POST https://api.telegram.org/bot<bot_token>/sendMessage -d chat_id=<chat_id> -d text="DB 접속 시도 차단됨nIP: <ip>n규칙: <name>" actionunban = /usr/bin/curl -s -X POST https://api.telegram.org/bot<bot_token>/sendMessage -d chat_id=<chat_id> -d text="DB 차단 해제됨nIP: <ip>n규칙: <name>" [Init]
bot_token과 chat_id는 본인이 사용하는 값으로 교체한다.
jail에 텔레그램 알림 적용
action = telegram
fail2ban 작동 확인
- 서비스 실행 상태 확인: systemctl status fail2ban
- jail 목록 확인: fail2ban-client status
- MariaDB jails 상세 확인: fail2ban-client status mariadb
- /var/log/fail2ban.log 에서 밴 내역 확인 가능
모든 설정이 정상이라면 자동 차단과 텔레그램 알림이 실시간으로 동작한다.
정리 및 결론
fail2ban과 Telegram 연동은 구축 난이도에 비해 보안 효과가 매우 크다. 특히 외부 연결이 많은 서비스나 호스팅 이전을 계획 중이라면, 이를 사전에 적용해 두는 것이 안전한 운영의 출발점이다.