웹 서버에서 국내 IP만 허용
2024. 9. 10. 16:01ㆍPHP/Apache 설정
반응형
1. Apache 웹 서버에서 국내 IP만 허용
Apache에서는 mod_geoip 또는 mod_maxminddb 모듈을 사용하여 IP 기반으로 국가를 필터링할 수 있습니다.
설정 절차 (mod_geoip 또는 mod_maxminddb 사용)
- 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 |