MyLearn Docs

MyLearn Docs

Did You Know?

Docy turns out that context is a key part of learning.

㊙️Site-to-Site VPN

예상 읽기 시간:4분 3 조회수

학습 목표

이 단원을 마치면 다음을 수행할 수 있어야 합니다.

  1. IPsec Site-to-Site VPN 구성에 필요한 사전 조건을 확인할 수 있다.
  2. pfSense에서 IPsec Phase 1(IKE) 설정 항목의 의미를 이해하고 구성할 수 있다.
  3. IPsec Phase 2(SA) 설정 항목을 이해하고 구성할 수 있다.
  4. 양쪽 pfSense에 동일한 설정을 미러링하는 원리를 이해한다.
  5. 터널 수립 후 방화벽 규칙을 추가해 트래픽을 허용하는 방법을 따라 할 수 있다.
  6. Ping 테스트로 터널의 정상 동작을 검증할 수 있다.

1. 실습 환경 구성도

이 강의는 pfSense 2대를 이용한 Site-to-Site 터널 구성을 다룹니다.

          [pfSense A]                               [pfSense B]
  LAN: 192.168.2.0/24                      LAN: 192.168.3.0/24
  WAN: 192.168.0.19 ──── 인터넷/공용망 ──── WAN: 192.168.0.89

  ←──────────────── IPsec 암호화 터널 ────────────────→

  내부 PC (2.2.2.x)  ←───── VPN 연결 후 통신 가능 ─────→  내부 PC (3.3.3.x)

설정 전 상태 (VPN 없음)

pfSense A에서 ping 3.3.3.3 → 100% 패킷 손실 (통신 불가)
pfSense B에서 ping 2.2.2.2 → 100% 패킷 손실 (통신 불가)

설정 후 목표 상태

pfSense A에서 ping 3.3.3.3 → 0% 패킷 손실 ✅
pfSense B에서 ping 2.2.2.2 → 0% 패킷 손실 ✅
→ 두 LAN이 하나의 네트워크처럼 통신

2. 사전 조건 확인 (필수)

IPsec 터널을 생성하기 전에 반드시 확인해야 할 항목입니다.

✅ 조건 1: 양쪽 WAN이 서로 통신 가능해야 함

pfSense A의 WAN → pfSense B의 WAN으로 Ping 가능 여부 확인
pfSense B의 WAN → pfSense A의 WAN으로 Ping 가능 여부 확인
  • WAN IP는 공인 IP, 동적 IP, 사설 IP 모두 가능
  • 단, 양쪽이 서로 도달 가능(Reachable)해야 함
  • 중간에 방화벽이 있다면 IPsec 포트(UDP 500, UDP 4500) 허용 필요

✅ 조건 2: 양쪽 LAN 서브넷이 달라야 함

올바른 예:
  pfSense A LAN: 192.168.2.0/24
  pfSense B LAN: 192.168.3.0/24  ← 서로 다른 대역

잘못된 예:
  pfSense A LAN: 192.168.1.0/24
  pfSense B LAN: 192.168.1.0/24  ← 같으면 라우팅 충돌 발생

✅ 조건 3: Phase 1/2의 모든 암호화 설정이 양쪽에서 동일해야 함

  • Pre-Shared Key (PSK) 동일
  • 암호화 알고리즘 동일
  • 해시 알고리즘 동일
  • DH 그룹 동일
  • 하나라도 다르면 터널 수립 실패

3. IPsec 설정 경로

VPN → IPsec → [Tunnels 탭] → + Add P1

4. Phase 1 설정 (IKE — 인증 및 암호화 협상)

Phase 1은 두 pfSense가 서로를 인증하고 암호화 방식을 협상하는 단계입니다. 실제 데이터를 보호하는 보안 채널(Phase 2)을 수립하기 위한 준비 단계입니다.

VPN → IPsec → + Add P1

Phase 1 설정 항목 상세

항목권장 설정설명
IKE VersionIKEv2최신 버전, 더 강화된 보안 · 성능 (강사 권장)
Internet ProtocolIPv4WAN 연결 타입에 따라 IPv4 또는 IPv6 선택
InterfaceWANIPsec 터널이 나가는 외부 인터페이스
Remote Gateway상대방 WAN IPpfSense B의 WAN IP 입력 (예: 192.168.0.89)
Description식별용 이름터널 이름 메모 (예: Site-B-Tunnel)
Authentication MethodMutual PSK사전 공유 키(Pre-Shared Key) 방식
My IdentifierMy IP Address자신의 WAN IP를 식별자로 사용
Peer IdentifierPeer IP Address상대방 WAN IP를 식별자로 사용
Pre-Shared Key (PSK)강력한 비밀번호양쪽 동일해야 함 · 최소 8자, 대소문자 혼합 권장
Encryption AlgorithmAES 256-bit기본값, 필요 시 변경 가능
Hash AlgorithmSHA-1 이상SHA-256, SHA-512로 강화 가능
DH Group14 (2048-bit) 이상최소 14 (2048-bit) 사용 권장 (강사 강조)

