728x90
xtables 를 이용한 한국 IP만 허용하도록 등록
OS Version : Ubuntu v20.04
ufw 활성화
sudo ufw enable
필수 패키지 설치
sudo apt-get update
sudo apt-get install -y curl unzip perl
sudo apt-get install -y xtables-addons-common
sudo apt-get install -y libtext-csv-xs-perl libmoosex-types-netaddr-ip-perl
xtables-addons-common 설치 시 다음 파일들이 생성됨
cd /usr/lib/xtables-addons/
ls /usr/lib/xtables-addons/
shell script 실행하여 csv 파일 다운로드
루트로 접속해서 실행한다. 왜냐? 루트 아닌상태로 실행하면 터미널 종료된다.
source xt_geoip_dl
dbip-country-lite.csv 파일이 생성 된 것을 알 수 있다.
cd /usr/lib/xtables-addons/
ll
less dbip-country-lite.csv
생성된 파일을 저장할 폴더 생성 및 빌드
sudo mkdir -p /usr/share/xt_geoip/
# 빌드 파일 권한부여
sudo chmod 755 /usr/lib/xtables-addons/xt_geoip_build
# 다음 코드를 작성 yes 입력
sudo perl -MCPAN -e'install Text::CSV_XS'
sudo /usr/lib/xtables-addons/xt_geoip_build -D /usr/share/xt_geoip/ -S /usr/lib/xtables-addons/
-D는 빌드 된 파일이 저장될 위치
-S는 빌드 할 파일이 저장된 위치
모듈 실행 및 확인
sudo modprobe xt_geoip
lsmod | grep ^xt_geoip
기본 사용방법
다음 위치에서 추가
sudo vim /etc/ufw/before.rules
# 출발지가 중국이고
# TCP 프로토콜로
# 목적지 포트가 22번이면
# ufw-before-input을 할 때
# DROP 시켜라
-A ufw-before-input -m geoip -p tcp --dport 22 --src-cc CN -j DROP
도커 컨테이너에 대해 포워딩을 한국 제외한 IP 차단하도록 등록
- iptables에 직접 등록하는 방법
# 포워드 할 경우
# 172.16.0.0/12 대역 (사설ip 대역) 이 목적지 ip일 경우
# ! --src-cc KR : 한국이 아닌 나라는
# 드랍시켜라
iptables -I FORWARD -d 172.16.0.0/12 -m geoip ! --src-cc KR -j DROP
- iptables 등록한 것에 대해 저장
sudo apt-get install iptables-persistent netfilter-persistent
- iptables 활성화
systemctl enable iptables
systemctl start iptables
- 룰 확인 가능
vi /etc/iptables/rules.v4
- 저장
service iptables save
netfilter-persistent save # 저장 후
netfilter-persistent start # 로드
참고
728x90
'Infrastructure > Security' 카테고리의 다른 글
Docker + UFW+ IPTABLES 방화벽 적용 (6) | 2022.05.13 |
---|---|
에러, ufw enable ERROR: Could not load logging rules (0) | 2022.05.06 |
Docker + UFW 적용 문제와 해결 방법 (2) | 2022.03.15 |