# LogGraphic 1.20.0 — 이메일 주소로 접속 원본 IP를 찾아 Fail2ban으로 차단하세요.

2026-11-04 · Kali amd64 · 1.20.0-20261104002227

LogGraphic 1.20.0에 발신 이메일 주소를 입력하여 보관 중인 로그에서 접속 원본 IP를 검색하고 선택한 IP를 Fail2ban에 등록하는 입력 창을 추가했습니다.

## 이메일 주소로 접속 원본 검색

작업 → 이메일 주소로 차단…을 열고 발신 주소 한 개를 입력한 뒤 접속 원본 IP 검색을 누릅니다. ADDRESS FLOW의 같은 버튼에서도 열 수 있으며 발신자 노드를 선택한 경우 해당 주소가 미리 입력됩니다.

## 근거를 확인하고 IP 한 개씩 차단

후보를 접속 원본 IP와 로그 서버별로 표시합니다. 호스트명, 큐·거부 기록 수, 이벤트 수, 최초·최종 기록 시각(UTC), 최신 근거 로그를 확인하고 IP 한 개를 선택하면 기존 Fail2ban 확인 창으로 이동합니다.

## 일치 조건과 검색 범위

일반 ASCII 형식의 envelope-from(`from=<...>`) 주소 한 개를 완전 일치로 검색합니다. ASCII 도메인 부분만 대소문자를 구분하지 않으며 로컬 부분은 구분합니다. 앞뒤 공백과 `<user@example.com>` 형식을 허용하고 국제화 도메인은 punycode로 입력합니다.

메인 창의 검색, 이벤트 필터, 재생 위치와 관계없이 보관 중인 모든 분석 로그를 검색합니다. 로그 보관 한도가 0이면 사용할 수 없습니다. 입력을 수정하면 이전 결과를 지우고 작업 전에 현재 로그에서 접속 원본 근거를 다시 확인합니다.

## 기록 집계 방법

큐·거부 기록 수는 Queue ID의 세대별로 집계합니다. NOQUEUE 또는 식별자가 없는 기록은 로그 한 건을 한 단위로 계산합니다. 여러 수신자와 재시도의 이벤트 수는 별도로 표시하며 이 단위가 실제 메일 수를 보장하지 않습니다.

## 설정 및 차단 범위

설정 → SSH 설정…에서 접속 대상을, 설정 → Fail2ban 설정…에서 기존 Jail을 지정합니다. 로그에 기록된 유효한 접속 원본 IPv4/IPv6만 사용합니다. 수신자·전달 주소, 배송 릴레이 또는 DNS 조회로 IP를 추정하지 않으며 접속 원본 IP가 없는 기록은 차단할 수 없습니다.

차단 대상은 이메일 주소 자체가 아니라 로그에서 연결된 접속 원본 IP입니다. envelope-from은 발신자의 신원 확인 결과가 아닙니다. 공유·전달 서버 IP를 차단하면 다른 발신자도 영향을 받을 수 있습니다. 최종 확인에서 로그 서버와 실제 SSH 대상, Jail, IP를 확인하세요.

## 설치된 Linux 패키지의 Python 확장

Linux 패키지를 표준 /usr 경로에 설치한 경우에도 Python 확장 목록 표시와 실행에 사용하는 동봉 리소스를 올바르게 찾도록 검색 경로를 수정했습니다.

## 검증 및 지원 환경

Kali amd64 빌드와 자동 테스트 13개가 통과했습니다. 별도의 GTK/Xvfb GUI 프로브로 이메일 입력, 후보 선택, 오래된 후보 무효화를 확인했습니다. Python 확장은 추출한 패키지의 설치 배치에서 GUI 프로브로 검증했습니다. 패키지 시작, 공유 라이브러리 의존성, APT 설치 시뮬레이션 및 SHA-256도 확인했습니다. 실제 서버에 대한 차단은 실행하지 않았습니다. 명령 정상 종료가 패킷 차단을 증명하지 않으며 범위와 기간은 서버의 Jail 설정을 따릅니다.

## 업데이트 방법

LogGraphic APT 저장소를 등록한 상태에서 아래 명령을 실행한 후 앱을 재시작합니다. apt update는 목록만 갱신하며 두 번째 명령이 앱을 업그레이드합니다. GUI는 Kali 데스크톱 터미널에서 실행하세요.

```bash
sudo apt update
sudo apt install --only-upgrade loggraphic
```

SHA-256: `03d983030ba98e71c4056da5577ffbe6026fb318e6b175dd97c64da3781af2fc`
