kubernetes(DNS over HTTPS)에 pihole와wireguard를 배치하는 방법
7861 단어 wireguardkubernetespiholedoh
가설
이 강좌를 배우려면 다음이 필요합니다.
FQDN
인터넷을 가리키는 것이 필요합니다. (이 강좌에서 저는 구글 도메인을 사용합니다. 도메인이 없으면 사용할 수 있습니다duckdnskubectl
가 필요합니다.시스템 구조
다음 그림에서 우리가 실현하고자 하는 도표를 볼 수 있습니다.우리는 로컬 네트워크(192.168.10.1/24)의 pihole에 접근하고 인터넷 액세스 관리 인터페이스를 통해 마지막으로 Wireguard를 통해 VPN을 통해 그룹 자원에 접근하거나 dns로만 조회할 수 있다.
리소스
모든 목록이 이 GitHub repository에 있습니다. 마음대로 복제하고 맞춤형으로 만들 수 있습니다.
방법론
이름 공간
우리가 설정해야 할 첫 번째 일은 namespace
이다. 피홀, unbound,wireguard에 두 개의 명칭 공간을 만들어야 한다. pihole
cert-manager
pihole UI 인터페이스에서 HTTPS를 사용할 수 있도록 인증서 관리자를 배치합니다.
$ kubectl apply -f k8s/01-namespaces.yaml
동적 DNS
만약 정적 IP 주소를 분배하지 않았다면, 동적 dns가 제공하는 공공 IP를 사용할 수 있습니다. 제 예에서 구글 도메인을 사용했기 때문에curl로 하위 영역을 업데이트할 수 있습니다.나는 5분마다 ISP가 분배한 공공 IP를 업데이트하는 cronJob
를 만들었다.
$ kubectl apply -f k8s/02-dynamic-dns-google.yaml
디렉토리 만들기
구성 파일을 저장하려면 마스터 노드에 두 개의 디렉토리를 생성해야 합니다.
$ sudo mkdir -p /var/lib/{pihole,wireguard}
피공
Pihole은 dns에서 차단 프로그램을 추가하는 것입니다.Pihole을 설정하고 LAN 네트워크에 접근하기 위해서 53/tcp udp에서 로컬 호스트에 연결된 LoadBalancer
서비스를 설정해야 합니다.포털 컨트롤러를 통해 웹 UI에 접근할 수 있습니다. (방문하지 않으려면 NodePort
의 pihole-ui-svc
서비스만 사용하면 됩니다.)
이 목록에는 세 가지 구성이 있습니다.
$ kubectl apply -f k8s/01-namespaces.yaml
$ kubectl apply -f k8s/02-dynamic-dns-google.yaml
$ sudo mkdir -p /var/lib/{pihole,wireguard}
일반적인 구성:
hostPath
/var/lib/pihole
Deployment
LoadBalancer
서비스(Pihole DNS를 호스트에 바인딩)Pihole 및 업스트림 서버
이 설정은 dns 조회를 클라우드flare dns
1.1.1.1
와 구글 dns8.8.8.8
등 상위 서버로 전송하며 암호화할 필요가 없습니다.이 설정을 적용하려면 다음 명령을 사용하십시오
$ kubectl apply -f k8s/03-pihole-upstream-dns.yaml
바인딩되지 않은 Pihole
Unbound은 인증, 재귀속, 캐시 DNS 분석 프로그램입니다.dns 조회를 해석하기 위해서, 연결되지 않은 조회를 루트 (.com) 로 해석한 다음, 하위 필드 (example.com) 에 조회하고 필요한 필드 (pihole.example.com) 를 찾을 때까지 계속 실행합니다.유행하는 dns 서버(예를 들어 구글)에서 어떤 유형의 추적을 피하는 것은 매우 유용하다.이 강좌에서, 우리는 귀속 dns로 사용할 이 이미지 mvance/unbound 를 미리 설정할 것입니다.
이 설정을 적용하려면 다음 명령을 사용하십시오
$ kubectl apply -f k8s/03-pihole-unbound.yaml
바인딩되지 않은 설치 테스트HTTP를 통해 cloudflare DNS 서버에 DNS 연결
이 설정은https를 통해 DNS 조회를cloudflare DNS 서버로 전송합니다. 모든 조회는 TLS를 사용하여cloudflare와의 연결을 실행하기 때문에 암호화됩니다.ISP에서 어떤 DNS 요청을 보내고 있는지 알 수 없습니다.
이 설정을 적용하려면 다음 명령을 사용하십시오
$ kubectl apply -f k8s/03-pihole-DoH-cloudflare.yaml
테스트 구멍 설치
철조망
WireGuard는 커널 레벨에서 작동하는 현대 VPN 서버입니다.본 강좌에서 우리는 vpn을 이용하여 인터넷에서 LAN 자원을 방문하거나 인터넷에서 pihole에 설치된 dns 조회만 암호화한다.
이 목록에는 다음이 포함됩니다.
hostPath
/var/lib/wireguard
StatefulSet
LoadBalancer
서비스(Wireguard 스니퍼 포트 51820/udp)$ kubectl apply -f k8s/04-wireguard.yaml
Wireguard 클라이언트 구성
다음 그림과 같이wireguardpod의 로그를 볼 수 있습니다.
/var/lib/wireguard/config/peer<N>/peer<N>.conf
에 있는 각 피어의 구성 파일도 복제할 수 있습니다.추가(Pihole UI에 대한 포털 구성)
이 절차는 인터넷 HTTP/HTTPS
입구에서 Pihole 웹 사용자 인터페이스를 제공하는 방법을 설명한다.만약 당신이 이러고 싶지 않다면 Traefik
중의 NodePort
서비스를 사용하면 됩니다.
배포 인증서 관리자
HTTPS에 TLS 인증서를 제공하려면 인증서 관리자를 배치해야 합니다.
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml
클러스터 게시자 배포(암호화)
이 목록에는 Let's encrypt에 대한 클러스터 게시자가 배치됩니다.알림을 받기 위해 전자 우편을 설정해야 합니다.
$ kubectl apply -f k8s/05-cluster-issuer-letsencrypt.yaml
들어가다
이 목록은 피홀 호스트의 영역을 따라옵니다.이전에 설정한 하위 영역을 설정해야 합니다.
$ kubectl apply -f k8s/06-ingress.yaml
사용 방법
LANpihole-ui-svc
서버를 Pihole 설치로 변경할 수 있습니다.만약 VPN에 있다면, 기본적으로wireguard를 통해 dns 조회를 포함한 모든 데이터를 공유할 수 있습니다.wireguard 루트 dns를 통해서만 조회하려면 DNS
에서 다음 루트만 루트해야 합니다. AllowedIPS
10.0.0.0/8
(로컬 네트워크 CIDR로 교체)
이 강좌를 계속 공부하고 있다면kubernetes 그룹에서 다음 자원을 볼 수 있습니다
192.168.10.0/24
인터넷을 통한 Pihole 관리 사용자 인터페이스
Reference
이 문제에 관하여(kubernetes(DNS over HTTPS)에 pihole와wireguard를 배치하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/ivanmoreno/how-to-deploy-pihole-and-wireguard-on-kubernetes-using-a-recursive-dns-4l9
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
$ kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml
$ kubectl apply -f k8s/05-cluster-issuer-letsencrypt.yaml
$ kubectl apply -f k8s/06-ingress.yaml
LAN
pihole-ui-svc
서버를 Pihole 설치로 변경할 수 있습니다.만약 VPN에 있다면, 기본적으로wireguard를 통해 dns 조회를 포함한 모든 데이터를 공유할 수 있습니다.wireguard 루트 dns를 통해서만 조회하려면 DNS
에서 다음 루트만 루트해야 합니다. AllowedIPS
10.0.0.0/8
(로컬 네트워크 CIDR로 교체)이 강좌를 계속 공부하고 있다면kubernetes 그룹에서 다음 자원을 볼 수 있습니다
192.168.10.0/24
인터넷을 통한 Pihole 관리 사용자 인터페이스Reference
이 문제에 관하여(kubernetes(DNS over HTTPS)에 pihole와wireguard를 배치하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ivanmoreno/how-to-deploy-pihole-and-wireguard-on-kubernetes-using-a-recursive-dns-4l9텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)