ubuntu22 : 해외 ip 차단 설정

김아무개·2023년 10월 17일
0

ubuntu

목록 보기
20/20
post-custom-banner

ssl 인증서 자동 갱신을 설정하다가

시스템 로그를 보게 되었는데

정말 많은 해외 아이피가 다녀간 기록이 있었다. ㄷㄷ

검색해보니 해외 ip 차단 등록을 해두는게 여러모로 안전하다고 해서

나는 해외 지인도 없고 나갈 일도 없기 때문에 😞

부랴부랴 진행해보는 해외 ip 차단 !


참고





1. 해외 ip 정보 다운로드

https://mailfud.org/geoip-legacy/ 사이트에서 GeoIP-legacy.csv.gz 파일을 다운받는다.

1-1. 다운 받을 폴더로 이동

cd /home/download

1-2. 파일 다운로드

wget https://mailfud.org/geoip-legacy/GeoIP-legacy.csv.gz

1-3. 다운로드 확인

ll


1-4. 다운받은 파일 압축 해제

gzip -d GeoIP-legacy.csv.gz

확인!

ll


2. 쉘 스크립트 작성

2-1. /home 위치로 이동

나는 /home 위치에 작성해주었다.

cd /home

2-2. 쉘 스크립트 작성!

vi nopeIP.sh

아래 스크립트는 이곳에서 가져왔다.
스크립트 내용 중에 BLOCK_LIST_FILE 값을 바꿔줘야 한다.
나는 ip 목록 파일을 /home/download 위치에 GeoIP-legacy.csv 이름으로 다운받았기 때문에 BLOCK_LIST_FILE=./download/GeoIP-legacy.csv 로 수정해주었다.
그리고 코드 중에 iptables 내용을 모두 지워서 초기화한다는 코드가 있어서 해당 부분도 삭제해주었다.

#!/bin/sh


BLOCK_LIST_FILE=./download/GeoIP-legacy.csv

echo "BLOCK LIST FILE = $BLOCK_LIST_FILE"



# ADD BLOCK TARGET LIST

ALLOW_TARGET_COUNTRY="Korea"



# REGIST BLOCK IP FOR LOOP

for IP_BANDWIDTH in `egrep -v $ALLOW_TARGET_COUNTRY $BLOCK_LIST_FILE | awk -F, '{print $1, $2}' | awk -F\" '{print $2"-"$4}'`



do

echo "STARTING!!"

sudo iptables -I INPUT -p all -m iprange --src-range $IP_BANDWIDTH -j DROP

done



sudo iptables -L

3. 쉘 스크립트 실행

sudo sh nopeIP.sh

엑셀 파일을 열어보니 행 갯수가 696,493개나 된다 ㄷㄷ

한시간째 계속 되고 있는데 이렇게까지 오래 걸릴 일인가..??;;;;

백그라운드로 실행할걸 😞

오잉 지금 3시간째 진행중인데 이게 말이 되는건가;

잠시 외출하고 돌아와서 계속 돌고있으면 걍 꺼버려야지 😞

오후 5시..

계속 돌고있는것 같아서 백그라운드로 전환시킬려고 했는데

컴퓨터가 절전모드 들어가면서 서버와 연결이 끊어졌던것 같다.

그래서 오후 2시~5시 사이쯤 멈춘것 같다 ㅜ

아쉽구먼..

대충 등록된 로그만 txt 파일로 저장해서 열어보니

텍스트 파일이 용량이 28mb 찍힌다.

작은것 아닌가..

파일 열어 확인해보니 28만 3262개의 ip만 등록이 되었다.

정말 오래걸리네 ㄷㄷ

백그라운드에서 다시 작업 걸어놔야지 🥸

백그라운드에서 쉘 스크립트 실행

nohup sh nopeIP.sh &


4. 차단된 ip 목록 파일로 만들어서 확인

sudo iptables -L > /home/blockIPs.txt
profile
Hello velog! 
post-custom-banner

0개의 댓글