Ubuntu 20.04 GeoIP UFW Àû¿ë

   Á¶È¸ 9221   Ãßõ 1    

https://www.ehostidc.co.kr/hosting/domestic.php (1035)
https://www.ehostidc.co.kr/cscenter/consulting.php (995)




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


  • UFW 활성화

1-1. UFW 활성화

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



  • 필수 패키지 설치

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-1. 방화벽 적용


테스트를 위해 ping.chinaz.com 에서 통신 체크

적용 전


적용 후


테스트를 위해 tool.chinaz.com/port/ 에서 포트 체크

적용 전


적용 후


#sudo vi /etc/ufw/before.rules

-> 해당 파일에 정책 삽입

#sudo ufw reload

-> 정책 추가 후 ufw 리로드로 정책 적용

Ex) -A ufw-before-input -m geoip -p tcp --dport 22 --src-cc CN -j DROP

-> 출발지 IP가 중국IP이면 22번 포트 차단

Ex) -A ufw-before-input -m geoip -p icmp --icmp-type echo-request --src-cc CN -j DROP
-> 출발지 IP가 중국IP이면 ICMP 에코 응답 차단



  • 추가 스크립트

4-1 추가적인 스크립트

#sudo vi /usr/local/bin/geo_auto_update.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/



https://www.aiocp.co.kr/ ( 딥러닝,머신러닝 서버 판매 ,컨설팅) https://bigbangcloud.co.kr/ ( GPU 클라우드 서비스) ::: AI 서버의 모든것 ::: 인공지능의 시작~ (주)이호스트ICT


Á¦¸ñPage 6/28
2022-03   9695   È­Á¤Å¥»ï
2022-02   11032   µö·¯´×¼­¹ö
2022-02   8897   µö·¯´×¼­¹ö
2022-02   25872   È­Á¤Å¥»ï
2022-01   9222   µö·¯´×¼­¹ö
2022-01   10995   ocarina
2022-01   149   ¸¶¸®Ä«ÀÌ
2022-01   5480   ½ºÄµl¹ÎÇö±â
2022-01   7358   µö·¯´×¼­¹ö
2022-01   6461   °í°í´Ù
2022-01   5327   °í°í´Ù
2022-01   9904   È­Á¤Å¥»ï
2022-01   6739   ¹Ú¹®Çü
2022-01   8304   ¹Ú¹®Çü
2022-01   7373   °£Àå°ÔÀå
2021-12   11317   µö·¯´×¼­¹ö
2021-12   11773   friz
2022-01   4353   ksahn
2021-12   7095   µö·¯´×¼­¹ö
2021-12   9677   È­Á¤Å¥»ï