2024. 12. 17. 04:24ㆍETC/홈서버
1. Unifi Cloud Gateway Ultra
생각보다도 더 무겁고 야무지다.
스위치랑 AP도 사고 싶다… unifi 너무 비싼 것...
2. VLAN
- 보안을 위해서 VLAN을 사용하여 네트워크를 분리
- UCG에서 VLAN 생성 후
- Proxmox Linux Bridge의 VLAN 옵션 활성화
- VM에서 VLAN tag를 추가
3. 방화벽 규칙
가. 요구사항
- VLAN에서 라우터에 접근할 수 없도록 차단
- cloudflare에서 요청은 허용
- 필요시 NPM을 통한 reverse proxy는 허용
- NPM → VLAN의 특정 포트로 요청 허용
- NPM ← VLAN으로의 응답 허용 (Established/Related Traffic)
- 같은 network의 노드 간의 통신은 허용하지만 다른 network 간의 통신은 차단
상태 | 설명 |
New | 새로 시작되는 연결 요청 상태 |
Established | 이미 성립된 연결의 트래픽. 클라이언트가 서버에 요청을 보내고 서버가 응답을 보낼 때의 상태 |
Related | 기존 연결과 관련된 새로운 연결의 트래픽. FTP 데이터 연결이나 일부 프로토콜의 보조 연결이 해당 |
Invalid | 유효하지 않거나 인식할 수 없는 연결 상태 |
일단 모든 LAN 간의 접근을 차단한다.
그 후 예외규칙을 추가한다.
이런 방식은 네트워크 보안의 기본 원칙 중 하나인 "기본 거부(Default Deny)" 원칙이라고 하는 것 같다.
나. Unifi 기본 방화벽 규칙
Unifi의 방화벽은 기본적으로 "LAN-to-WAN" 트래픽은 허용하고, "WAN-to-LAN" 트래픽은 차단하는 정책이 설정되어 있다.
또한 Unifi는 기본적으로 VLAN 간의 통신을 모두 허용한다.
VLAN 간의 통신을 차단하려면 별도의 inter VLAN Communication 설정이 필요하다.
UniFi network 8.4.x. 버전부터 Isolate Network
옵션을 통해서 별도의 설정없이 고립된 VLAN을 쉽게 만들 수 있다.
단, default network는 불가능하다. (빠른 시일 내로 AP부터 사야겠다…)
임시방편으로 default network에서 VLAN으로의 통신을 차단한다.
(나중에 알게된 사실인데 라우터의 특정한 포트를 특정한 VLAN에 할당할 수 있더라...)
방화벽 규칙은 위에서 아래로 순차적으로 적용되며, 먼저 매칭되는 규칙이 우선 적용된다.
따라서 규칙의 순서가 매우 중요하다.
예를 들어, 모든 트래픽을 차단하는 규칙이 특정 트래픽을 허용하는 규칙보다 위에 있다면, 허용 규칙은 절대 적용되지 않는다.
따라서 일반적으로 더 구체적인 규칙을 위에 배치하고, 더 일반적인 규칙을 아래에 배치하는 것이 좋다.
다. Unifi 방화벽의 트래픽 방향
지금까지 이해한 바로는 다음과 같다.
(아직 검증되지않아 틀릴 수 있습니다.)
유형 | 방향 | 설명 |
LAN | In | 내부 네트워크 → UniFi 장치 |
LAN | Out | UniFi 장치 → 내부 네트워크 |
LAN | Local | 내부 네트워크 → Unifi 장치 자체 |
Guest | In | 게스트 네트워크 → 네트워크 리소스 |
Guest | Out | 게스트 네트워크 → 외부 |
Guest | Local | 게스트 네트워크 → Unifi 장치 자체 |
Internet | In (WAN In) | 외부 → Unifi 장치 |
Internet | Out (WAN Out) | Unifi 장치 → 외부 |
Internet | Local | 외부 → Unifi 장치 자체 |
- 시각적으로 트래픽 방향을 알려주는 영상
라. 규칙 추가
1) VLAN에서 라우터에 접근할 수 없도록 차단 (적용 X)
Action | Type | Protocol | Source | Port | Destination | Port |
Drop | LAN Local | All | 모든 VLAN | Any | Any | Any |
- 라우터 설정을 변경할 수 없게 만들려고 했음. 그러나 해당 방화벽이 동작하면 VLAN의 노드들은 인터넷 연결이 안 된다. 아마 게이트웨이에 접근할 수 없어서 인 듯.
2) cloudflare에서 요청은 허용
Action | Type | Protocol | Source | Port | Destination | Port |
Accept | Internet In | TCP/UDP | Cloudflare IP | 80,443 | Any | 80,443 |
Cloudflare의 IP 범위는 공식 문서에서 확인할 수 있다.
- 103.21.244.0/22
- 103.22.200.0/22
- 103.31.4.0/22
- 141.101.64.0/18
- 108.162.192.0/18
- 190.93.240.0/20
- 188.114.96.0/20
- 197.234.240.0/22
- 198.41.128.0/17
- 162.158.0.0/15
- 104.16.0.0/13
- 104.24.0.0/14
- 172.64.0.0/13
- 131.0.72.0/22
IP들을 그룹으로 관리하자.
3) 필요시 NPM을 통한 reverse proxy는 허용.
- NPM → VLAN의 특정 포트로 요청 허용
Action | Type | Protocol | Source | Port | Destination | Port |
Accept | LAN In | TCP/UDP | NPM VLAN | any | 해당 VLAN들 | 80,443 |
- NPM ← VLAN으로의 응답 허용 (Established/Related Traffic 응답 허용)
Action | Type | Protocol | Match State | Source | Port | Destination | Port |
Accept | LAN In | Any | Established, Related | Any | Any | Any | Any |
4) Default network와 다른 VLAN network 간의 통신은 차단
Action | Type | Protocol | Source | Port | Destination | Port |
Accept | LAN In | All | Default | Any | 모든 VLAN | Any |
4. IP 차단
차단할 IP는 별도의 그룹으로 관리하면 편하다.
방화벽 규칙에서 가장 먼저 걸러내면 된다.
특정 국가를 차단할 수도 있다. (그만해라 이 녀석들아)
5. IDS/IPS
IDS(Intrusion Detection System)
- 침입 탐지 시스템
- 네트워크 트래픽을 모니터링하고 의심스러운 활동을 감지
- 보안 위협을 식별하고 로그를 생성
- 실제 차단은 하지 않고 관리자에게 알림만 제공
IPS(Intrusion Prevention System)
- 침입 방지 시스템
- IDS의 기능을 포함하면서 추가로 위협 차단 기능 제공
- 악성 트래픽을 실시간으로 차단
- 제로데이 공격이나 알려진 취약점 공격을 방어
두 시스템은 다음과 같은 방식으로 위협을 탐지한다:
- 시그니처 기반 탐지: 알려진 공격 패턴과 일치하는 트래픽을 식별
- 이상 행동 탐지: 정상적인 네트워크 활동과 다른 비정상적인 패턴을 감지
- 프로토콜 분석: 네트워크 프로토콜의 비정상적인 사용을 확인
손쉽게 IDS/IPS를 활성화할 수 있다.
IPS를 활성화할 경우 예상치 못한 문제가 발생할 수 있으니 IDS만 활성화하고 비정상적인 접근을 시도하는 IP만 수동으로 BlackList에 추가해도 된다.
아무것도 안 하고 443, 80 포트만 열어놓아도 하루에 3개씩은 걸린다.
물론 조금 느려지는 것은 어쩔 수 없다.
6. VPN
굳이 더 비싼 unifi 제품을 선택한 이유 중 하나가 VPN이다.
unifi에서 자체적으로 WireGuard VPN을 제공한다.
(뿐만 아니라 OpenVPN, teleport 등 다양한 옵션도 제공함)
VPN 서버를 생성한다.
생성된 네트워크는 기본적으로 모든 VLAN에 접근할 수 있다.
따라서 정말 필요한 부분에 한해서만 접근할 수 있도록 방화벽 규칙을 추가해야 한다.
7. Cloudflare Proxy
프록시 옵션을 활성화하면 다음과 같은 장점을 얻을 수 있다:
- DDoS 보호: 악의적인 트래픽으로부터 웹사이트를 보호한다.
- WAF(Web Application Firewall): 웹 애플리케이션 공격을 차단한다.
- SSL/TLS 암호화: 모든 트래픽을 자동으로 암호화하여 보안을 강화한다.
- 캐싱: 전 세계 CDN을 통해 콘텐츠를 캐싱하여 로딩 속도를 향상한다.
- 실제 서버 IP 숨김: 프록시를 통해 원본 서버의 IP 주소를 숨겨 직접적인 공격을 방지한다.
하지만 다음과 같은 단점도 있다:
- 추가 지연: 프록시를 거치면서 약간의 지연이 발생할 수 있다.
- 일부 프로토콜 제한: WebSocket과 같은 특정 프로토콜 사용이 제한될 수 있다.
- 설정 복잡성: DNS 및 SSL 설정이 더 복잡해질 수 있다.
- IP 기반 제한 어려움: 실제 클라이언트 IP 대신 Cloudflare IP가 기록되어 IP 기반 제한이 어려울 수 있다.
캬! 돈이 좋다!
'ETC > 홈서버' 카테고리의 다른 글
[홈서버] DDNS (0) | 2024.12.17 |
---|---|
[홈서버] 네트워크 1 - 절망편 (1) | 2024.12.17 |
[홈서버] 보안 (0) | 2024.12.15 |
[홈서버] 하이퍼바이저 (1) | 2024.12.10 |
[홈서버] 하드웨어 (1) | 2024.12.10 |