* 이 게시물은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
(pfSense 홈랩 방화벽 ⑬)
규칙이 열 개만 넘어가도 '이 IP가 뭐였더라' 하게 된다. Alias는 IP·네트워크·포트 묶음에 이름을 붙이는 기능이다. 홈서버들, 웹포트처럼 이름으로 규칙을 짜면 훨씬 읽기 좋고, 대상이 바뀌어도 Alias 한 곳만 고치면 그걸 쓰는 규칙이 전부 따라온다. 이번 편은 pfSense Alias 설정을 화면 경로부터 적용 확인까지, 내 홈랩 시나리오로 따라간다.
Alias 종류
| 종류 | 담는 것 | 예 |
|---|---|---|
| Host | 개별 IP들 | NAS 192.168.10.10, 프린터 .11 |
| Network | 서브넷 | IoT망 192.168.20.0/24 |
| Port | 포트들 | 웹포트 80, 443, 8080 |
| URL Table | 외부 목록(자동 갱신) | 차단 IP 목록 |
특히 URL Table Alias는 외부에 공개된 IP 목록(예: 특정 국가 IP, 악성 IP 피드)을 주기적으로 받아 오는 방식이라, 이게 나중에 지역 차단이나 위협 차단의 재료가 된다.
유형별 실전 시나리오 — 내 홈랩에선 이렇게 쓴다
Host — 관리자 PC 묶음. 데스크톱과 노트북을 MGMT_PC로 묶고, 웹GUI·SSH 허용 규칙의 출발지를 이 Alias로 걸었다. 나머지 기기에선 관리 화면이 아예 안 열리고, 태블릿이 늘어도 IP 한 줄 추가로 끝난다.
Network — 못 믿을 대역 묶음. VLAN 편에서 분리한 IoT망(192.168.20.0/24)과 게스트망을 NET_UNTRUSTED로 묶고, 내부 서버 대역으로 가는 트래픽을 규칙 한 줄로 차단했다. 격리망이 늘어도 서브넷 하나 추가면 된다.
Port — 관리용 포트 묶음. SSH(22)·웹GUI(443)·Proxmox(8006)를 PORTS_MGMT로 모았다. 'MGMT_PC에서 PORTS_MGMT로만 허용' — Host Alias와 조합된 규칙 한 줄이 관리 접근 정책 전체가 된다.
URL Table — 국가 IP 차단. 공개된 국가별 IP 대역 목록의 URL을 등록하면 pfSense가 받아와 차단 재료로 쓴다. 목록 한두 개면 이걸로 충분하고, 여러 피드를 본격적으로 돌릴 단계면 아래의 pfBlockerNG로 넘어간다.
pfSense Alias 설정 — 만들고 규칙에 쓰기
Firewall > Aliases에서 Alias를 만들고, 규칙의 Source/Destination/Port 칸에 그 이름을 입력하면 자동 완성된다. 예를 들어 '관리자PC만 pfSense 웹GUI 접속 허용' 같은 규칙을 Alias로 짜 두면, 관리자 PC가 늘어나도 Alias에 IP만 추가하면 된다.
화면을 조금 더 뜯어보면, Firewall > Aliases 상단의 IP · Ports · URLs 탭에서 Add를 누르고 Name(규칙에서 부를 이름), Description(사람용 메모, 한글 가능), Type(Host/Network/Port/URL Table)을 채운 뒤 아래 입력칸에 값을 넣는다. 항목마다 설명 칸이 따로 있어 '192.168.10.10 — NAS'처럼 주석을 달 수 있다. Save 후 Apply Changes까지 눌러야 실제 반영된다.
규칙 쪽에서는 규칙 편의 편집 화면에서 Source/Destination을 Single host or alias로 바꾸고 이름 첫 글자를 치면 자동 완성된다. 저장된 규칙 목록에선 Alias 이름에 밑줄이 그어져 일반 IP와 구분된다.
이름 규칙 — Alias 이름은 영문 대소문자·숫자·언더스코어(_)만 된다. 공백·하이픈·한글 불가라, 이 글의 '홈서버' 같은 표기는 실제론 HOME_SERVERS처럼 짓는다. 나는 MGMT_·NET_·PORTS_ 용도 접두어로 통일했는데, 자동 완성에서 같은 계열이 나란히 모여 찾기 쉽다.
직접 해보기
- Firewall > Aliases > IP 탭에서 Host Alias
HOME_SERVERS(내부 IP 1~2개)를, Ports 탭에서PORTS_WEB(80,443)을 만들고 Apply Changes까지 누른다. - 기존 규칙 하나를 이 Alias를 쓰도록 바꾸고, 같은
HOME_SERVERS를 다른 규칙 하나에도 넣어 둔다 — 재사용이 Alias의 핵심이다. - Alias에 IP를 하나 추가하고, 규칙 두 개를 안 건드렸는데 양쪽 다 새 IP에 반응하는 걸 확인한다. 수정 한 번이 모든 규칙에 번지는 순간이다.
- Diagnostics > Tables에서
HOME_SERVERS를 골라, 방금 추가한 IP가 실제 목록에 들어와 있는지 눈으로 확인한다.
✅ 확인 — Alias 하나를 규칙 두 개에 적용하고, Alias만 고쳐도 두 규칙이 같이 바뀌는 걸 확인했다면 성공이다. Diagnostics > Tables의 전개 결과까지 봤다면 '설정했다'를 넘어 '확인했다'까지 간 것. 규칙 목록이 IP 숫자 대신 이름으로 읽히는 그 개운함을 느껴 보자.
도메인·URL도 Alias가 된다 — FQDN·URL 타입
Alias에 IP만 넣는 게 아니다. FQDN 타입은 도메인을 적어두면 pfSense가 주기적으로 그 도메인을 조회해 IP를 자동으로 채운다. 동적 IP를 가진 외부 서비스에 규칙을 걸 때 요긴하다. URL 타입은 한 발 더 나가서, 외부에 있는 IP 목록 파일(텍스트)을 받아와 통째로 갱신한다.
다만 맹신은 금물이다. CDN처럼 IP가 수십 개씩 수시로 바뀌는 도메인은 조회한 그 순간의 IP만 잡혀서, 규칙에 구멍이 생긴다. FQDN Alias는 IP가 가끔 바뀌는 정도의 서비스에 맞다.
갱신 주기는, FQDN은 pfSense가 백그라운드에서 짧은 간격으로 알아서 재조회하고, URL Table은 만들 때 Update Freq. 칸에서 며칠 간격으로 다시 받을지 직접 정한다. 국가 IP 대역처럼 느리게 변하는 목록은 일주일이면 충분하다.
적용됐는지 눈으로 확인 — Diagnostics > Tables
Alias는 저장 순간 방화벽 내부의 실제 IP 목록(테이블)로 전개되는데, Diagnostics > Tables에서 이름을 고르면 그 전개 결과가 그대로 나열된다. FQDN·URL Table처럼 값을 직접 넣지 않은 Alias가 의도대로 채워졌는지 볼 때 특히 요긴하고, URL Table은 여기서 즉시 다시 받아올 수도 있다. 나는 새 Alias를 규칙에 걸기 전에 여기부터 열어 보는 습관을 들였다.
여러 개를 한 번에 — 대량 입력과 중첩
홈서버가 열 대쯤 되면 하나씩 넣기 번거롭다. Host·Network Alias는 한 항목에 여러 줄로 IP를 몰아넣을 수 있고, 다른 Alias를 값으로 품는 중첩(nested)도 된다. 예컨대 ‘웹서버들’과 ‘DB서버들’ Alias를 각각 만들고, ‘내부서버전체’ Alias가 그 둘을 품게 하면 관리가 계층적으로 깔끔해진다. 서버 한 대를 옮겨도 해당 Alias만 손보면 상위까지 자동으로 반영된다.
중첩에도 선은 있다. 같은 계열끼리만 품을 수 있어서 Port Alias 안에는 Port Alias만 들어가고, URL Table Alias는 중첩에서 빠진다 — 품지도, 품기지도 못한다. 경험상 중첩은 두 단이 한계다. 그 이상 쌓으면 ‘이 규칙이 결국 어떤 IP에 걸리지’ 추적 비용이 이름으로 아낀 것보다 커진다.
규칙에서 실제로 이렇게 쓴다
Alias는 방화벽 규칙의 출발지·목적지·포트 어디든 이름으로 꽂힌다. 예를 들어 출발지 any → 목적지 홈서버 → 포트 웹포트 허용 한 줄을 만들어두면, 나중에 서버를 추가할 때 규칙은 그대로 두고 홈서버 Alias에 IP만 더하면 끝이다. 규칙 목록에서 Alias 이름 위에 마우스를 올리면 지금 담긴 값이 툴팁으로 떠서, ‘이게 뭐였더라’ 하고 헤맬 일이 없다.
대량 차단 목록은 Alias 말고 pfBlockerNG로
반대로, 수천에서 수만 개에 달하는 악성 IP 목록이나 국가 대역을 Alias에 직접 밀어 넣으면 관리도 성능도 버겁다. 그런 대량·자동 갱신 목록은 Alias가 아니라 pfBlockerNG의 일이다. Alias는 ‘내가 손으로 관리하는 소수의 묶음’, pfBlockerNG는 ‘외부에서 받아오는 대량 목록’으로 역할을 나누면 둘 다 깔끔하게 굴러간다.
Alias 하나만 몸에 붙여도 방화벽 규칙 화면이 눈에 띄게 읽기 쉬워진다. 다음 편은 시간대별로 규칙을 켜고 끄는 스케줄인데, 여기서도 Alias와 조합하면 관리가 편해진다.
NAT·포트포워딩에서도 Alias가 통한다
Alias는 방화벽 규칙뿐 아니라 NAT 포트포워딩에서도 쓴다. 예를 들어 웹서비스 포트를 여러 개 여는데 그때마다 포트 번호를 외우기 싫으면, ‘웹포트’ Port Alias(80, 443, 8080…)를 만들어 포워딩 대상 포트 자리에 이름으로 넣는다. 나중에 포트를 하나 더 열 땐 Alias에 번호만 추가하면 관련 규칙이 다 따라온다.
한 가지 주의. Alias 이름은 규칙·NAT·별칭 어디서나 참조되므로, 지우기 전에 그 Alias를 쓰는 곳이 없는지 먼저 확인해야 한다. 사용 중인 Alias를 지우면 그걸 참조하던 규칙이 조용히 망가질 수 있다. 이름을 지을 땐 ‘홈서버’, ‘웹포트’처럼 무엇인지 바로 읽히는 이름을 쓰는 게 나중의 나를 돕는다.
정리하면 루틴은 셋이다. Firewall > Aliases에서 만들고, 규칙에 이름으로 걸고, Diagnostics > Tables에서 확인한다. 이 세 박자가 붙으면 방화벽 규칙 관리는 IP 암기가 아니라 이름 설계의 문제가 된다. 다음 편은 여기에 시간을 더한다 — 밤에는 막고 낮에는 열리는, 스케줄 규칙이다.
자주 묻는 질문 (FAQ)
Alias가 왜 좋은가요?
IP·포트·도메인 묶음에 이름을 붙여 규칙에서 재사용합니다. 대상이 바뀌면 Alias만 고치면 되어 규칙 관리가 깔끔해집니다.
Alias에 도메인도 넣을 수 있나요?
네, FQDN Alias는 도메인을 주기적으로 조회해 IP를 채웁니다. 다만 자주 바뀌는 CDN 도메인엔 한계가 있습니다.
Alias 이름에 한글이나 하이픈을 쓸 수 있나요?
아니요. 이름은 영문 대소문자·숫자·언더스코어(_)만 허용됩니다. 한글 메모는 Description 칸에 적으면 규칙 화면에서 함께 보입니다.
Alias가 실제 어떤 IP로 적용됐는지 어디서 확인하나요?
Diagnostics > Tables에서 Alias 이름을 고르면 방화벽이 현재 들고 있는 실제 IP 목록이 보입니다. FQDN·URL Table Alias 점검에 특히 유용합니다.

답글 남기기