Linux 에서 국가별로 네트워크 트래픽을 차단하는 방법
이러한 모든 시나리오에는 국가별로 트래픽을 필터링할 수 있는 방화벽을 설치할 수 있어야 합니다. 이를 수행하는 몇 가지 방법이 있습니다. 예를 들어, TCP 래퍼 (TCP wrapper) 를 사용하여 SSH, NFS 및 monlib text-CSV-xs-perlpkg-config
와 같은 개별 어플리케이션에 대해 패키지에 의존하여 설치할 수 있습니다
$ sudo yum install gcc-c++make automake kernel-devel-'uname-r' wget unzip iptables-devel perl-
$ wget/project/xtables-addons/xtables-addons/xtables-addons
-2.1.tar .. Configure
$ make
$ sudo make install
참고: SELinux 가 기본적으로 활성화되어 있는 빨간 모자 기반 시스템 (CentOS, RHEL, Fedora) 그렇지 않으면 SELinux 에서 iptables 가 xt_geoip 모듈을 로드하지 못하게 됩니다.
$ sudo chcon-VR--user = system _ u/lib/modules/$ (uname-r)/extra/*. ko Xtables-addons 소스 패키지에는 각각 MaxMind 에서 GeoIP 데이터베이스를 다운로드하여 xt_geoip 인식 이진 형식으로 변환하는 데 사용할 수 있는 두 개의 도움말 스크립트가 포함되어 있습니다. 이 스크립트는 소스 프로그램 패키지의 GeoIP 폴더 아래에 있습니다. 다음 지침에 따라 GeoIP 데이터베이스를 구축하고 시스템에 설치할 수 있습니다.
$ CD GeoIP
$ ../XT _ GeoIP _ dl
$ ../XT _ GeoIP _ build geoipcountrywhois. 로컬로 설치된 GeoIP 데이터베이스의 내용이 최신인지 확인하려면 매월 실행되도록 예약된 작업을 설정하여 한 달에 한 번 로컬 GeoIP 데이터베이스를 업데이트해야 합니다.
한 나라의 네트워크 트래픽 차단
xt_geoip 모듈과 GeoIP 데이터베이스가 모두 설치되면 즉시 iptables 명령에서 GeoIP 일치 옵션을 사용할 수 있습니다.
$ sudo iptables-m geo IP-src-cc country [,country ...]-dst-cc country [,country ... < P > 예를 들어 예멘 (YE) 과 잠비아 (ZM) 의 인바운드 트래픽을 차단하려면 다음 iptables 명령을 사용할 수 있습니다.
$ sudo iptables-I input-m geo IP-src-cc ye, zm-j drop
중국 (CN) 으로 전송되는 아웃바운드 트래픽을 차단하려면 다음 명령을 실행하면 됩니다
$ sudo iptables-a output-m geo IP-dst-cc cn-j drop
일치 조건도' 상쇄' 될 수 있습니다 -src-cc' 또는'-dst-cc' 앞에 놓습니다. 예를 들어,
서버에서 모든 비 미국 인바운드 트래픽을 차단하려면 다음 명령을 실행할 수 있습니다.
$ sudo iptables -I INPUT -m GeoIP! -src-cc us-jdrop
Firewall-cmd 사용자를 위해
CentOS/RHEL 7 또는 Fedora 와 같은 일부 릴리스에서는 iptables 를 firewalld 로 기본 방화벽 서버로 대체했습니다 이러한 시스템에서는 xt_geoip 를 사용하여 firewall-cmd 를 사용하여 트래픽을 차단할 수도 있습니다. 위의 세 가지 예는 아래와 같이 firewall-cmd 로 대체할 수 있습니다.
$ sudo firewall-cmd-direct-add-rule IPv4 filter input -m geo IP-src-cc ye, Zm-j drop
$ sudo firewall-cmd-direct-add-rule IPv4 filter output -m geo IP-dst-cc -src-cc us-jdrop
결론
이 자습서에서는 iptables/xt_geoip 를 소개했습니다. 이는 소스/대상 국가에 따라 네트워크 패킷을 필터링할 수 있는 간단한 방법입니다. 필요하다면 이 유용한 무기를 방화벽 시스템에 배치할 수 있다. 마지막으로, GeoIP 기반 트래픽 필터링은 서버에서 특정 국가의 만전을 막을 수 있는 방법이 아니라는 점을 말씀드려야 합니다. (존 F. 케네디, Northern Exposure (미국 TV 드라마), 성공명언) GeoIP 데이터베이스는 본질적으로 부정확하거나 불완전하며 VPN, Tor 또는 위험에 처한 트렁킹 호스트를 사용하면 소스/대상 국가를 쉽게 속일 수 있습니다. 지역 기반 필터링은 금지되어서는 안 되는 합법적인 유량까지 막을 수 있다. 이 한계를 이해한 후, 그것을 당신의 생산 환경에 배치하기로 결정하더라도 늦지 않다.