Forticlient 앱을 사용하여 회사 VPN에 연결할 때 이상한 문제가 발생했습니다. 우선, 무엇이 문제인지 모르겠습니다. 시간을 좀 보낸 후에 DNS가 제대로 작동하지 않는다는 것을 발견했습니다. 안타깝게도 누구의 잘못인지는 모르겠습니다. FortiClient, systemd-resolved 또는 기타 것일 수 있습니다. 아직 공식화되지 않은 Ubuntu 22.04를 사용하고 있는데, 1~2주 뒤에 정식 출시되기 전에는 좀 더 나아질 것으로 예상됩니다.
resolvectl
VPN을 설정하기 전의 출력은 다음과 같습니다 .
username@hostname:~$ resolvectl
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp2s0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (wlp1s0)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1 2a00:ee0:d::13 2a00:ee0:e::13
DNS Domain: --
VPN이 설정된 후 resolvectl은 다음과 같은 사이트링크를 보고합니다 vpn
.
username@hostname:~$ resolvectl
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp2s0)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Link 3 (wlp1s0)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS
DNSSEC=no/unsupported
Current DNS Server: 172.20.1.21
DNS Servers: 172.20.1.16 172.20.1.21 2a00:ee0:d::13 2a00:ee0:e::13
DNS Domain: company.com
Link 5 (vpn)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
보시다시피 추가 DNS 서버가 링크 3에 추가되어 VPN에 연결될 때 내부 이름을 확인하는 데 도움이 됩니다. 이상한 점은 글을 쓸 때
username@hostname:~$ resolvectl query name.company.com
name.company.com: resolve call failed: 'name.company.com' not found
나는 아무것도 얻지 못했습니다. 이렇게 nslookup을 사용하려고 하면
username@hostname:~$ nslookup
> server 172.20.1.16
Default server: 172.20.1.16
Address: 171.20.1.16#53
> name.company.com
Server: 172.20.1.16
Address: 172.20.1.16#53
Name: name.company.com
Address: 172.20.38.251
나는 정답을 얻었다. nslookup
이게 이상해서 네트워크 트래픽을 추적해서 resolvectl query
.
nslookup
DNS에 이름을 요청할 때 VPN에서 할당한 주소가 소스 IP로 사용되는 것으로 나타났습니다 . 반면, resolvectl query
VPN에서 할당한 주소를 제외한 다른 모든 주소를 소스 IP로 사용하세요. 따라서 DNS 서버에 응답을 내 컴퓨터로 다시 보낼 수 있는 올바른 경로가 없거나 DNS 쿼리가 새로 추가된 DNS 서버에 도달하지 못할 수도 있다고 추측합니다.
따라서 필요한 프로그램 중 어느 것도 이름을 올바르게 확인할 수 없습니다. 결과적으로 도메인 이름을 사용하여 VPN 내 어디든 연결할 수 없습니다.
resolvctl이 새로 할당된 VPN 주소가 있고 이를 소스 IP로 사용해야 함을 인식하게 하는 방법을 아는 사람이 있습니까? 연결을 설정할 때 FortiClient가 몇 가지 추가 구성을 수행해야 합니까? 아마도 그렇지 않을 것입니다.
VPN을 설정한 후 systemd-resolved를 다시 시작해 보았지만 도움이 되지 않았습니다. 다른 서비스를 다시 시작해야 합니까? 어느 것?
업데이트: 네트워크 설정에서 DNS가 어떻게 설정되어 있는지 확인했는데 올바르게 설정되어 있습니다. VPN이 없으면 네트워크 인터페이스 wlp1s0이 다음을 표시합니다.
username@hostname:~$ nmcli device show wlp1s0 | grep DNS
IP4.DNS[1]: 192.168.1.1
IP6.DNS[1]: 2a00:ee0:d::13
IP6.DNS[2]: 2a00:ee0:e::13
VPN 연결 후:
username@hostname:~$ nmcli device show wlp1s0 | grep DNS
IP4.DNS[1]: 172.20.1.16
IP4.DNS[2]: 172.20.1.21
username@hostname:~$ nmcli device show vpn | grep DNS
IP4.DNS[1]: 172.20.1.16
IP4.DNS[2]: 172.20.1.21
답변1
저는 다양한 Forticlient 버전을 사용해 보았습니다.
- v6.4.8
- v7.0.0 ~ v7.0.5
불운.
당신은 그것을 사용할 수 있습니다 :
- FortiGui를 엽니다. https://github.com/theinvisible/openfortigui qt5 종속성을 설치하여 처음부터 빌드해야 합니다. 여기에서는 다음을 수행해야 합니다.
$ git clone https://github.com/theinvisible/openfortigui.git
$ git checkout v0.9.6
$ cd openfortigui
$ git submodule update --init
$ qmake
$ make
Make install 대상은 아무 것도 수행하지 않으므로 다음을 사용하여 실행 파일을 수동으로 복사해야 합니다.
$ sudo cp openfortigui/openfortigui /usr/bin/
sudo로 시작하세요. 그런 다음 제공된 아이콘을 기반으로 배포용 실행 프로그램을 추가할 수 있습니다.
- FortiClient SSLVPN 4.0.2332: https://apt.iteas.at/
두 가지 모두 작동합니다. 첫 번째는 수동으로 구축하고 설치해야 했지만 두 번째는 실행할 준비가 되어 있었습니다. 연결이 되지 않은 상태에서 터널이 닫힌 적이 있음에도 불구하고 말입니다.
Fortigate v7.2.0을 사용하여 테스트했습니다.