컴퓨터 지식 네트워크 - 컴퓨터 백과사전 - Linux 에서 국가별로 네트워크 트래픽을 차단하는 방법

Linux 에서 국가별로 네트워크 트래픽을 차단하는 방법

운영 환경 Linux 서버를 유지 관리하는 시스템 관리자로서 경우에 따라 지리적 위치에 따라 네트워크 트래픽을 선택적으로 차단하거나 허용해야 하는 경우도 있습니다. 예를 들어, 서비스 거부 공격이 발생했는데, 이러한 공격은 주로 한 국가에 등록된 IP 주소에서 비롯된다. 다른 경우에는 보안상의 이유로 외국의 내력을 알 수 없는 SSH 로그인 요청을 막고 싶습니다. 또는 귀사는 온라인 비디오에 대한 발행권을 가지고 있으므로 특정 국가에만 배포할 수 있습니다. 또는 지리적 제한에 대한 회사 정책으로 인해 로컬 호스트가 미국 이외의 원격 클라우드 스토리지 시스템에 문서를 업로드하지 못하도록 해야 합니다.

이러한 모든 시나리오에는 국가별로 트래픽을 필터링할 수 있는 방화벽을 설치할 수 있어야 합니다. 이를 수행하는 몇 가지 방법이 있습니다. 예를 들어, 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 또는 위험에 처한 트렁킹 호스트를 사용하면 소스/대상 국가를 쉽게 속일 수 있습니다. 지역 기반 필터링은 금지되어서는 안 되는 합법적인 유량까지 막을 수 있다. 이 한계를 이해한 후, 그것을 당신의 생산 환경에 배치하기로 결정하더라도 늦지 않다.

上篇: 외계인이 선풍기를 바꾸는 데 얼마나 걸립니까? 下篇: 일반 필기 입력 시스템은 어떻게 사용하나요?
관련 내용