웹 서버에서 국내 IP만 허용

2024. 9. 10. 16:01PHP/Apache 설정

반응형

1. Apache 웹 서버에서 국내 IP만 허용

Apache에서는 mod_geoip 또는 mod_maxminddb 모듈을 사용하여 IP 기반으로 국가를 필터링할 수 있습니다.

 

설정 절차 (mod_geoip 또는 mod_maxminddb 사용)

  1. GeoIP 모듈 설치
sudo apt-get install libapache2-mod-geoip

GeoIP 데이터베이스 다운로드 최신 GeoIP 데이터베이스를 다운로드해야 합니다. MaxMind에서 무료로 제공하는 GeoLite2 데이터베이스를 사용할 수 있습니다.

다운로드 및 설정:

sudo mkdir /usr/share/GeoIP/
cd /usr/share/GeoIP/
sudo wget https://cdn.jsdelivr.net/npm/geolite2-country/GeoLite2-Country.mmdb.gz
sudo gzip -d GeoLite2-Country.mmdb.gz

 

Apache 설정 파일 수정 /etc/apache2/sites-available/000-default.conf 파일 또는 원하는 VirtualHost 설정 파일을 수정합니다.

GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoLite2-Country.mmdb

<Location "/">
    SetEnvIf GEOIP_COUNTRY_CODE KR AllowCountry
    Deny from all
    Allow from env=AllowCountry
</Location>

 

Apache 서버 재시작

sudo systemctl restart apache2

이렇게 하면 **KR(한국)**에서만 접근이 허용되고, 다른 국가는 차단됩니다.

 

 

 

2. Nginx 웹 서버에서 국내 IP만 허용

Nginx에서는 ngx_http_geoip_module 또는 GeoIP2 모듈을 사용하여 국가 기반 필터링을 설정할 수 있습니다.

설정 절차 (GeoIP2 사용)

 

GeoIP 모듈 설치

sudo apt-get install libnginx-mod-http-geoip2

GeoIP 데이터베이스 다운로드 MaxMind에서 GeoLite2 데이터베이스를 다운로드합니다.

sudo mkdir /usr/share/GeoIP/
cd /usr/share/GeoIP/
sudo wget https://cdn.jsdelivr.net/npm/geolite2-country/GeoLite2-Country.mmdb.gz
sudo gzip -d GeoLite2-Country.mmdb.gz

 

Nginx 설정 파일 수정 /etc/nginx/nginx.conf 또는 서버 블록 설정 파일을 열고 다음과 같이 수정합니다.

 

http {
    geoip2 /usr/share/GeoIP/GeoLite2-Country.mmdb {
        auto_reload 5m;
        $geoip2_data_country_code default=ZZ country iso_code;
    }

    server {
        listen 80;
        server_name yourdomain.com;

        if ($geoip2_data_country_code != "KR") {
            return 403;
        }

        location / {
            root /var/www/html;
            index index.html index.htm;
        }
    }
}

 

Nginx 서버 재시작

sudo systemctl restart nginx

 

 

 

반응형

'PHP > Apache 설정' 카테고리의 다른 글

웹서버 80포트 프록시  (0) 2024.08.21
apache 서버에서 무료 SSL 설치하는 가장 쉬운 방법  (0) 2024.08.21