You cannot see this page without javascript.

진주성 블로그 방문하기

GeoIP 란 MaxMind 에서 제공하는 국가별로 IP를 확인할 수 있는 오픈소스 라이브러리로 이를 이용하여 서버에 접근 하는 아이피를 국가별로 관리할 수 있습니다.

 

 

1. Apache에 GeoIP 모듈 설치하기

 

​1-1. GeoIP C API 설치하기

​# cd /usr/local/src

​# wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP-1.4.8.tar.gz

# tar zxvf GeoIP-1.4.8.tar.gz

# cd GeoIP-1.4.8

#./configure --prefix=/usr/local/GeoIP

# make && make install

 

- GeoIP의 ip목록을 최신정보로 갱신하기 위하여 GeoIP.dat 을 다운받아 설치된 위치에 복사

: 국가 정보 다운로드

# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz

 

: 도시 정보 다운로드

# wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

 

# gzip -d GeoIP.dat.gz

# gzip -d GeoLiteCity.dat.gz

 

- 해제된 파일을 GeoIP가 설치된 위치에 덮어쓰기

#cp -a GeoIP.dat /usr/local/GeoIP/share/GeoIP/

#cp -a GeoLiteCity.dat /usr/local/GeoIP/share/GeoIP/

 

​1-2. GeoIP 모듈을 아파치에 설치하기

-mod_geoip 다운

아파치 2.x 용

https://github.com/maxmind/geoip-api-mod_geoip2/archive/1.2.10.tar.gz

 

wget https://github.com/maxmind/geoip-api-mod_geoip2/archive/1.2.10.tar.gz

 

# tar zxvf 1.2.10.tar.gz

 

-> 해제된 위치로 이동 후 c 파일을 apxs 를 이용하여 설치

# cd geoip-api-mod_geoip2-1.2.10

 

# [아파치 apxs경로] -i -a -L [geoip 설치 디렉토리의 lib 경로] -I [geoip 설치 디렉토리의 include 경로] -l GeoIP -c [mod_geoip.c 경로]

----> 옵션 대소문자 주의 -l GeoIP = 소문자 엘로 시작

 

# /usr/bin/apxs -i -a -L /usr/local/GeoIP/lib -I /usr/local/GeoIP/include -l GeoIP -c /usr/local/src/geoip-api-mod_geoip2-1.2.10/mod_geoip.c

 

# ls -al /usr/lib/apache2/modules/mod_geoip.so

# cat /etc/apache2/mods-enabled/mod_geoip.load

 

- phpinfo 페이지의 Apache Environment 정보에 GEOIP_CONTINENT_CODE, GEOIP_COUNTRY_CODE, GEOIP_COUNTRY_NAME 항목 확인

 

# vi /etc/apache2/mods-enabled/mod_geoip.conf

특정 국가의 접근 차단

<IfModule mod_geoip.c>

    GeoIPEnable On

    GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat

    <Location /home>

           SetEnvIf GEOIP_COUNTRY_CODE CN go_out

           SetEnvIf GEOIP_COUNTRY_CODE RU go_out

           SetEnvIf GEOIP_COUNTRY_CODE TH go_out

           <Limit GET POST>

             Order allow,deny

             Allow from all

             Deny  from env=go_out

           </Limit>

    </Location>

</IfModule>

 

특정 국가에만 접근 허용

<IfModule mod_geoip.c>

    GeoIPEnable On

    GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat

    <Location /home>

          SetEnvIf GEOIP_COUNTRY_CODE KR go_in

           <Limit GET POST>

             Order Deny,Allow

             Deny from all

             Allow  from env=go_in

           </Limit>

    </Location>

</IfModule>

 


[cloudflare 적용시]


<IfModule mod_geoip.c>

    GeoIPEnable On

    GeoIPDBFile /usr/local/GeoIP/share/GeoIP/GeoIP.dat

</IfModule> 

 


<Directory /home/>

SetEnvIf GEOIP_COUNTRY_CODE KR AllowCountry

Allow from env=AllowCountry

allow from 103.21.244.0/22

allow from 103.22.200.0/22

allow from 103.31.4.0/22

allow from 104.16.0.0/12

allow from 108.162.192.0/18

allow from 131.0.72.0/22

allow from 141.101.64.0/18

allow from 162.158.0.0/15

allow from 172.64.0.0/13

allow from 173.245.48.0/20

allow from 188.114.96.0/20

allow from 190.93.240.0/20

allow from 197.234.240.0/22

allow from 198.41.128.0/17

allow from 199.27.128.0/21

Deny from all

</Directory>

 

 

 

[참고]

Cannot load mod_geoip.so into server: libGeoIP.so.1: cannot open shared object file: No such file or directory

에러 발생시

/etc/ld.so.conf 파일에

/usr/local/GeoIP/lib 라인 추가 후

ldconfig 실행 적용

번호 제목 날짜 조회 수
170 Restore Database And Rename Database Files Example 2019.03.26 60254
169 Dns 보안 file 2017.08.23 20211
168 Sun t2000 manual file 2017.08.24 19861
167 AD(Active Directory) 2017.11.01 18593
166 한글 putty file 2017.09.13 11998
165 Tear Drop / Tiny Fragment / Fragment Overlap(고전적인방법) file 2017.10.17 8818
164 Cain & Abel is a password recovery tool 2018.03.12 8061
163 win-sshfs for windows file 2017.09.13 7770
162 룰 기반의 IDS(침입탐지시스템) - snort file 2017.09.27 7649
161 HP-UX snmp 중지 설정 2017.09.07 6859
160 VPN 2017.11.01 5138
159 보안관제 file 2017.11.01 4767
158 아파치 2.2.29 버젼에서 SSLProtocol 중 TLSv1.2로 설정 2019.02.27 4416
157 tcpdump - dump traffic on a network [1] file 2017.10.13 4027
156 윈도우용 wget file 2017.09.28 4017
진주성 블로그 방문하기
CLOSE