VPN, 브리지, 라우터 또는 방화벽?

VPN, 브리지, 라우터 또는 방화벽?

다음 작업을 위해 어떤 구현 경로를 취해야 하는지 알아내도록 도와주세요.

웹서버 역할을 하는 블랙박스 장치가 있습니다(브라우저의 주소 필드에 IP 주소를 입력하여 로컬로 연결할 수 있습니다.). 이 상자는 간단한 사용자 이름과 비밀번호를 제외하고는 어떠한 보안 조치도 구현하지 않습니다. 이 서버가 격리된 네트워크에 있는 경우에는 확실히 문제가 없지만 인터넷, 즉 세계 어디에서나 액세스할 수 있기를 바랍니다. 이를 통해 데이터 암호화에 TLS 보안을 사용하고 싶습니다.

Rasbperry PI(및 openVPN 소프트웨어)를 사용할 수 있으므로 이 애플리케이션에 적합할 것이라고 생각했습니다. Raspberry PI를 사용하여 VPN, 브리지, 라우터 및 방화벽을 구현하는 방법에 대한 다양한 튜토리얼이 있지만 네 가지 기능 중 어느 것이 내 애플리케이션에 적합한지 알 수 없습니다. 개념도는 아래와 같습니다.

여기에 이미지 설명을 입력하세요

Raspberry Pi에는 인터넷 액세스를 위한 두 개의 네트워크 인터페이스가 있습니다. 하나는 지상 이더넷(eth0)을 통하고, 다른 하나는 셀룰러 인터넷(eth1)을 사용하며 지상 인터넷 연결을 선호하는 인터페이스입니다. 두 인터페이스의 IP 주소가 모두 알려집니다. 세 번째 이더넷 인터페이스(eth2)는 스위치를 통해 로컬 네트워크에 연결됩니다. 서버도 스위치에 연결됩니다. 저는 서버를 제어할 수 없습니다(블랙박스입니다). 저는 서버의 IP 주소만 알고 있습니다.

아이디어는 Raspberry PI가 나와 서버 사이의 중개자 역할을 하도록 하여 웹 브라우저를 사용하여 해당 웹 애플리케이션에 안전하게 연결할 수 있도록 하는 것입니다.하지만 Raspberry Pi가 VPN, 라우터, 브리지 또는 방화벽 중 어떤 기능을 구현해야 할까요?

편집하다:

위에서 언급한 작업은 나에게 너무 가파르고(능력 부족) 처음부터 설정을 단순화하기로 결정했습니다. 누군가가 질문과 해당 답변이 유용하다고 생각할 경우를 대비하여 질문의 윗부분을 제거하고 싶지 않았습니다. 대신, 새로운 (간단화된) 설정은 다음과 같습니다:

여기에 이미지 설명을 입력하세요

RP는 다음을 통해 셀룰러 인터넷에 연결됩니다.ppp0인터페이스하고 모든 트래픽을 다음으로 라우팅합니다.eth0인터페이스는곧장서버에 연결됨:

  1. dynamic ppp0 IP address (given by cell service provider)
  2. static eth0 IP address (assigned by me)
  3. non-secure internet connection
  4. RP is connected to the server directly (no switch needed)

나는 다음과 같은 몇 가지 해결책을 찾았습니다.이것그리고이것, 그러나 왜 일이 그런 식으로 이루어지는지 명확하게 설명하지 않습니다. 또한 어떻게 해야 할지 모르는 명령줄 지시문도 제공합니다.실행 취소. 대신, 필요한 경우 편집하고 되돌릴 수 있는 실제 시스템/구성 파일을 누군가 참조해줬으면 좋겠습니다.

현재는 RPi를 웹서버에 연결하면 웹브라우저에서 찾아볼 수 있습니다. 목표는 RPi를 통해 인터넷에서 웹 서버에 액세스할 수 있도록 하는 것입니다. ppp0 인터페이스가 셀룰러 연결에 따라 위아래로 이동하고 해당 IP 주소가 매번 다르고 알 수 없다는 점을 고려하여 라우팅을 올바르게 설정하는 방법에 대한 교육 튜토리얼을 제공할 수 있습니까?

답변1

TLDR;

웹 서버를 보호하려면 방화벽이 필요하며 아마도 라우터가 이미 이 기능을 제공하고 있을 것입니다.

세부

실제로 필요한 것은 웹 서버를 보호하기 위한 방화벽과 SSL뿐입니다. 홈 라우터가 이미 이를 제공하는 경우 Raspberry Pi는 더 이상 보안을 제공하지 않습니다.

웹 서버와의 통신을 보호하려면 SSL을 사용해야 합니다. SSL 기능을 제공하기 위해 Raspberry Pi를 역방향 프록시로 사용할 수도 있지만 SSL 암호화는 계산량이 많고 프록시가 웹 서버에서 SSL 부하를 덜어주기 때문에 역방향 프록시가 존재합니다. 하지만 Pi는 아마도 웹 서버보다 컴퓨팅 성능이 훨씬 낮을 것입니다. 하지만 Pi 프로젝트를 찾고 있다면 재미있을 수 있습니다.

일반적인 오해는 VPN이 없는 것보다 "더 안전하다"는 것입니다. VPN은 단순히 암호화 + 터널링입니다. 터널링을 통해 두 네트워크 모두가 동일한 네트워크에 있다고 믿게 됩니다. 두 네트워크를 "결합"하려는 것이 아니라면 VPN이 필요하지 않습니다. SSL + 방화벽은 괜찮을 것입니다.

여기에 이미지 설명을 입력하세요

답변2

가장 간단한 해결책은 Pi를 라우터/방화벽 장치로 구성하는 것입니다. 즉, 웹 서버에 대한 요청을 방화벽으로 설정하여 VPN 인터페이스를 통해 종료되는 경우에만 PI를 통과하지만 PI를 통과하지 않도록 할 수 있습니다. LAN의 다른 장치로부터 Pi를 격리하십시오. 이는 다이어그램에 따라 Pi를 통해 강제로 모든 인터넷 연결이 작동한다는 것을 의미합니다. LAN의 다른 장치가 손상된 경우 이를 통해 웹 서버에 액세스할 수 있습니다.

(간단한 솔루션과 적당히 안전한 솔루션을 찾고 있다면 아래의 모든 내용을 무시해도 됩니다.)

대신 사용할 수 있는 더 복잡하고 비용이 많이 드는 시나리오가 있습니다. 일반 스위치를 사용하는 대신 관리되는 스위치를 사용하고 Pi에만 표시되는 자체 VLAN에서 웹 서버를 구성할 수 있습니다(즉, Pi는 여러 VLAN에서 통신합니다). 또한 웹 서버를 자체 IP 주소에 배치하면 LAN의 다른 장치가 Pi를 통해서만 웹 서버와 통신할 수 있습니다.

PI의 VLAN 인터페이스에서 시작된 패킷만 포트 80에서 통신할 수 있도록 웹 서버가 있는 VLAN을 방화벽으로 설정하여 위의 스위치 아이디어를 더욱 확장할 수 있습니다. 그런 다음 역방향 프록시를 추가할 수 있습니다(예: Apache 사용). )를 포트 443에서 응답한 다음 포트 80의 웹 서버에서 요청을 가져올 수 있는 Pi에 연결합니다. 클라이언트 측 및 일반 인증서를 사용하면 라우터에 액세스할 수 있는 사람과 클라이언트 인증서가 있는 사람만 액세스할 수 있도록 보장할 수 있습니다. 연결할 수 있습니다.

관련 정보