OSX 웹서버

macOS 웹서버에서 특정 IP 차단하기


macOS 웹서버에서 특정 IP 차단하기


  2022-05-31  1023 View 공개

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

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


 방화벽 설정파일 수정하기


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


$ sudo vi /etc/pf.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#
# 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 대역폭 지정하기


위 pf.conf 내용을 보면 IP 뒤에 / 를 붙이고 숫자를 추가로 넣어주어, IP 1개가 아닌 여러개의 IP 를 묶은 IP 그룹을 입력하고 있다. 공인 IP 그룹은 대부분 기관에서 사용하는데, 어떤 해외의 기관에서 사용중인 IP의 전체 그룹이란 의미로 보면된다. IP 그룹에 대한 자세한 내용은 다음 기회에 설명하기로 하고, 해당 IP의 전체 대역폭을 찾는 방법은 알아보자 

구글에서 'whois 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 (웹서버 재시동)





Tags  #macOS  #Apache  #방화벽  



🚩 OSX 웹서버 글 모음 (총 59 건)

[macOS] 빅서 (Big Sur) 에서 아파치 + PHP 8.X 설치하기

Last Updated : 2023-09-05
#매킨토시 #애플맥 #맥미니 #맥북

[MaxOSX] 이미 발급된 Lets Encrypt 의 SSL 인증서 삭제

Last Updated : 2023-09-05

[macOS] SSH로 접속 시도한 로그 조회하기

Last Updated : 2023-07-07

[macOS] M1 맥미니/맥북에어에 Homebrew 설치여부 확인하기

Last Updated : 2023-07-07

[macOS] M1 맥미니/맥북에어에 Apache 웹서버가 설치되어 있는지 확인하는 방법

Last Updated : 2023-07-07

[macOSX] 맥 터미널에서 디렉토리 복사 명령어

Last Updated : 2023-07-06