홈서버를 운영 중이면 외부로 포트를 열어놨을 확률이 크다. 그리고 그 포트는 대부분 443(https) 포트이고 well-known포트라 공격이 들어오기 쉽다.
또한 내 웹서버에 나 말고 외국에서 접속하는 거 자체가 싫을 수도 있다.
그렇다면 GeoIP를 이용해보자.
GeoIP는 국가별 IP를 확인할 수 있는 목록이라고 생각하면 쉽다.
즉, 123.123.123.123이라는 IP가 어디 나라에서 제공되는 IP인지 확인할 수 있다는 거다.
만약 이 목록을 opnsense에 적용해서 국가별로 접속을 차단할 수 있다면? 보안이 확실하게 높아질 것이다.
그전에 아래 링크에 접속하여 회원가입 후 라이선스 키를 받아야 한다
라이선스 키를 다 받았다는 가정하에 opnsense에 특정 국가를 허용 또는 차단하는 방법을 확인해 보자

opnsense web ui에 접속한 다음 Firewall 탭에서 Aliases를 누르면 GeoIP setting 탭을 볼 수 있다.
주어진 라이선스 키를 Url에 입력하면 된다.

Apply 버튼을 누르면 적용이 된다.
다시 Aliases 탭으로 돌아와 +버튼을 누르면 새 Aliases를 만들 수 있는데 Type을 GeoIP으로 선택하면 국가의 목록을 선택할 수 있다.

만약에 내가 특정 국가를 차단하려면 특정 국가를 선택하거나 특정 국가를 제외하고 차단을 하려면 특정국가 빼고 다 선택을 하면 된다.
나는 한국을 제외한 모든 국가를 선택해놓았다.
이렇게 목록을 적용하고 나서 해야 할 것은 방화벽 규칙을 생성하는 것이다.
Firewall에 Rules탭을 선택하고 우리가 차단할 것은 WAN(외부)에서 넘어오는 거 기 때문에 WAN 규칙을 만들면 된다.

+버튼을 눌러 규칙을 생성하는데 아래의 사진과 같이 동일하게 적용하면 된다.

Action은 Block으로 해야 차단이 된다.
Interface는 아까 말했듯이 WAN으로 해야 하며
우리는 들어오는 것만 막을 목적이기 때문에 Direction을 in으로 선택한다
다른 국가에서 오는 걸 모두 막을 목적이기 때문에 v4, v6 선택하고 모든 프로토콜을 선택하면 된다.
우리는 내부망 모든 기기에 외국 클라이언트의 접속을 막을 거 기 때문에 Destination은 any로 port도 any로 설정한다.
이렇게 규칙을 설정하고 맨 위로 규칙을 올리면 1순위의 규칙으로 적용되어 제일 먼저 처리가 된다.
규칙이 잘 적용되는지 보려면 log를 보면 된다.
Firewall에 Live View에 실시간으로 로그가 업데이트되면서 허용과 차단을 볼 수 있다.



접속 차단 당한 IP의 국가를 확인해 보면

미국으로 뜨면서 차단이 잘 된 걸 알 수 있다.
그러면 여기서 의문점이 생길 텐데 이전 글들에 보면 proxy를 보안적으로 추천한다고 써놓았다.
proxy 서버는 대부분 외국에 있고 Cloudflare proxy는 무료로 쓴다면 한국 proxy를 거치지 않는다.
그러면 이 규칙에 의해 한국을 제외한 모든 국가의 차단이 될 텐데 한국에서 proxy를 통한 접속도 차단되지 않나?라는 의문점이 생길 거다.
정답은 차단이 된다.
opnsense에 접속로그를 보면 실제 클라이언트 ip가 뜨지 않고 proxy 서버 ip가 뜨기 때문에 opnsense는 당연하게 차단을 한다.
이것을 해결하는 방법은 추후에 올리겠다.
'opnsense' 카테고리의 다른 글
| Cloudflare 프록시 서버를 거쳐 들어오는 요청 허용하기 (0) | 2025.11.15 |
|---|---|
| opnsense 주 라우터 구성 실패기 (0) | 2025.11.12 |