적중률 높은 처음 사주
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
2023년 2월 현재 동작하는 최신 방법입니다.
Root로 작업한다.
(1) 작업 폴더를 생성한다.
# mkdir /root/ipblock
# cd /root/ipblock
(2) 전세계 IP 파일을 다운로드 받는다.
아래 주소에 접속해서 가입(Sign Up)하고 라이센스 키를 발급받는다.
라이센스 키는 다시 보여주지 않으므로 반드시 메모를 해둔다.
https://dev.maxmind.com/geoip/geolite2-free-geolocation-data
MaxMind Server IP Addresses
Develop applications using industry-leading IP intelligence and risk scoring.
dev.maxmind.com
# wget "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=라이센스키&suffix=zip" -O /root/ipblock/GeoLite2-Country-CSV.zip
[root@webcom ipblock]# wget "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=tI0sSuqyUOkstWaI&suffix=zip" -O /root/ipblock/GeoLite2-Country-CSV.zip
--2023-02-10 02:01:03-- https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-Country-CSV&license_key=tI0sSuqyUOkstWaI&suffix=zip
Resolving download.maxmind.com (download.maxmind.com)... 104.16.37.47, 104.16.38.47, 2606:4700::6810:252f, ...
Connecting to download.maxmind.com (download.maxmind.com)|104.16.37.47|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 2883178 (2.7M) [application/zip]
Saving to: `/root/ipblock/GeoLite2-Country-CSV.zip'
/root/ipblock/GeoLite2-Cou 100%[======================================>] 2.75M 6.79MB/s in 0.4s
2023-02-10 02:01:04 (6.79 MB/s) - `/root/ipblock/GeoLite2-Country-CSV.zip' saved [2883178/2883178]
[root@webcom ipblock]# ls -al
합계 2820
drwxr-xr-x. 2 root root 38 2월 10 02:01 .
dr-xr-x---. 5 root root 4096 2월 10 01:55 ..
-rw-r--r--. 1 root root 2883178 2월 8 07:34 GeoLite2-Country-CSV.zip
# unzip GeoLite2-Country-CSV.zip
-rw-r--r--. 1 root root 2883178 2월 8 07:34 GeoLite2-Country-CSV.zip
drwxr-xr-x. 2 root root 4096 2월 10 02:22 GeoLite2-Country-CSV_20230207
(3) 스크립스를 작성한다 - 예제는 중국 CN 을 차단하는 것이며, 원하는 국가 코드를 넣는다.
# vi ipblock_CN.sh
#!/bin/bash
#국가명
CONTRY="CN"
#geolite2 국가번호위치
LOCATION=/root/ipblock/GeoLite2-Country-CSV_20230207/GeoLite2-Country-Locations-en.csv
#geolite2 ipv4위치
DATA=/root/ipblock/GeoLite2-Country-CSV_20230207/GeoLite2-Country-Blocks-IPv4.csv
#firewall 수정할xml파일위치
FIREWALL=/etc/firewalld/zones/public.xml
#국가번호를 따서 code에 저장
CODE=`egrep ${CONTRY} ${LOCATION} | cut -d, -f1 | sed -e 's/"//g' | sed -e 's/,/-/g'`
#firewall xml파일 수정 스크립트
sed -i '/<\/zone>/d' ${FIREWALL}
for IPRANGE in `egrep "${CODE}" $DATA | cut -d, -f1 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
echo -e " <rule family=\"ipv4\">
<source address=\"${IPRANGE}\"/>
<drop/>
</rule>" >> ${FIREWALL}
done
echo -n "</zone>" >> ${FIREWALL}
GeoLite2 최신 버전은 GeoLite2-Country-CSV_20230207 와 같이 뒤에 날짜가 붙으니 위 스크립트에서 생성되는 폴더명으로 수정해준다.
스크립트는 아래 블로그의 내용을 참고하였다.
(3) 스크립트를 실행한다.
# chmod 700 ipblock_CN.sh
# ./ipblock_CN.sh
# firewall-cmd --reload
*. 주의사항으로 위 스크립트를 2번 실행하면 2번 등록된다. 1번만 실행하도록 한다.
[TIP] 방화벽에 설정된 차단 IP를 삭제하는 방법
# vi ipblock_recover.sh
#!/bin/bash
CONTRY="CN"
LOCATION=/root/ipblock/GeoLite2-Country-CSV_20230207/GeoLite2-Country-Locations-en.csv
DATA=/root/ipblock/GeoLite2-Country-CSV_20230207/GeoLite2-Country-Blocks-IPv4.csv
CODE=`egrep ${CONTRY} ${LOCATION} | cut -d, -f1 | sed -e 's/"//g' | sed -e 's/,/-/g'`
for IPRANGE in `egrep "${CODE}" $DATA | cut -d, -f1 | sed -e 's/"//g' | sed -e 's/,/-/g'`
do
firewall-cmd --permanent --zone=public --remove-rich-rule="rule family=ipv4 source address=$IPRANGE drop"
done
# chmod 700 ipblock_recover.sh
# ./ipblock_recover.sh
# firewall-cmd --reload
위 순백염소님 블로그의 스크립트 저작자가 스크립트 실행에 시간이 진짜 많이 걸린다고 하였는데, 지금은 제가 시간이 없어 추후 필요하다면 빠르게 실행되는 방법을 연구해서 공유해 드리겠습니다.
적중률 높은 처음 사주
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
*. 댓글과 공감은 힘이 됩니다.
'Linux > CentOS Stream 9' 카테고리의 다른 글
| Linux CentOS Stream 9 - Tomcat 설치 (0) | 2023.02.16 |
|---|---|
| Linux Centos Stream 9 - phpmyadmin 설치 (0) | 2023.02.11 |
| Linux Centos Stream 9 - MySQL 설치 (0) | 2023.02.09 |
| Linux CentOS Stream 9 - Apache (httpd) 설치 (0) | 2023.02.07 |
| Linux CentOS Stream 9 으로 웹서버 구성하기 (0) | 2023.02.01 |