Linux에서 AWS Client VPN이 실행되지 않나요? 런타임을 맞추세요
공유 라이브러리를 지목하는 실행 실패는 프로필이 아니라 런타임 짝의 문제입니다. 패키지를 가져오기 전에 지원되는 클라이언트와 OS를 확인하세요.
Ubuntu에 AWS Client VPN 패키지를 설치하고 실행했더니 어떤 프로필도 읽히기 전에 공유 라이브러리가 없다는 로더 오류가 났습니다. 오래된 릴리스에서 그 라이브러리를 가져와 밀어붙이는 것이 첫 반응입니다. 그러나 대개는 깨진 의존성 하나가, 자기 패키지 데이터베이스와 더 이상 맞지 않는 시스템으로 바뀔 뿐입니다. 실행 실패는 네트워크가 아니라 지원 경계의 문제입니다.
오류가 지목하는 것은 라이브러리이지 네트워크가 아니다
데스크톱 VPN 클라이언트는 프로필이나 엔드포인트를 보기 전에 자기 런타임을 먼저 적재해야 합니다. 동적 로더가 심볼을 해석하지 못하면 프로세스는 첫 초에 죽고 창은 결코 나타나지 않습니다. 프로필 편집이나 DNS 작업, 경로 변경을 아무리 쌓아도 그 단계에는 닿지 않습니다. 메시지를 문자 그대로 읽으세요. 로더가 어떤 객체를 원했는지 정확히 알려 주고 있습니다.
두 가지 고장 계열을 나누는 방법도 같습니다. 공유 객체의 부재는 호스트 쪽 패키징 문제이고, 인증 거부는 서비스 쪽 결정으로 순서상 훨씬 뒤에 도착합니다.
둘 다 창이 닫히며 끝나기 때문에 버그 보고에서 뒤섞입니다.
세계화 스위치는 다른 문제다
ICU나 세계화를 언급하는 오류는 일부 클라이언트 빌드 아래의 .NET 런타임에서 나오며 TLS 스택에서 나오지 않습니다. 고정 세계화 스위치를 설정하면 그 런타임이 문화권 데이터를 다루는 방식이 바뀌지만, 빠진 libssl을 공급하지는 않습니다. TLS 오류를 잠재우려고 이것을 적용하면 시작은 하되 다른 곳에서 실패하는 클라이언트가 남습니다.
둘을 다른 상자에 두세요. 하나는 런타임의 동작을 바꾸고, 다른 하나는 링커를 만족시킵니다. 후자를 가졌는데 전자에 손을 뻗는 것은 버릴 만한 습관입니다.
호스트가 정말로 필요한 런타임을 공급할 수 없다면, 지지되는 답은 개조한 호스트가 아니라 다른 호스트입니다.
오래된 OpenSSL을 들여오면 왜 역효과가 나는가
오래된 배포판에서 libssl과 libcrypto를 /usr/lib로 복사하면 웬만큼 자주 동작해서 유혹적입니다. 동시에 그 라이브러리를 패키지 관리자의 통제 밖에 두므로, 이후의 보안 업데이트는 그것을 비켜 가거나 충돌합니다. 브라우저나 SSH 클라이언트도 돌리는 호스트에서는, 바라지도 않은 프로그램의 암호 스택을 바꿔 놓은 셈입니다.
지지되는 길은 문서화된 패키지 원천과, 정확히 여러분의 OS 릴리스와 아키텍처에 맞는 의존성 해결입니다. AWS의 Linux 클라이언트 요구 사항과 설치하려는 버전의 릴리스 노트를 확인하세요. 지원 표는 릴리스마다 움직입니다.
오래된 포럼의 우회법은 한 쌍의 릴리스에 대한 스냅숏일 뿐, 호환성 보장이 아닙니다.
공급자의 서비스 정의를 지켜라
패키지에 들어 있는 유닛을 대체하라며 최소한의 systemd 유닛을 건네는 안내서도 있습니다. 그런 유닛은 공급자가 나중에 더한 인수, 강화 설정, 통합을 흘리기 쉽고, 그 결과 생기는 고장은 그 편집과 연결되지 않는 곳에서 나타납니다.
변경이 필요하면 대신 drop-in을 쓰세요. 유닛의 .d 디렉터리에 두는 작은 덮어쓰기 파일로, 지시문 하나를 더하거나 바꾸고, 왜 존재하는지와 어떻게 되돌리는지를 주석으로 적습니다. 공급자의 파일은 그대로 남고, 다음 패키지 업데이트가 여러분의 작업을 조용히 되돌리지도, 두 번 적용하지도 않습니다.
덮어쓰기 경로를 메모에 적어 두세요. 다음 관리자가 가장 먼저 그곳을 봅니다.
경로를 조사하기 전에 실행을 증명하라
승인된 프로필로 클라이언트가 확실히 시작되게 하고, 다음에 로그인하고, 다음에 터널을 확인하고, 그다음에야 경로와 DNS, 사설 자원을 봅니다. 각 단계는 저마다의 증거를 만들고, 이것을 섞으면 런타임 문제가 라우팅 문제처럼 보입니다. 공급자 지원이 필요하면 닫히는 창의 화면 캡처 대신 첫 번째로 쓸모 있는 시작 이벤트를 기록하세요.
개인 키나 자격 증명이 박힌 온전한 프로필을 진단 자료로 첨부해서는 안 됩니다.
한 가지 질문이 이런 티켓의 대부분을 해결합니다. 설치한 클라이언트 버전이 이 OS 릴리스에서 아직 지원되는가? 아니라면 필요한 것은 지원되는 짝이며, 또 다른 라이브러리 사냥이 아닙니다.