GCP 방화벽 규칙에 여러 IP를 구성하는 쉘을 만들었습니다.
조금 전에 쓴 기사에서 방화벽 규칙을 20개 약 작성했습니다.
htp //s도 t93516. 하테나 bぉg. jp/엔트리/2018/08/06/150052
확인하면서였기 때문에 1시간 미만의 공수.
이것을 프로젝트마다 같은 양 작성해 가고 있다고 생각하면 무섭다. 진심으로.
본래라면 다른 프로젝트에서도 방화벽 룰을 공유할 수 있었다고 생각하고 여러가지 조사했습니다만, 발견되지 않았으므로 이번의 방법에 침착했습니다.
경위
GCP로 이행했다고 한 회사의 서버에, 1분간에 3, 4통의 빈도로 대량의 스팸 메일이 도착하고 있다고 보고를 받았습니다.
도메인은
qq.com
입니다. 중국? 메일 같은.Sendgrid의 관리 화면을 보면
ランダムな数字@qq.com
의 메일이 자주 왔습니다.액세스 로그를 보고 IP를 검색한 결과 거의 모든 것이 필리핀의 공격.
지금까지, 중국으로부터 공격이 왔으므로 그 대책은 하고 있었습니다만, 맹점이었습니다.
추억이 무서워요.
앞으로도 방화벽 규칙을 만들겠다고 생각하면 정말 우울해질 것 같았기 때문에 누구나 쉘을 두드려 만들 수 있어 GitHub 만들었습니다.
준비
로컬에서 gloud 명령을 사용할 수 있는 환경을 만들어 두십시오.
설치 방법은 위의 기사에 나와 있습니다.
GitHub 붙여두므로 clone 해주세요.
htps : // 기주 b. 코 m / 뭉치 93 / G 세퍼 왓 ls. 기 t
README.md에 졸라 영어로 하는 방법 쓰고 있으므로, 문장 잘못하면 풀릭 부탁합니다.
중국, 한국, 북한, 필리핀의 IP 제한
cn-kr-kp-firewall.sh
가 중국, 한국, 북한의 IP를 제한하는 쉘입니다.philippines-firewall.sh
가 필리핀의 IP를 제한하는 쉘.또 공격처가 있으면 수시로 쉘을 추가해 갑니다.
IP를 나열한 텍스트를 기반으로 쉘 실행
all-firewall.sh
#!/bin/bash
count=0
BASE_PATH=$(cd $(dirname $0); pwd)
DIR_PARH=$(dirname ${BASE_PATH})
while read line
do
if [ -s $DIR_PATH/iptext/all-ip-addresses.txt ]; then
count=$(( count + 1 ))
if [ "$(uname)" == 'Linux' ]; then
ADDRESSES=`head -n 255 $DIR_PATH/iptext/all-ip-addresses.txt | sed -e ':loop; N; $!b loop; s/[\r\n]\+/,/g'`
elif [ "$(uname)" == 'Darwin' ]; then
ADDRESSES=`head -n 255 $DIR_PATH/iptext/all-ip-addresses.txt | sed "" -e ':loop; N; $!b loop; s/[\r\n]\+/,/g'`
else
ADDRESSES=""
fi
sed -i -e 1,255d $DIR_PATH/iptext/all-ip-addresses.txt
if [ $count -lt 10 ]; then
gcloud compute firewall-rules create ip-reject-0$count \
--priority 10 \
--action deny \
--direction ingress \
--rules all \
--source-ranges $ADDRESSES
else
gcloud compute firewall-rules create ip-reject-$count \
--priority 10 \
--action deny \
--direction ingress \
--rules all \
--source-ranges $ADDRESSES
fi
fi
done < $DIR_PATH/iptext/all-ip-addresses.txt
cd $DIR_PATH
git checkout iptext/all-ip-addresses.txt
GceFirewalls/iptext/all-ip-addresses.txt
에 중국, 한국, 북한, 필리핀의 IP 모두가 들어 있습니다.셸(
GceFirewalls/sh/all-firewall.sh
)을 실행하면 이 텍스트 파일을 기반으로 gcloud 명령을 실행하여 방화벽 규칙을 만들 수 있습니다.어쩌면 OS에 따라서는 쉘이 잘 움직이지 않을지도 모릅니다.
그 때는 풀릭 올려 주면 기뻐합니다.
끝에
방화벽 규칙을 프로젝트별로 공유하는 방법을 아는 분이 계시면 가르쳐 주셨으면합니다 m(_ _)m
Reference
이 문제에 관하여(GCP 방화벽 규칙에 여러 IP를 구성하는 쉘을 만들었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/motty93/items/ed46960720a5a9438dc7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)