OS
Rocky Linux 9 환경에서 iptables 에 geoip 연동하기(maxmind)
- 비아웹 오래 전 2024.08.30 16:04 인기
-
- 373
- 0
안녕하세요
호스팅 전문기업 비아웹입니다.
Rocky Linux 9 환경에서 iptables 에 GeoIP 연동 하는 부분에 대해 정리합니다.
해당 geoip 데이터 베이스는 maxmind.com(https://www.maxmind.com/en/home) 데이터를 사용합니다.
1.사전 준비
- Rocky Linux 9 최소 설치
- Selinux disable
- firewalld 서비스 stop / disable
-
systemctl disable firewalld --now
2. 패키지 설치
-
dnf install https://download1.rpmfusion.org/free/el/rpmfusion-free-release-9.noarch.rpm dnf install iptables-services iptables-devel xtables-addons perl-Text-CSV_XS perl-App-cpanminus wget unzip
3. perl 모듈 설치
-
cpanm Net::CIDR::Lite cpanm Text::CSV_XS
4. maxmind 회원 가입 및 라이센스 키 발급
-
회원 가입
https://www.maxmind.com/en/geolite2/signup?utm_source=kb&utm_medium=kb-link&utm_campaign=kb-create-account
-
이메일 확인 및 패스워드 설정
-
-
키 발급
https://www.maxmind.com/en/account/login manage license keys generate new license key
5. geoip 다운로드 프로그램 및 설정
-
관련 git source : https://github.com/mschmitt/GeoLite2xtables
-
mkdir /usr/local/src/geoip cd /usr/local/src/geoip wget https://github.com/mschmitt/GeoLite2xtables/archive/refs/heads/master.zip unzip master.zip mv GeoLite2xtables-master GeoLite2xtables cd GeoLite2xtables/ cp geolite2.license.example geolite2.license
-
geolite2.license 키 입력
-
-
00_download_geolite2 수정
-
#!/bin/bash -e source "$(dirname "$(readlink -f "$0")")/geolite2.license" TEMPZIP=$(mktemp) GEOLITEURL="https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=${YOUR_LICENSE_KEY}&suffix=zip" #curl $GEOLITEURL > $TEMPZIP ## 주석 wget $GEOLITEURL -O $TEMPZIP ## 라인 추가 unzip -d /tmp -o -j $TEMPZIP '*/GeoLite2-Country-Blocks*' rm $TEMPZIP
-
20_convert_geolite2 실행
-
cat /tmp/GeoLite2-Country-Blocks-IPv4.csv /tmp/GeoLite2-Country-Blocks-IPv6.csv | ./20_convert_geolite2 /tmp/CountryInfo.txt > /usr/local/src/geoip/dbip-country-lite.csv
6. geoip 데이터 이전 및 xt_geoip 모듈 추가
-
mkdir /usr/share/xt_geoip/ mv ./*.iv* /usr/share/xt_geoip/ modprobe xt_geoip
7. 테스트
-
iptables -A OUTPUT -m state --state NEW -m geoip --dst-cc CH -j DROP
이상과 같이 Rocky Linux 9 환경에서 iptables 에서 geoip 사용하는 방법에 대해 정리하였습니다.
geoip 데이터는 주기적(주, 월) 업데이트가 필요하니, 이상의 작업 과정을 스크립트 작성하셔서 cron 등록 후 사용하시기 바랍니다.
감사합니다.
호스팅 전문기업 비아웹
- 이전글apache 2.4 GeoIP 연동하기2024.08.30
- 다음글Rocky Linux 9 iptables geoip(db-ip.com) 연동2024.08.30
댓글목록
등록된 댓글이 없습니다.