네트워크에 물리적으로 접근하기 전에 WiFi 자격 증명을 미리 저장할 수 있습니까?

네트워크에 물리적으로 접근하기 전에 WiFi 자격 증명을 미리 저장할 수 있습니까?

배경

이번 주말에 친구를 위해 집에 묵을 예정인데 친구가 나에게 WiFi SSID와 비밀번호를 문자로 보냈습니다. 그런데 그녀는 먼저 나에게 WiFi 세부 정보를 문자로 보냈고 그 결과 다음과 같은 생각이 들었습니다.

그곳에 도착하면 그녀의 네트워크에 연결하지 말고 내 노트북(Ubuntu 19.10 사용)과 휴대폰(Android 10 사용)에 WiFi 자격 증명을 저장해야 합니다. 이렇게 하면 내 노트북과 휴대폰이 자동으로 그녀의 WiFi 네트워크에 연결될 수 있습니다!

그래서 몇 가지 조사를 한 결과 가능할 수도 있다는 것을 알아냈습니다(적어도 내 노트북의 경우, Android에서는 루트 액세스가 필요하다고 생각합니다). 하지만 여전히 몇 가지 문제가 있습니다.

내 연구에 따르면 Ubuntu 19.10의 경우 네트워크 자격 증명은 다음 디렉터리에 저장된 것으로 보입니다.

/etc/NetworkManager/system-connections

, 각 파일은 자격 증명을 나타냅니다. 예를 들어 해당 폴더에 있는 특정 연결의 etaoin-shrdlu내용은 다음과 같습니다.

$ sudo cat /etc/NetworkManager/system-connections/etaoin-shrdlu.nmconnection

[connection]
id=etaoin-shrdlu
uuid=515ab528-986b-4bb8-97fe-f744beaa0f2f
type=wifi
interface-name=wlp3s0
permissions=

[wifi]
mac-address-blacklist=
mode=infrastructure
ssid=etaoin-shrdlu

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=nice try hackers

[ipv4]
dns-search=
method=auto

[ipv6]
addr-gen-mode=stable-privacy
dns-search=
method=auto

[proxy]

이 파일~인 것 같다비교적 간단합니다. 즉, 변경해야 할 유일한 것은 다음과 같습니다.

  • 파일 이름.
  • id.
  • uuid값(온라인 읽기에서 무작위로 생성될 수 있음)
  • ssid.
  • psk.

아마도 사용될 키 관리 체계는 wpa-psk.

추가적으로, 이 의식과 관련된 것으로 보이는 또 다른 파일을 발견했습니다:

/run/NetworkManager/devices/3

, 구성은 다음과 같습니다.

$ sudo cat /run/NetworkManager/devices/3

[device]
managed=true
connection-uuid=515ab528-986b-4bb8-97fe-f744beaa0f2f
route-metric-default-effective=600

이는 자격 증명 파일에 지정된 것과 동일합니다 connection-uuid.uuid

시험을 받다

그래서 제가 시도한 것은 다음과 같습니다.

  1. 네트워킹은 잊어버리세요 etaoin-shrdlu.
  2. 비행기 모드를 켜세요.
  3. 다음 파일을 생성합니다 /etc/NetworkManager/system-connections/etaoin-shrdlu.nmconnection(네트워크를 잊어버린 후 이전에 삭제됨).
  4. 이전과 동일한 내용 을 파일에 etaoin-shrdlu.nmconnection넣고 .uuid630b5230-48cb-4929-9777-fa0f30399810
  5. 이전 버전을 수정하여 /run/NetworkManager/devices/3.uuid630b5230-48cb-4929-9777-fa0f30399810
  6. 비행기 모드를 끄세요.
  7. 기다려보시고 효과가 있기를 바랍니다...

그 결과는?이것은 작동하지 않습니다.

질문

  1. 내가 뭘 잘못했나요?
  2. 열쇠는 어떤 용도 uuid로 사용되나요? 왜 무작위로 생성될 수 있나요?
  3. 키 값 psk에 허용되는 문자에 제한이 있나요 ?

답변1

nmcli connection reload디스크에서 연결 프로필을 편집한 후 또는 ( 또는 D-Bus API를 통해) nmcli connection load [FILES...]을 사용하여 다시 로드 해야 합니다 . 이를 수행하는 것은 D-Bus API를 통해 수행하는 것과 동일합니다(예: nmcli connection modify ....

편집 NetworkManager.conf(또는 조각 중 하나 conf.d)하는 경우 SIGHUP 또는 다시 로드할 수 있습니다 systemctl reload NetworkManager.service. 일부 설정은 다시 로드할 수 없으며 서비스를 다시 시작해야 합니다. 그러나 일반적으로 재부팅은 필요하지 않으며 선호되지도 않습니다.

문제의 파일을 편집하지 마십시오 /var/lib. 원하는 내용이 아닐 수도 있습니다.

어쨌든 프로필을 수정/생성하고 비행기 모드를 전환할 수 있습니다. 이후에는 자동 연결이 발생할 수 있습니다. 작성한 구성 파일이 connection.autoconnect활성화되었으므로 기본적으로 괜찮습니다. 그러나 이전에 성공적으로 연결한 적이 없는 Wi-Fi 프로필은 자동 연결에 적합하지 않습니다. 이는 프로필을 최소한 한 번은 수동으로 활성화해야 함을 의미합니다 nmcli connection up ....

또한 NetworkManager를 속여 프로필이 과거에 활성화된 것으로 생각하도록 할 수도 있습니다. 이렇게 하려면 connection.timestamp양수 값(초 단위의 Unix 타임스탬프)으로 설정하세요. 타임스탬프는 일반적으로 구성 파일 외부에서 유지됩니다(활성화할 때마다 업데이트됨). 이 파일은 에 있지만 /var/lib/NetworkManager/timestampsNM이 실행되는 동안 파일을 편집하면 제대로 작동하지 않을 수 있습니다.

관련 정보