기술노트

기술노트

게시물 상세
Ubuntu 20.04 GeoIP UFW 적용
작성자 : 관리자(jieun@ehostidc.co.kr)  작성일 : 2022-01-27   조회수 : 2708

Ubuntu 20.04 버전의 기본 방화벽은 UFW이며 UFWGeoIP 를 적용하는 방법입니다.

 

1.   UFW 활성화

1-1. UFW 활성화


 

#sudo ufw enable
->
최초 Ubuntu 20.04 설치 시 ufw가비활성화 되어 있습니다.
   ufw enable
명령어로 ufw 활성화

 

 

  

2.   필수 패키지 설치

2-1. 필수 패키지 설치


 

 

 

 

 

#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/


 

 

이전글 windows10 WSL2 설치
다음글 우분투 20.04 웹 로그 분석툴(Goaccess) 설치