💡 IKEv2 vs IKEv1: IKEv2가 더 빠르고 안전하며 NAT 환경에서도 잘 동작합니다. 상대방 장비가 IKEv2를 지원하면 반드시 v2를 사용하세요.

⚠️ PSK 보안: 테스트용 단순 비밀번호(123456 등)는 실습 시에만 사용하고, 실제 운영 환경에서는 반드시 복잡한 무작위 문자열(20자 이상)을 사용하세요.

Phase 1 완료 후

Save → Apply Changes
→ Tunnels 목록에 Phase 1 항목 생성됨
→ 해당 항목 하단의 [+ Show Phase 2 Entries] → [+ Add P2] 클릭하여 Phase 2로 이동

5. Phase 2 설정 (SA — 실제 데이터 터널)

Phase 2는 실제 데이터를 암호화해서 전달하는 터널(Security Association) 을 정의합니다. 어떤 로컬 네트워크어떤 원격 네트워크와 연결할지를 지정합니다.

Phase 1 항목 → [+ Add P2]

Phase 2 설정 항목 상세

항목pfSense A 설정pfSense B 설정설명
ModeTunnelTunnelSite-to-Site는 항상 Tunnel 모드
Local NetworkLAN Subnet (2.2.2.0/24)LAN Subnet (3.3.3.0/24)자신의 LAN 서브넷
Remote Network3.3.3.0/242.2.2.0/24상대방 LAN 서브넷
NAT/BINATNoneNone일반적으로 NAT 불필요
Description선택 사항선택 사항설명 메모
Encryption AlgorithmAES 256-bitAES 256-bit양쪽 동일해야 함
Hash AlgorithmSHA-1 이상SHA-1 이상양쪽 동일해야 함
PFS Key Group14 (2048-bit)14 (2048-bit)양쪽 동일해야 함

💡 Local/Remote Network의 핵심 원리: pfSense A의 Phase 2에서 Local = A의 LAN, Remote = B의 LAN pfSense B의 Phase 2에서 Local = B의 LAN, Remote = A의 LAN → 서로 바라보는 방향이 반대입니다.

Save → Apply Changes

6. pfSense B (반대편) 설정 — 미러링

pfSense A에서 한 설정을 pfSense B에도 동일하게 구성해야 합니다. 다른 점은 Remote Gateway와 네트워크 방향입니다.

pfSense B의 Phase 1

항목pfSense ApfSense B
Remote GatewayB의 WAN IP (0.89)A의 WAN IP (0.19) ← 반대
Pre-Shared Key동일한 PSK동일한 PSK ← 반드시 같아야 함
모든 알고리즘AES/SHA/DH동일 ← 반드시 같아야 함

pfSense B의 Phase 2

항목pfSense ApfSense B
Local Network2.2.2.0/243.3.3.0/24 ← 반대
Remote Network3.3.3.0/242.2.2.0/24 ← 반대
알고리즘동일동일

7. 전체 설정 절차 요약

[pfSense A 설정]
1. VPN → IPsec → + Add P1
2. IKE Version: IKEv2
3. Interface: WAN
4. Remote Gateway: pfSense B의 WAN IP 입력
5. Authentication: Mutual PSK
6. PSK 입력 (강력한 비밀번호)
7. Encryption: AES 256-bit / Hash: SHA-1 이상 / DH Group: 14(2048-bit) 이상
8. Save → Apply Changes
9. Phase 1 항목에서 + Add P2
10. Mode: Tunnel
11. Local Network: LAN Subnet (A의 LAN)
12. Remote Network: B의 LAN 서브넷 입력
13. NAT: None
14. 알고리즘 설정 (A와 동일하게)
15. Save → Apply Changes

[pfSense B 설정 — 미러링]
16. 위 1~15번 반복
    (Remote Gateway ↔ A의 WAN IP, Local/Remote Network 방향 반대)

[방화벽 규칙 추가 — 양쪽 모두]
17. Firewall → Rules → IPsec 탭
18. + Add 규칙
    Action: Pass
    Source: 원하는 범위 (any 또는 특정 서브넷)
    Destination: 원하는 범위
    Protocol: any (또는 필요한 프로토콜만)
19. Save → Apply Changes

[검증]
20. VPN → IPsec → Status 탭에서 "Established" 확인
21. Diagnostics → Ping으로 상대방 LAN IP ping 테스트

8. 방화벽 규칙 추가 (필수 단계)

