복호화 이후: VPN 트래픽을 가장 먼저 보는 정책은 무엇인가
케이블은 어느 규칙이 흐름을 처리했는지 말하지 않는다. 정책 훅과 다음 홉을 지목하고, 응답이 같은 경로를 지난다는 것을 증명하라.
VPN 흐름은 완벽하게 암호화되고 완벽하게 인증되어도 아무도 계획하지 않은 곳에 도착할 수 있다. 꽂는 케이블이 내부 패킷을 어느 규칙이 처리하는지 정하지 않는다. 정책 훅과 경로가 정한다. 그래서 랙 다이어그램에서 같아 보이는 두 설계도 전혀 다른 적용을 가질 수 있다. 둘 중 무엇을 고를지는 복호화된 흐름을 처음 보는 제어의 이름을 붙이는 데서 시작한다.
포트가 아니라 정책 훅으로 결정하라
모든 VPN 플랫폼은 전달하기 전 어느 시점에서 복호화된 트래픽을 평가하며, 그 지점은 설정에서 이름을 가진다. 한 플랫폼에서는 그룹 정책 필터, 다른 플랫폼에서는 인터페이스 정책이나 존 페어, 라우팅 장비에서는 단순히 forward 체인일 수 있다. 규칙을 적용하는 것은 훅이고, 스위치 포트는 케이블이 끝나는 자리일 뿐이다. 훅을 찾는 것이 첫 결정이며, 나머지는 모두 그에 대한 배치다.
하드웨어를 보기 전에 흐름을 적는다. 출발지가 누구인지, 어디로 가는지, 어떤 프로토콜이 나르는지, 어떤 서비스가 허용되는지. 그다음 그 네 사실을 각각 적용하는 제어를 찾는다.
두 경로, 두 가지 적용 이야기
두 가지 형태가 흔하고, 각각 다른 요구에 옳을 수 있다.
endpoint -> shared inside subnet -> server
endpoint -> dedicated transit -> policy firewall -> server subnet첫 형태는 게이트웨이에서 필요한 모든 것을 적용할 수 있다. 게이트웨이 정책이 그 목적지에 맞게 작성되었고 서버에 우회 경로가 없을 때만 그렇다. 둘째 형태는 경계를 더하지만, 경로와 정책이 실제로 트래픽을 그곳으로 통과시킬 때만 그렇다. 종단점과 같은 세그먼트에 있는 서버는 상상한 중간 홉을 따르지 않을 수 있다. 다이어그램은 의도를, 라우팅 테이블은 실제로 일어나는 일을 보여준다.
그림이 아니라 경로 조회로 검증하라. 패킷이 나가는 인터페이스와 선택하는 다음 홉이 둘째 형태가 설계대로 동작하는지를 결정한다.
ip route get 10.30.7.20
sudo iptables -S FORWARD
sudo tcpdump -ni inside0 host 10.30.7.20토폴로지와 격리를 분리하라
서브넷을 공유한다고 해서 장소가 신뢰할 수 없게 되지 않고, 전용 전송이 있다고 해서 보호되지도 않는다. 결정하는 것은 실제로 적용되는 제한, 실제로 일어나는 전달, 그리고 각 부분을 누가 관리하는가다. 스위치 수를 세는 것은 세 가지 중 어느 것도 말해 주지 않는다. 정책과 경로로 결정하고, 토폴로지는 그 결정을 따르게 하라.
트래픽 집단도 따로 다루라. 원격 접속 풀, 사이트 간 프리픽스, 전용선 네트워크는 한 장비를 공유하면서도 다른 규칙이 필요할 수 있다. 신원과 위험이 다르기 때문이다. 한 집단을 위해 쓴 규칙은 주소 계획을 공유하면 다른 집단을 조용히 덮는다.
배치마다 장애와 관리를 확인하라
모든 배치에는 장애 방식이 있고, 유용한 질문은 구성 요소가 멈출 때 무엇이 계속 동작하는가다. 죽은 장비 하나에 여러 논리 인터페이스를 두어도 독립적인 복구는 얻지 못하며, 같은 전원이나 같은 관리자를 공유하는 하위 방화벽은 두 번째 경계가 아니다. 관리 경로가 어디로 지나는지 물어라. 터널로만 닿는 콘솔은 복구 경로가 전혀 아니다. ssh [email protected] true 를 터널 밖에서 실행하는 것이 콘솔이 그것에 의존하지 않음을 보이는 가장 싼 방법이다. 한 플랫폼의 그룹 정책 문서는 필터를 복호화 이후·암호화 이전 트래픽에 두며, 어느 제품에서나 찾아야 할 이름 있는 훅의 전형이다.
후보마다 장애 이야기를 적용 이야기 옆에 쓴다. 검사에서 이기고 복구에서 지는 배치는 거래이며, 사고 중에 발견하는 대신 거래로 기록해야 한다.
허용된 흐름과 거부된 흐름으로 승인하라
승인된 시험 계획으로 실제 VPN 출발지에서 세 가지를 확인한다. 동작해야 하는 애플리케이션, 동작하지 않아야 하는 자원, 그리고 응답이 돌아오는 방향이다. 거부는 정책이 걸려 있다는 증거이고, 허용된 흐름은 경로가 존재함만 보여준다.
선택한 경로와 정책 결과를 함께 보존하라. 경로 없는 결과는 재현할 수 없고 결과 없는 경로는 변호할 수 없다. 이 짝은 어느 스위칭 계층이 본질적으로 더 안전한가라는 주장보다 연결 지점을 고르는 데 훨씬 유용하다.