애플 맥 웹서버에서 특정 IP 차단하기

반응형

애플 OS 팁

 

 

호스팅 서버를 임차하여 웹서버를 운영한다면, 특정 국가 및 특정 IP 의 접속차단 설정을 호스팅 업체가 제공하는 국가별, IP별 차단 목록에 추가하므로 매우 간단하다. 하지만, 자체 웹서버를 운영한다면, 방화벽, 웹서버 설정 등은 본인이 직접 해야 하는데, IP 차단 설정이 어렵지는 않지만 설정할 내용이 많아 시간이 적지 않게 소요됩니다. 실제로, 아파치 로그를 살펴보면, 이름도 생소한 해외 검색 Bot 들이 하루에만 1만번 이상 내 웹서버로 접속을 시도하고 있다는 것을 알 수 있다. 

아파치 로그를 열람하여, 통계를 내보면, 미국, 러시아, 중국 및 3세계 등에서 접속하는 경우가 대부분인데, 이러한 접속은 내 
웹서버나 DB서버에 엄청난 부하를 주므로 차단해주는게 서버운영에 바람직하다. 특정 IP 대역 차단은 Apache2 서버 환경 말고, mac OSX 서버 환경에서도 가능한데, 오늘은 mac OSX 서버 환경에서 특정 IP 대역을 차단하는 방법을 알아보자

 

방화벽 설정파일 수정하기

시스템 환경설정 패널에서 방화벽을 모두 허용으로 설정한 다음, OSX 터미널에서 다음과 같이 방화벽 설정파일을 수정한다.  아래 예시는 맥미니 2012 카탈리나 환경의 설정방법이다. 방화벽 설정파일은  OSX 버전마다 위치가 조금씩 다르니 감안하자. 먼저 방화벽 설정파일을 맥 OSX 터미널에서 불러오기 위해 아래 명령어를 입력한다.

$ sudo vi /etc/pf.conf ↲
#
# Default PF configuration file.
#
# This file contains the main ruleset, which gets automatically loaded
# at startup.  PF will not be automatically enabled, however.  Instead,
# each component which utilizes PF is responsible for enabling and disabling
# PF via -E and -X as documented in pfctl(8).  That will ensure that PF
# is disabled only when the last enable reference is released.
#
# Care must be taken to ensure that the main ruleset does not get flushed,
# as the nested anchors rely on the anchor point defined here. In addition,
# to the anchors loaded by this file, some system services would dynamically
# insert anchors into the main ruleset. These anchors will be added only when
# the system service is used and would removed on termination of the service.
#
# See pf.conf(5) for syntax.
#
 
#
# com.apple anchor point
#
scrub-anchor "com.apple/*"
nat-anchor "com.apple/*"
rdr-anchor "com.apple/*"
dummynet-anchor "com.apple/*"
anchor "com.apple/*"
load anchor "com.apple" from "/etc/pf.anchors/com.apple"
 
block in from 101.132.0.0/16
block in from 101.99.0.0/16
block in from 103.145.0.0/16
block in from 103.214.0.0/16
block in from 106.15.0.0/16
block in from 107.151.182.0/18
block in from 107.172.0.0/14

위의 " pf.conf " 내용중 29번 항목부터는 직접 입력한 내용이다.

"block in from" 다음에 입력한 IP 대역을  mac OSX 서버에 접속하지 못하도록 막겠다는 의미이다. 여기서 중요한 사항은 IP 1개씩 넣는다면 수백~수천개의 IP를 반복해서 넣어야 해서 여간 노가다가 아닐 수 없다. 따라서 가급적 1개의 IP 보다는 IP 대역그룹으로 설정하는게 효율적이다.

 

 

IP 대역폭 지정하기

아래 이미지에서 아래부터 9번째 줄 "inetnum" 을 확인하면 차단해야할 최종적인 IP 대역폭이 나온다. 이 대역폭을 이용하여 " block in from XXX.XXX.XXX.XXX/XX " 이런 식으로 방화벽 pf.conf 에 추가해 주면된다. 

 

 

끝으로 잊지말고 아래와 같이 명령어를 입력해야 IP 차단 설정이 정상 작동한다.

 

$ sudo pfctl -e -f /etc/pf.conf ↲ (방화벽 설정 리프레쉬)
$ sudo apachectl restart ↲ (웹서버 재시동)

 

반응형