> Posts > 보기

31. 방화벽 로그 분석을 통한 해킹 징후 탐지

서버를 운영하다 보면 수많은 외부 IP로부터 끊임없는 접속 시도를 받게 됩니다. 이러한 시도들 중 단순한 봇의 스캔인지, 아니면 특정 취약점을 노린 정교한 해킹 공격인지를 판별하는 첫 번째 관문이 바로 방화벽 로그 분석입니다. 오늘은 우분투 환경에서 가장 대중적인 방화벽인 UFW(Uncomplicated Firewall)의 로그를 분석하여 보안 위협을 탐지하고 대응하는 실무 노하우를 공유합니다.


#리눅스 #우분투 #방화벽 #UFW #로그분석 #해킹방지 #서버보안 #보안관제 #IT실무 #네트워크보안

1. UFW 로그 활성화 및 저장 위치 확인

1. UFW 로그 활성화 및 저장 위치 확인

우분투의 기본 방화벽인 UFW는 설치 직후 로그 기능이 꺼져 있거나 기본(Low) 단계로 설정되어 있는 경우가 많습니다. 해킹 징후를 면밀히 파악하기 위해서는 로그 레벨을 적절히 조절해야 합니다.

로그 활성화 및 레벨 설정 실무에서는 침입 탐지를 위해 최소 'medium' 이상의 로그 레벨을 권장합니다.

Bash

# UFW 로그 활성화
sudo ufw logging on

# 로그 레벨을 medium으로 격상 (더 상세한 정보 기록)
sudo ufw logging medium

로그 파일 위치 UFW를 통해 차단되거나 허용된 패킷의 기록은 주로 다음 파일에 저장됩니다.

  • /var/log/ufw.log (기본 로그 파일)

  • /var/log/syslog (시스템 전체 로그와 함께 기록될 경우)

  • /var/log/kern.log (커널 수준의 메시지로 기록될 경우)

2. 방화벽 로그의 구조 해석하기

로그 한 줄에는 공격자의 IP, 타겟 포트, 프로토콜 등 중요한 정보들이 압축되어 있습니다. 이를 읽어내는 능력이 보안 운영의 핵심입니다.

로그 예시 분석 [UFW BLOCK] IN=eth0 OUT= MAC=... SRC=1.2.3.4 DST=192.168.0.100 PROTO=TCP SPT=45678 DPT=22

  • [UFW BLOCK]: 방화벽 정책에 의해 해당 패킷이 차단되었음을 의미합니다.

  • SRC (Source): 공격을 시도한 외부 IP 주소입니다.

  • DST (Destination): 공격 대상이 된 내 서버의 IP입니다.

  • SPT / DPT: 출발지 포트와 목적지 포트입니다. DPT가 22(SSH), 3306(MySQL), 80/443(HTTP/S) 등 주요 서비스 포트라면 주의 깊게 관찰해야 합니다.

  • PROTO: 사용된 프로토콜(TCP, UDP, ICMP 등)입니다.

3. 실무에서 사용하는 해킹 징후 탐지 명령어

수천 줄의 로그를 일일이 눈으로 확인하는 것은 불가능합니다. grep, awk, uniq 등의 리눅스 텍스트 처리 도구를 활용하여 빠르게 분석합니다.

특정 포트(예: SSH 22번) 공격 시도 IP 순위 확인 가장 빈번하게 접속을 시도하는 IP를 추출하여 무작위 대입 공격(Brute Force) 여부를 판단합니다.

Bash

sudo grep "DPT=22" /var/log/ufw.log | awk '{print $10}' | cut -d= -f2 | sort | uniq -c | sort -nr | head -n 10

이 명령은 22번 포트로 접속을 시도한 상위 10개 IP와 시도 횟수를 내림차순으로 보여줍니다.

비정상적인 스캔 탐지 (포트 스캐닝) 짧은 시간 내에 여러 포트를 훑고 지나가는 IP를 찾아냅니다. 이는 서버의 취약점을 탐색하는 전형적인 해킹 전단계 징후입니다.

Bash

sudo grep "SRC=" /var/log/ufw.log | awk '{print $10, $12}' | sort | uniq -c | sort -nr | head -n 20

4. 탐지된 해킹 IP 차단 및 대응 전략

분석을 통해 명확한 공격 의사가 확인된 IP는 즉시 방화벽에서 영구 차단 조치를 취해야 합니다.

특정 IP 차단 명령어

Bash

# 공격자 IP 1.2.3.4 차단
sudo ufw deny from 1.2.3.4 to any

# 특정 대역(C Class) 전체 차단 (필요 시)
sudo ufw deny from 1.2.3.0/24 to any

자동화 도구(Fail2Ban) 병행 사용 실무에서는 수동 차단의 한계를 극복하기 위해 Fail2Ban을 함께 운용합니다. Fail2Ban은 로그를 실시간으로 모니터링하다가 설정된 횟수 이상 접속 실패가 발생하면 해당 IP를 자동으로 UFW에 등록하여 일정 시간 동안 차단합니다.

5. 보안 운영 가시성 확보를 위한 팁

로그 분석 결과는 정기적으로 보고서화하거나 시각화하는 것이 좋습니다. 단순 텍스트 로그가 보기 어렵다면 지난 포스팅에서 다룬 GrafanaLoki를 연동하여 방화벽 로그를 실시간 차트로 구성해 보시기 바랍니다. 지도 위에 공격자의 발원지를 시각화하면 공격 트렌드를 훨씬 직관적으로 파악할 수 있습니다.

6. 결론

방화벽은 설치하는 것보다 '관리하는 것'이 훨씬 중요합니다. 매일 아침 서버 로그를 짧게라도 확인하는 습관이 거대한 보안 사고를 예방하는 가장 확실한 방법입니다. 오늘 공유해 드린 명령어들을 활용하여 여러분의 서버를 더욱 안전하게 방어하시기 바랍니다.


[함께 보면 좋은 루젠소프트 서비스] 루젠VPN은 비즈니스에 최적화된 고정 IP 서비스를 제공하며, 루젠호스팅은 안정적인 서버 인프라를 구축해 드립니다. 루젠VPN 바로가기: https://vpn.luzensoft.com | 루젠호스팅 바로가기: https://hosting.luzensoft.com

리눅스, 우분투, 방화벽, UFW, 로그분석, 해킹방지, 서버보안, 보안관제, IT실무, 네트워크보안