터널이 Established 상태여도 방화벽이 트래픽을 기본 차단합니다. IPsec 인터페이스에 Pass 규칙을 추가해야 실제 통신이 가능합니다.

Firewall → Rules → IPsec 탭 → + Add

규칙 설정 예시

항목전체 허용 (단순)제한 허용 (권장)
ActionPassPass
InterfaceIPsecIPsec
ProtocolanyTCP/UDP (필요한 것만)
Sourceany특정 원격 서브넷
Destinationany특정 로컬 서버 IP
DescriptionSite-B Allow AllSite-B to FileServer only

💡 보안 관점 권장: 초기 테스트 시에는 any → any 로 설정하고 동작을 확인한 뒤, 운영 시에는 필요한 출발지·목적지·포트만 허용하는 최소 권한 원칙을 적용하세요.

⚠️ 이 규칙은 양쪽 pfSense 모두에 추가해야 합니다.


9. 터널 상태 확인 및 검증

9-1. 터널 상태 확인

방법 1: VPN → IPsec → 상단 [Status] 탭
  → "Established" 표시 = 터널 정상 수립 ✅
  → 표시 없음 또는 오류 = 설정 불일치 확인 필요

방법 2: Status → Dashboard
  → IPsec 위젯 추가 후 상태 확인

방법 3: Status → System Logs → IPsec 탭
  → 연결 협상 과정 로그 확인

9-2. Ping 테스트

Diagnostics → Ping
테스트SourceTarget기대 결과
pfSense A → B LANLAN interface (2.2.2.x)3.3.3.30% 패킷 손실 ✅
pfSense B → A LANLAN interface (3.3.3.x)2.2.2.20% 패킷 손실 ✅

💡 Ping 테스트 시 Source를 LAN 인터페이스로 지정해야 합니다. WAN에서 핑을 보내면 터널을 통하지 않아 잘못된 결과가 나올 수 있습니다.

9-3. 성공 시 확인 메시지

강의 데모 결과:
  "It's dripping successfully here"
  "No packet loss of any kind, not even 1% packet loss"
  "The two local networks are fully communicating"

10. 문제 해결 — 터널이 수립되지 않을 때

체크리스트

□ WAN 간 통신 확인
    → Diagnostics → Ping으로 WAN to WAN 핑 가능 여부 확인
    → 중간 방화벽에서 UDP 500, UDP 4500 포트 허용 여부 확인

□ PSK 일치 여부 확인
    → 양쪽의 Pre-Shared Key가 대소문자까지 정확히 동일한지 확인

□ Phase 1 알고리즘 일치 여부
    → IKE Version, Encryption, Hash, DH Group이 양쪽 동일한지 확인

□ Phase 2 알고리즘 일치 여부
    → Encryption, Hash, PFS Key Group 양쪽 동일한지 확인

□ Remote Gateway IP 오입력
    → pfSense A: Remote = B의 WAN IP
    → pfSense B: Remote = A의 WAN IP
    → 서로 교차하여 입력했는지 확인

□ LAN 서브넷 충돌
    → 양쪽 LAN이 같은 대역이면 라우팅 불가 → 대역 변경 필요

로그로 원인 분석

Status → System Logs → IPsec 탭
→ "no proposal chosen": 암호화 알고리즘 불일치
→ "authentication failed": PSK 불일치
→ "cannot reach": WAN 간 통신 불가

11. 고급 확장 — 복수 LAN 연결

한쪽 pfSense가 여러 개의 LAN 서브넷을 가진 경우, 서브넷마다 별도의 Phase 2 항목을 추가해야 합니다.

예: pfSense A에 LAN1(2.2.2.0/24), LAN2(10.10.0.0/24), LAN3(172.16.0.0/24)가 있을 때

Phase 2 항목 1: Local=LAN1(2.2.2.0/24)  Remote=3.3.3.0/24
Phase 2 항목 2: Local=LAN2(10.10.0.0/24) Remote=3.3.3.0/24
Phase 2 항목 3: Local=LAN3(172.16.0.0/24) Remote=3.3.3.0/24

강사 언급: “pfSense나 MikroTik 같은 시스템에 2~6개의 내부 LAN이 있으면, 각각에 대한 Phase 2 터널을 만들어야 합니다.”


12. 이기종 장비 연결 예고

“pfSense와 MikroTik 간 연결도 가능합니다. 다음 강의에서 다루겠습니다.”

IPsec은 업계 표준 프로토콜이므로 다음 장비들과도 동일한 방식으로 연결 가능합니다:

pfSense ══ IPsec ══ MikroTik
pfSense ══ IPsec ══ Cisco ASA
pfSense ══ IPsec ══ Juniper
pfSense ══ IPsec ══ Ubiquiti
pfSense ══ IPsec ══ 타 pfSense (본 강의)

