본문 바로가기

리눅스

아파치 웹 서버에서 IP로 접속을 차단하는 방법

반응형

아파치 웹 서버에서 IP로 접속을 차단하는 방법

아파치에서 IP로 접속을 차단하는 몇 가지 방법입니다.

1 .htaccess 파일을 사용하여 IP 차단

  • 웹 서버의 루트 디렉토리 또는 해당 디렉토리에 .htaccess 파일을 생성합니다.
  • 다음과 같은 내용을 .htaccess 파일에 추가하여 특정 IP 주소 또는 IP 대역을 차단합니다.
order allow,deny
deny from 192.168.0.1
deny from 10.0.0.0/24
allow from all

2 httpd.conf 또는 apache2.conf 파일을 사용하여 IP 차단

  • 웹 서버의 httpd.conf 또는 apache2.conf 파일을 엽니다.
  • 다음과 같은 내용을 파일에 추가하여 특정 IP 주소 또는 IP 대역을 차단합니다.
<Directory "/var/www/html">
    Order allow,deny
    Deny from 192.168.0.1
    Deny from 10.0.0.0/24
    Allow from all
</Directory>

3 모듈을 사용하여 IP 차단

  • 아파치의 모듈 중 하나인 mod_authz_host를 사용하여 IP 차단을 구현할 수 있습니다.
  • httpd.conf 또는 apache2.conf 파일에 다음과 같은 내용을 추가합니다.
<Directory "/var/www/html">
    Require all granted
    Require not ip 192.168.0.1
    Require not ip 10.0.0.0/24
</Directory>

 

차단된 IP 주소 또는 IP 대역은 실제로 차단할 IP 주소로 수정해야 합니다. 위 예제에서는 "192.168.0.1"과 "10.0.0.0/24"를 차단하는 예시입니다.

 

참고: 아파치 웹 서버의 설정 파일 위치나 파일 이름은 시스템에 따라 다를 수 있으므로 실제 시스템에 맞게 조정해야 합니다. 또한, 위의 설정들은 주로 아파치 2.2 이전 버전에서 사용되는 방법입니다.

최신 버전의 아파치에서는 Require 문을 사용하여 액세스 제어를 구성하는 것이 권장됩니다.

가상호스트로 IP 주소를 차단하는 예시

  • httpd-vhosts.conf 편집
    • 차단하고자 하는 아이피(111.111.111.111)로 가상호스트 생성
vim /etc/httpd/conf.d/httpd-vhosts.conf
$ vim /etc/httpd/conf.d/httpd-vhosts.conf
...
LogFormat "%h %l %u %t %v:%p \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %Ts %Dμs" vcombined
...
<VirtualHost *:80>
    ServerName 111.111.111.111
    Redirect / https://www.sangchul.kr/40x.html
    #RewriteEngine On
    #RewriteRule (.*) http://www.sangchul.kr/$1 [R=301,L]
    CustomLog "|/usr/sbin/cronolog /logs/access/111.111.111.111-access-%Y%m%d.log" vcombined
    ErrorLog "|/usr/sbin/cronolog /logs/error/111.111.111.111-error-%Y%m%d.log"
</VirtualHost>
...
  • 아파치 로그 확인
$ tail -100f /logs/access/localhost-access-20201224.log
37.46.150.24 - - [24/Dec/2020:10:50:36 +0900] 111.111.111.111:80 "GET / HTTP/1.1" 301 213 "-" "Linux Gnu (cow)" 0s 160μs

 

728x90
반응형