연결은 되지만 아무것도 도달하지 못하는 VPN은 보통 방화벽 문제로 설명되며, 사람들이 택하는 해결책은 터널 인터페이스를 신뢰할 수 있는 영역에 넣는 것입니다. 이것은 트래픽이 흐르기 시작한다는 의미에서는 작동하지만, 의도한 서비스보다 훨씬 많은 것을 허용합니다. 관련된 두 정책은 다릅니다. 하나는 외부 전송을 대기 중인 소켓으로 허용하고, 다른 하나는 복호화된 트래픽이 특정 리소스에 도달하도록 승인합니다. 둘을 하나의 설정으로 다루는 것이 좁은 허용을 넓은 허용으로 바꿉니다. 둘은 서로 다른 지점에서 결정되기 때문에 이 실수를 하기 쉽습니다.

두 정책, 하나의 터널

외부 정책은 간단한 질문에 답합니다. 이 출발지의 패킷이 이 호스트의 UDP 1194에 도달해도 되는가? 내부 정책은 다른 질문에 답합니다. 그 터널 뒤의 인증된 클라이언트가 이 프로토콜로, 이 포트에서, 이 목적지에 도달해도 되는가? 첫째는 소켓에 관한 것이고 둘째는 경로에 관한 것이며, firewalld는 결정되는 지점이 다르기 때문에 서로 다른 객체로 모델링합니다. 하나는 이 호스트의 소켓 속성이고, 다른 하나는 그를 지나는 경로의 속성입니다.

실무적 결과는 동작하는 터널이 두 번째 정책에 대해 아무것도 알려주지 않으며, 올바른 두 번째 정책이 첫 번째를 불필요하게 만들지 않는다는 것입니다.

실제 외부 리스너를 통과시키십시오

가정하는 대신 이미 할당된 것을 확인하는 것으로 시작하십시오. 활성 영역을 읽고, 실제로 인그레스를 운반하는 영역을 나열하고, 설치된 서비스 정의를 확인하십시오. 서비스 이름은 포트 집합을 설명할 뿐 이 서버의 리스너가 그것과 일치하는지는 말해 주지 않습니다.

firewall-cmd --get-active-zones
firewall-cmd --zone=public --list-all
firewall-cmd --info-service=openvpn

리스너가 정말 그 영역의 UDP 1194라면, 바로 그 포트와 전송을 구체적으로 열고, 시험한 뒤 같은 구체적 규칙을 영구화하십시오. 출발지 기반 할당도 확인하십시오. 출발지 범위에 묶인 영역은 인터페이스 영역이 보기도 전에 트래픽을 잡을 수 있습니다.

복호화된 목적지를 따로 승인하십시오

VPN 서버 자체에서 실행되는 서비스로의 연결은 로컬 입력 정책입니다. LAN의 다른 호스트로 포워딩되는 연결에는 포워딩 정책이 필요하며, 커널에서 활성화된 포워딩과 응답 경로 — 이 세 가지가 별개의 요구 사항인데 사람들은 흔히 하나로 뭉칩니다. 최신 firewalld 정책 객체는 인그레스 영역과 이그레스 영역 사이의 방향성 트래픽을 설명하며, 어떤 VPN 출발지가 어떤 사설 서비스에 도달할 수 있는지 표현하기에 알맞은 곳입니다.

허용된 출발지를 명시적으로 정의하고 나머지는 모두 거부로 떨어지게 하십시오. 외부 서비스에 대한 허용은 그 정책이 아닙니다. 영역 배치가 어떻게 보이든 마찬가지입니다.

인터페이스를 신뢰하는 것이 잘못된 지름길인 이유

대상이 모든 것을 받아들이는 영역에 터널 인터페이스를 넣으면 호스트가 노출하는 모든 서비스로 모든 복호화 트래픽이 통과하며, 검토하지 않은 서비스도 포함됩니다. 실행 중인 머신에서 신뢰 영역을 제한적으로 다시 겨냥하는 것은 더 나쁩니다. 다른 인터페이스와 출발지 범위가 이미 그 의미에 의존하고 있을 수 있고, 편집하면 동작이 바뀝니다. 좁은 정책이 필요하면 새로 만드십시오. 공유 영역을 용도 변경하지 마십시오.

터널의 영역 할당도 그 구성을 소유한 구성 요소를 통해 안정적으로 유지하십시오. 재시작 시 할당을 잃으면 방화벽 규칙 문제처럼 보이지만 실제로는 지속성 문제인 장애가 생깁니다.

세 가지를 검증하되, 그중 하나는 거부입니다

외부 연결을 바깥에서 시험하고, 연결된 클라이언트에서 승인된 내부 서비스 하나를 시험하고, 도달할 수 없어야 하는 서비스 하나를 시험하십시오. 세 번째 시험이야말로 정책과 부작용을 구별하는 시험이며, 모든 것이 작동하는 것처럼 보이기 때문에 사람들이 건너뛰는 시험입니다. 거부된 서비스가 응답한다면 서비스가 아니라 영역을 허용한 것입니다.

영역, 포트, 전송, 정책 객체를 서버 노트에 기록하십시오. 그렇지 않으면 이 호스트의 다음 변경도 같은 추측에서 시작됩니다.

관련 글