OpenVPN 서버를 통해 사용자 정의 호스트 이름을 생성할 수 있도록 dnsmasq를 설정하려고 합니다. 따라서 컴퓨터가 연결될 때 호스트 이름은 OpenVPN 호스트 또는 네트워크에 있는 리소스를 가리킵니다.
예를 들어 서버의 /etc/hosts 파일은 다음과 같습니다.
db.private.resource 10.8.0.1
app.private.resource 10.8.0.1
클라이언트가 DNS 조회를 위해 터널을 사용하도록 하는 것은 매우 간단합니다. server.conf 파일에는 다음이 있습니다.
push "dhcp-option DNS 10.8.0.1"
그리고 클라이언트 구성에는 다음이 있습니다.
dhcp-option DNS 10.8.0.1
그리고 다음을 실행하여 연결 시 클라이언트가 OpenVPN을 DNS로 사용하고 있는지 확인할 수 있습니다.
# dnsmasq --no-daemon -q
명령줄에서 클라이언트로부터 ping을 실행하여 클라이언트가 실제로 터널을 통해 OpenVPN 서버에 DNS 조회 요청을 보내고 있는지, 그리고 OpenVPN 서버가 실제로 요청을 처리하고 있는지 확인합니다.
문제는 db.private.resource
내가 정의한 호스트에 대해 ping을 시도할 때 다음과 같은 결과가 나온다는 것입니다.
dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN
dnsmasq의 출력에서. 그래서 어떤 이유로든 /etc/hosts에 정의한 값을 반환하지 않는 것 같습니다. 그리고 제가 놀란 점은 주소 매개변수를 추가하여 dnsmasq를 실행해도 여전히 위와 같은 결과가 나온다는 것입니다.
# dnsmasq --no-daemon -q --address=/db.private.resource/10.8.0.1/
dnsmasq: query[A] db.private.resource from 10.8.0.2
dnsmasq: config db.private.resource is NXDOMAIN
이 결과에서 뭔가 이상해 보이는 것이 있나요?
답변1
먼저 dnsmasq를 설치하세요:
sudo apt-get update; sudo apt-get install dnsmasq
.
섬기는 사람
서버에서 다음 줄을 다음 줄에 추가하세요 /etc/dnsmasq.conf
.
...
expand-hosts #Uses /etc/hosts on this machine for resolution
bind-interfaces #will bind on all available interfaces, including the openvpn one
listen-address=10.8.0.1 # i noticed recently that i also need to add this line, because by default it will only listen on 10.9.0.1 which isnt pushed to my clients
...
그런 다음 /etc/hosts
호스트 이름으로 파일을 편집하십시오. 마지막으로 sudo /etc/init.d/dnsmasq restart
.
/etc/hosts
어떤 이유로 든 편집하고 싶지 않은 경우 에 새 파일을 만들고 /etc/dnsmasq.conf.d/addresses.conf
주소를 입력할 수 있습니다.
address=/umomma.com/69.69.69.69
address=/oo.umomma.com/69.69.69.60
address=/ooooo.umomma.com/69.69.69.62
address=/ooooooooo.umomma.com/69.69.69.65
이 두 번째 방법을 사용하면 이후에도 실행하고 싶을 것입니다 sudo /etc/init.d/dnsmasq restart
.
고객
OpenVPN 서버는 일반적으로 IP 주소 10.8.0.1
또는 10.9.0.1
. 따라서 클라이언트에서는 해당 네임서버를 먼저 쿼리해야 합니다.
적어도 지금은 /etc/resolv.conf
클라이언트에서 편집하여 nameserver 10.8.0.1
파일의 첫 번째 줄 앞에 추가했습니다. 따라서 클라이언트에서 내 전체 해결.conf는 다음과 같습니다.
nameserver 10.8.0.1
nameserver 8.8.8.8
nameserver 8.8.8.8
nameserver 127.0.1.1
재부팅 시 이러한 변경 사항을 마지막으로 적용하려면 에서도 동일하게 변경하십시오 /etc/resolvconf/resolv.conf.d/head
.
또한
sudo /etc/init.d/dnsmasq restart
서버에 호스트를 추가할 때 실행하는 것을 잊지 마세요.