㊙️Site-to-Site VPN 예상 읽기 시간:4분 3 조회수 학습 목표 이 단원을 마치면 다음을 수행할 수 있어야 합니다. IPsec Site-to-Site VPN 구성에 필요한 사전 조건을 확인할 수 있다. pfSense에서 IPsec Phase 1(IKE) 설정 항목의 의미를 이해하고 구성할 수 있다. IPsec Phase 2(SA) 설정 항목을 이해하고 구성할 수 있다. 양쪽 pfSense에 동일한 설정을 미러링하는 원리를 이해한다. 터널 수립 후 방화벽 규칙을 추가해 트래픽을 허용하는 방법을 따라 할 수 있다. 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 BRemote GatewayB의 WAN IP (0.89)A의 WAN IP (0.19) ← 반대Pre-Shared Key동일한 PSK동일한 PSK ← 반드시 같아야 함모든 알고리즘AES/SHA/DH동일 ← 반드시 같아야 함 pfSense B의 Phase 2 항목pfSense ApfSense BLocal 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 규칙 설정 예시 항목전체 허용 (단순)제한 허용 (권장)ActionPassPassInterfaceIPsecIPsecProtocolanyTCP/UDP (필요한 것만)Sourceany특정 원격 서브넷Destinationany특정 로컬 서버 IPDescriptionSite-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) 각 질문에 직접 답하고, 본문에서 근거를 확인하세요. IPsec Site-to-Site 터널을 생성하기 전에 반드시 확인해야 할 3가지 사전 조건은? Phase 1과 Phase 2의 역할 차이를 한 문장씩 설명하라. pfSense A(LAN: 192.168.2.0/24)와 pfSense B(LAN: 192.168.3.0/24)를 연결할 때, pfSense A의 Phase 2 설정에서 Local Network와 Remote Network에 각각 무엇을 입력해야 하는가? 터널 Status가 “Established”인데도 Ping이 실패하는 이유와 해결 방법은? DH Group 최솟값으로 권장한 것은 무엇이며, 이보다 낮으면 왜 문제가 되는가? pfSense A에 3개의 LAN 서브넷이 있을 때 Phase 2 항목을 몇 개 만들어야 하는가? 터널이 수립되지 않을 때 System Logs의 IPsec 탭에서 “no proposal chosen” 메시지가 나타나면 어떤 설정을 확인해야 하는가? 정답 요약 ① WAN 간 서로 Ping 가능 / ② 양쪽 LAN 서브넷이 다른 대역 / ③ 모든 암호화 설정(PSK·알고리즘) 양쪽 동일 Phase 1: 양쪽이 서로 인증하고 사용할 암호화 방식을 협상하는 단계. Phase 2: 실제 데이터를 암호화해서 주고받는 터널(SA)을 정의하는 단계. Local Network: 192.168.2.0/24 (A 자신의 LAN) / Remote Network: 192.168.3.0/24 (B의 LAN) 터널은 연결됐지만 방화벽이 트래픽을 기본 차단하기 때문. 해결: Firewall → Rules → IPsec 탭에 Pass 규칙 추가. Group 14 (2048-bit). 이보다 낮은 그룹(예: Group 2, 1024-bit)은 현대적인 공격 도구로 해독될 수 있어 보안 취약. 3개 (각 LAN 서브넷마다 별도의 Phase 2 항목 필요). 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 로그 탭터널 장애 시 원인 분석에 활용