Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- 파일질라
- 티스토리챌린지
- 서버관리
- 리눅스서버
- ip차단
- ubuntu
- 시스템관리
- geoip
- SMTP설정
- DNS
- oops-firwall
- postfix
- 서버방화벽
- 리눅스
- centos7
- 서버보안
- 웹서버
- iptables
- sftp
- 국가IP차단
- 리눅스명령어
- linux
- FileZilla
- CentOS
- 오블완
- 서버운영
- FTP
- https
- SSL인증서
- Apache
Archives
- Today
- Total
운영중입니다
geoip 설치 및 사용 방법2_2 (CentOS7) 본문
✅4. Maxmind 가입 및 라이센스 키 발급
* 기존에는 GeoIP 데이터가 자유롭게 배포되었지만, MaxMind는 2019년 12월부터 정책을 변경하여 GeoLite2 데이터 다운로드에 사용자 인증(계정+라이선스 키)이 필요
https://www.maxmind.com
#회원 가입 및 로그인 후 Manage License Key 메뉴에서 키 발급
#라이센스 키를 발급 후 저장 필수
(발급받은 라이센스 키는 다시 볼 수 없음. 저장 필요!)

✅5. xtables-addons 설치 (iptables에서 GeoIP match 기능 사용 가능)
cd /usr/local/src/
git clone https://github.com/mschmitt/GeoLite2xtables
cd GeoLite2xtables/
# 라이선스 키 설정
cp geolite2.license.example geolite2.license
vim geolite2.license
# YOUR_LICENSE_KEY='여기에 라이센스 키 입력' ← 작은따옴표는 일반 기호(' ')로 입력
#Maxmind 에서 발급 받은 라이센스 키 사용

✅6. GeoLite2 데이터 다운로드 및 처리
# 00_download_geolite2 스크립트에서 아래 라인 수정
vim 00_download_geolite2
# 기존 curl "$GEOLITEURL" -o "$TEMPZIP" → curl -sSL "$GEOLITEURL" -o "$TEMPZIP"
# 실행
./00_download_geolite2
./10_download_countryinfo
✅7. CSV 파일 생성
cat /tmp/GeoLite2-Country-Blocks-IPv4.csv /tmp/GeoLite2-Country-Blocks-IPv6.csv \
| ./20_convert_geolite2 /tmp/CountryInfo.txt > GeoIP-legacy.csv
# 위 명령어 사용 후 /usr/local/src/GeoLite2xtables의 GeoIP-legacy.csv 파일을 확인

✅8. CSV 파일 생성
# 1. 변환된 CSV 복사
cp -a /usr/local/src/GeoLite2xtables/GeoIP-legacy.csv /usr/local/src/xtables-addons-2.15/geoip/
# 2. xtables-addons 디렉터리로 이동
cd /usr/local/src/xtables-addons-2.15/geoip/
# 3. xt_geoip 빌드 수행
./xt_geoip_build GeoIP-legacy.csv
# 4. 결과 디렉토리 복사 (iptables에서 자동 인식 경로로)
cp -a BE /usr/share/xt_geoip/
cp -a LE /usr/share/xt_geoip/
# csv 파일 복사 이유
#xt_geoip 모듈은 /usr/share/xt_geoip/ 경로 내의 BE, LE 디렉토리에서 GeoIP 데이터를 찾기 때문
# BE, LE 디렉토리를 /usr/share/xt_geoip/로 복사하는 이유
# iptables의 GeoIP 확장 모듈(xt_geoip)은 변환된 데이터 파일들을
# /usr/share/xt_geoip/ 경로에서 자동으로 찾음
# xt_geoip_build로 생성된 BE, LE 디렉토리는 기본적으로
# **로컬 디렉토리(=현재 작업 경로)**에 생성되므로,
# 시스템이 사용하는 정식 위치인 /usr/share/xt_geoip/로 옮겨야
# iptables 명령에서 GeoIP가 동작
✅9. geoipupdate로 최신 .mmdb DB 갱신
yum install geoipupdate -y
vi /etc/GeoIP.conf
# 아래 내용 작성
AccountID YOUR_ACCOUNT_ID
LicenseKey YOUR_LICENSE_KEY
EditionIDs GeoLite2-Country GeoLite2-City GeoLite2-ASN
geoipupdate
# libmaxminddb libmaxminddb-devel
#.mmdb 포맷은 mod_geoip가 아닌 mod_maxminddb를 사용할 때 필요
# libmaxminddb, libmaxminddb-devel 패키지는 .mmdb를 사용하는 모듈을 직접 컴파일하거나 개발할 경우에만 필요
# 단순히 .mmdb 파일 갱신만 하려면 geoipupdate만으로 충분
✅10. geoipupdate로 최신 .mmdb DB 갱신
| 목적 | 사용 모듈 | 데이터 포맷 | 관련 도구 |
| Apache에서 국가/도시별 응답 | mod_geoip (구버전) / mod_maxminddb (신버전) | .dat 또는 .mmdb | geoip, geoipupdate |
| iptables에서 국가 기반 차단 | xt_geoip (xtables-addons) | BE/LE (legacy CSV 변환) | xt_geoip_build |
✅11. 테스트
#국가 차단 설정
iptables -I INPUT -m geoip --src-cc US -j DROP
#설정 확인
iptables -L INPUT -n --line-numbers
#설정 삭제
iptables -F
iptables -D INPUT (num)

✅12. dat 파일 적용
* 현재는 추가로 다운로드 불가하며 배포 중단 이전에 해당 파일을 보유해야 설정 가능
cd /usr/share/GeoIP
GeoIPCity.dat
GeoIPASNum.dat
GeoIPCity.dat
GeoIPASNumv6.dat
# 위 파일들이 /usr/share/GeoIP 경로에 있는 경우 City, ASNum 조회가 가능
'리눅스보안' 카테고리의 다른 글
| 서버 접속시 메일로 알림받기 (0) | 2025.09.09 |
|---|---|
| Certbot으로 무료 SSL 인증서 발급 및 설정하기 (1) | 2025.08.18 |
| geoip 설치 및 사용 방법2_1 (CentOS7) (2) | 2025.07.18 |
| geoip 설치 및 사용 방법 (CentOS5) (2) | 2025.07.12 |
| oops-firewall RPM 빌드하는 방법 (0) | 2025.07.09 |