13. 핵심 정리 (Cheat Sheet)

  • ✅ IPsec Site-to-Site = pfSense 2대의 LAN을 인터넷을 통해 하나의 네트워크처럼 연결
  • ✅ 사전 조건: WAN 간 통신 가능, LAN 서브넷 상이, 알고리즘 양쪽 동일
  • ✅ 메뉴 경로: VPN → IPsec → + Add P1
  • Phase 1 (IKE): 서로 인증하고 암호화 방식 협상
    • IKE Version: IKEv2 권장
    • Authentication: PSK (Pre-Shared Key)
    • 최소 알고리즘: AES 256-bit / SHA-1 이상 / DH Group 14(2048-bit) 이상
  • Phase 2 (SA): 실제 데이터 터널 정의
    • Local Network: 자신의 LAN 서브넷
    • Remote Network: 상대방 LAN 서브넷
    • Mode: Tunnel
  • ✅ PSK는 양쪽 완전히 동일해야 함 — 대소문자 포함
  • ✅ 모든 암호화 설정은 양쪽 완전히 동일해야 함 — 불일치 시 터널 수립 실패
  • ✅ 터널 수립 후 방화벽 규칙 추가 필수: Firewall → Rules → IPsec → Pass 규칙
  • ✅ 터널 상태 확인: VPN → IPsec → Status → “Established” 여부
  • ✅ 최종 검증: Diagnostics → Ping (Source: LAN 인터페이스 지정)
  • ✅ 복수 LAN = Phase 2 항목을 LAN 개수만큼 추가

14. 스스로 확인하기 (Self-Check Quiz)

각 질문에 직접 답하고, 본문에서 근거를 확인하세요.

  1. IPsec Site-to-Site 터널을 생성하기 전에 반드시 확인해야 할 3가지 사전 조건은?
  2. Phase 1과 Phase 2의 역할 차이를 한 문장씩 설명하라.
  3. pfSense A(LAN: 192.168.2.0/24)와 pfSense B(LAN: 192.168.3.0/24)를 연결할 때, pfSense A의 Phase 2 설정에서 Local Network와 Remote Network에 각각 무엇을 입력해야 하는가?
  4. 터널 Status가 “Established”인데도 Ping이 실패하는 이유와 해결 방법은?
  5. DH Group 최솟값으로 권장한 것은 무엇이며, 이보다 낮으면 왜 문제가 되는가?
  6. pfSense A에 3개의 LAN 서브넷이 있을 때 Phase 2 항목을 몇 개 만들어야 하는가?
  7. 터널이 수립되지 않을 때 System Logs의 IPsec 탭에서 “no proposal chosen” 메시지가 나타나면 어떤 설정을 확인해야 하는가?

정답 요약

  1. ① WAN 간 서로 Ping 가능 / ② 양쪽 LAN 서브넷이 다른 대역 / ③ 모든 암호화 설정(PSK·알고리즘) 양쪽 동일
  2. Phase 1: 양쪽이 서로 인증하고 사용할 암호화 방식을 협상하는 단계. Phase 2: 실제 데이터를 암호화해서 주고받는 터널(SA)을 정의하는 단계.
  3. Local Network: 192.168.2.0/24 (A 자신의 LAN) / Remote Network: 192.168.3.0/24 (B의 LAN)
  4. 터널은 연결됐지만 방화벽이 트래픽을 기본 차단하기 때문. 해결: Firewall → Rules → IPsec 탭에 Pass 규칙 추가.
  5. Group 14 (2048-bit). 이보다 낮은 그룹(예: Group 2, 1024-bit)은 현대적인 공격 도구로 해독될 수 있어 보안 취약.
  6. 3개 (각 LAN 서브넷마다 별도의 Phase 2 항목 필요).
  7. Phase 1 또는 Phase 2의 암호화 알고리즘(Encryption, Hash, DH Group)이 양쪽에서 일치하지 않는 것을 확인.

15. 이전·이후 강의와의 연결

강의내용연관성
이전 강의 — VPN 개념Site-to-Site/Remote Access, IPsec 개요이번 실습의 개념적 기반
현재 강의 — IPsec Site-to-SitepfSense 대 pfSense IPsec 터널 실습
다음 강의 — IPsec 이기종 연결pfSense ↔ MikroTik IPsec동일 원리로 타 벤더와 연결
이후 강의 — OpenVPN원격 접속(Remote Access) VPN 구성Client-to-Server 방식 실습
이전 강의 — System LogsIPsec 로그 탭터널 장애 시 원인 분석에 활용

이 문서 공유

㊙️Site-to-Site VPN

또는 링크 복사

콘텐츠
Antimanual

플랫폼, 기능 및 서비스에 관한 질문을 AI 지원 도우미에게 문의하세요.

오프라인 상태입니다.
Chatbot Avatar
무엇을 도와드릴까요?