리눅스를 운영하다보면 공격에 대비하기 위해 단독 방화벽을 많이 설치한다.
하지만
나는 주머니가 털털이기에 방화벽 프로그램을 설치해야하기에
IPTABLES를 많이 이용하지만 한계점은 있다.
해외로부터 특정 포트 및 IP를 막고 싶을때 설치하는 GeoIP
Centos 7도 이제 서비스가 끝난 시점
모두가 Rocky로 넘어가기에 나도 늦게 합류해서 GeoIP를 설치 진행.
[설치환경]
Rocky Linux 9
📸글*사진 @ 빅주
1. 패키지 설치
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
2. Perl 모듈 설치 진행
cpanm Net::CIDR::Lite
cpanm Text::CSV_XS
3. maxmind 회원 가입 및 라이센스 키 발급
[사이트에 접속 후 가입을 진행]
본인 상황에 맞게 작성 후 진행하며 메일이 온다.
[링크를 클릭해서 P/W 설정]
까먹으면 곤란하다.
왜냐 난 영어 약하니까
https://www.maxmind.com/en/account/login
로그인을 하면 해당 아이디에 대한 라이센스 발급이 가능
▶manage license keys -> generate new license key
4. GeoIP 다운로드 및 설정 진행
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
[라이센스 입력을 위해 파일 오픈]
vi /usr/local/src/geoip/GeoLite2xtables/geolite2.license
geolite2.license 라이센스를 넣어주면 된다
vi /usr/local/src/geoip/GeoLite2xtable /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
이제 Rocky에 GeoIP를 설치 진행해봅시다
[현재 위치 : /usr/local/src/geoip/GeoLite2xtables]
./00_download_geolite2 실행
./10_download_countryinfo 실행
./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
[xt_geoip_build 실행]
[위치 : /usr/local/src/geoip]
/usr/libexec/xtables-addons/xt_geoip_dl
/usr/libexec/xtables-addons/xt_geoip_build dbip-country-lite.csv
5. Rocky GeoIP 데이터 이전 및 xt_geoip 모듈 추가
mkdir /usr/share/xt_geoip/
mv ./*.iv* /usr/share/xt_geoip/
modprobe xt_geoip
6. GeoIP 정책 수립
iptables -A OUTPUT -m state --state NEW -m geoip --dst-cc CH -j DROP // 중국에 대한 모든 접근 차단
iptables -A INPUT -p tcp --dport 443 -m geoip ! --src-cc KR -j DROP // 한국 제외한 모든 국가 443 포트 차단
완성!
'SW > 서버보안' 카테고리의 다른 글
Windows server 2008 R2 / window 7 보안 업데이트 방법 [윈도우 인증 오류 / 서비스 종료 수동 업데이트 / 0x80072F8F / 8024001F / ] (0) | 2022.04.19 |
---|---|
서버 보안가이드 정리 (0) | 2021.11.12 |
해킹 의심해보기 (0) | 2021.11.11 |
root 설정 보안 (0) | 2021.10.20 |
GEOIP 설치하기 - 방화벽 (0) | 2021.09.30 |
댓글