Ubuntu 20.04 버전의 기본 방화벽은 UFW이며 UFW에 GeoIP 를 적용하는 방법입니다.
1. UFW 활성화
1-1. UFW 활성화
|
|
#sudo ufw enable -> 최초 Ubuntu 20.04 설치 시 ufw가비활성화 되어 있습니다. ufw enable 명령어로 ufw 활성화
|
2. 필수 패키지 설치
#sudo apt-get update
#sudo apt-get -y upgrade
#sudo apt-get install curl unzip perl
#sudo apt-get install xtables-addons-common
#sudo apt-get install libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl
2-2. db-ip 의 무료 GeoIP 데이터베이스 다운
|
|
#sudo ./usr/lib/xtables-addons/xt_geoip_dl -> xtables-addons-common 설치시 /usr/lib/xtables-addons/ 폴더 안에
xt_geoip_dl이라는 GeoIP csv 파일 자동 다운 및 압축해제 스크립트가 생성됩니다.
쉘 스크립트 실행 시현재 위치에 dbip-country-lite.csv 파일이 생깁니다.
|
2-3. GeoIP DB 빌드
|
|
#sudo mkdir /usr/share/xt_geoip/ -> 빌드 된 GeoIP DB 저장 폴더생성
#sudo chmod 755/usr/lib/xtables-addons/xt_geoip_build
-> 빌드 파일 권한 부여
#sudo /usr/lib/xtables-addons/xt_geoip_build-D /usr/share/xt_geoip/ -S /
-> -D 뒤에빌드 된 파일 저장 위치
-S 뒤에상단에서 받은 dbip-country-lite.csv 파일이있는 위치
|
2-4. 프로그램 실행
|
|
#sudo modprobe xt_geoip
#lsmod | grep ^xt_geoip -> xt_geoip 출력되면 정상
|
3. 방화벽 적용
3-1. 방화벽 적용
|
테스트를 위해 ping.chinaz.com 에서 통신 체크
적용 전
적용 후
테스트를 위해 tool.chinaz.com/port/ 에서 포트 체크
적용 전
적용 후
|
#sudo vi /etc/ufw/before.rules
-> 해당 파일에 정책 삽입
#sudo ufw reload
-> 정책 추가 후 ufw 리로드로정책 적용
-> 출발지 IP가 중국IP이면 22번 포트 차단
|
4. 추가 스크립트
4-1 추가적인 스크립트
|
#sudo vi /usr/local/bin/geo_auto.sh
-> 자동 설치 스크립트 파일 생성 후 하단 내용 복사
mkdir로 /usr/share/xt_geoip 폴더 생성 필요
#!/bin/bash
#무료 DB 자동 다운로드
wget -O /usr/share/xt_geoip/dbip-country-lite.csv.gz"https://download.db-ip.com/free/dbip-country-lite-$(date+'%Y-%m').csv.gz"
#해당 월의 무료 DB가 없을 경우 전월DB 다운로드
if [ $? -ne 0 ]; then
wget -O/usr/share/xt_geoip/dbip-country-lite.csv.gz"https://download.db-ip.com/free/dbip-country-lite-$(date -d '-1 month'+'%Y-%m').csv.gz"
fi
# 받은 DB파일 압축 해제
gunzip /usr/share/xt_geoip/dbip-country-lite.csv.gz
#csv 파일 빌드
/usr/lib/xtables-addons/xt_geoip_build -D/usr/share/xt_geoip/ -S /usr/share/xt_geoip/
#기존 DB파일 삭제
rm /usr/share/xt_geoip/dbip-country-lite.csv
exit $?
|
상단 스크립트 작성 후 월 1회 실행 cronjob설정 시 매월 GeoIP DB 업데이트 가능
|
참고 : https://ultramookie.com/2020/10/geoip-blocking-ubuntu-20.04/
|