vpncli -s 대 GUI: Cisco Secure Client 로그인
vpncli -s는 준비된 응답 파일을 읽고, GUI는 사람을 읽습니다. 스크립트가 유용한 경우, 파일에 필요한 것, 이를 증명하는 방법을 비교합니다.
Cisco Secure Client는 같은 로그인 프롬프트에 응답하는 두 가지 방법, 즉 vpnui.exe 에 사람이 입력하는 방식과 -s 를 사용해 표준 입력으로 vpncli.exe 에 응답을 공급하는 스크립트 방식을 제공합니다. 두 번째 방법은 GUI 화면을 긁지 않고도 예약 연결을 가능하게 하고, 로그인을 자격 증명처럼 보호해야 하는 파일로 바꿉니다. 어느 쪽을 원하는지는 기계 앞에 사람이 있는지와 비밀번호가 얼마나 자주 바뀌는지에 달려 있습니다. 어느 옵션도 게이트웨이가 요구하는 내용을 바꾸지 않고, 누가 응답하는지만 바꿉니다.
두 경로 모두 같은 터널에서 끝나므로 비교 대상은 프로토콜이 아니라 운영입니다.
같은 프롬프트에 응답하는 두 가지 방법
GUI 경로는 설계상 대화형으로, 클라이언트가 묻고 누군가 답하며 그 사람이 그대로 두는 동안 세션은 유지됩니다. 사람이 쓰는 노트북에서는 프롬프트가 게이트웨이의 인증 방식에 맞춰지고 누구도 디스크에 평문 비밀번호를 둘 필요가 없으므로 이것이 올바른 선택입니다.
스크립트 경로는 입력할 사람이 없는 키오스크, 실험실 기계, 예약 작업에 적합합니다. 거래는 명확한데, 무인 연결을 얻는 대신 디스크에 자격 증명 파일을 두는 것을 받아들입니다. 게이트웨이가 인증서나 SAML 인증을 제공한다면 더 강한 방법이 피할 프롬프트에 답하기 위해서만 파일이 존재하므로 그 거래는 보통 가치가 없습니다.
같은 기계에서 둘을 동시에 섞지 마십시오. 명령줄과 그래픽 클라이언트는 같은 세션 상태를 두고 경쟁하며, 그것이 다음 절의 문제입니다.
응답 파일에 무엇이 들어가야 하는가
클라이언트는 게이트웨이, 때로는 그룹 선택, 사용자 이름, 비밀번호, 그리고 모든 배너 확인을 순서대로 묻습니다. 모두에 응답하는 파일은 실제 값을 넣으면 이렇게 보입니다:
connect vpn.example.com
MyGroup
alice
correct-horse-battery
y그 파일을 만드는 신뢰할 수 있는 방법은 한 번 직접 연결하고, 입력하는 모든 줄과 누르는 모든 Enter를 적어 둔 뒤 그 순서를 그대로 재현하는 것입니다. 그룹과 사용자 이름을 프로필에 저장하는 배포에서는 그 프롬프트가 더 이상 나타나지 않는 자리에 빈 줄이 필요할 수 있고, 마지막 줄에는 여전히 자체 줄바꿈이 필요합니다. 한 줄이 모자란 파일은 보통 분명한 오류로 실패하는 대신 마지막 프롬프트에서 멈추며, 그래서 네트워크 탓을 하게 됩니다. 파일은 순서를 위해 한 번, 빈 줄을 위해 한 번, 자신의 기록과 두 번 대조하십시오.
파일을 동기화 폴더 밖에 두고 작업을 실행하는 계정만 읽을 수 있게 하십시오. 그 비밀번호는 평문이므로 파일은 자격 증명이며, 저장소도 공유 디스크도 티켓 첨부도 안 됩니다. 클라이언트는 이에 대해 경고하지 않습니다.
GUI가 먼저 물러나야 하는 이유
GUI 프로세스를 끝내고 스크립트를 시작한 뒤 작업 디렉터리와 클라이언트 빌드가 모두 중요하므로 CLI는 자체 설치 디렉터리에서 실행하십시오. 설명용 래퍼:
@echo off
taskkill /IM vpnui.exe /F >nul 2>&1
cd /d "%PROGRAMFILES(x86)%\Cisco\Cisco Secure Client"
vpncli.exe -s < C:\secure\login.txt여기서 종료 코드는 신뢰할 수 있는 성공 신호가 아닙니다. 클라이언트는 진행 상황을 출력하고 터널은 별도 프로세스에 유지하므로, 출력에서 연결 상태 줄을 읽은 뒤에야 VPN에 의존하는 작업을 시작하십시오.
GUI 종료를 건너뛰면 기존 세션이 사용자가 남긴 상태에 그대로 있는데도 스크립트가 실행되는 것처럼 보일 수 있습니다. 그 고장은 간헐적으로 보이며, 바로 일주일의 추측을 버티는 종류의 버그입니다.
세션을 확인하고 가정하지 마십시오
스크립트가 돌아오면 내부 호스트나 회사 리졸버만 응답하는 DNS 접미사처럼 터널 안에만 존재하는 것을 확인하십시오. 클라이언트 출력에서 연결 상태 줄도 읽고, 그 밖의 것은 느린 성공이 아니라 실패로 취급하십시오. 세션이 이미 있는데 파일을 다시 실행하면 클라이언트가 반쯤 구성된 상태로 남을 수 있으므로, 먼저 연결을 끊거나 세션이 있을 때 로그인을 건너뛰십시오.
그다음 재연결의 책임이 누구에게 있는지 정하십시오. 내부 주소에 핑을 보내고 로그인을 다시 실행하는 루프는 키오스크를 몇 달간 온라인으로 유지할 수 있지만, 비밀번호가 처음 바뀔 때 계정을 잠글 수도 있습니다. 시도 횟수를 제한하고 초과 시 경고하며, 오래된 비밀번호가 잠길 때까지 재시도하는 대신 ID 팀이 파일을 교체하게 하십시오.
오래된 vpnclient.exe는 같은 도구가 아닙니다
같은 자동화가 더 오래된 이름으로 존재하며 둘은 서로 바꿀 수 없습니다. 은퇴한 Cisco IPsec 클라이언트는 vpnclient.exe 를 사용해 connect 동사, 프로필 이름, 사용자, 비밀번호를 하나의 명령줄에 넣는 인라인 인수를 받았지만, vpncli.exe 는 표준 입력에서 -s 와 함께 프롬프트 순서를 기대합니다. 그래서 오래된 포럼 스크립트를 현재 기계에 복사하면 실행은 되지만 아무것도 보이지 않고 게이트웨이 탓을 받는 명령이 됩니다.
인수를 편집하기 전에 어떤 클라이언트가 설치되어 있고 스크립트가 실제로 어느 것을 호출하는지 확인하십시오. 이름 차이는 예약 작업에서 놓칠 만큼 작고, 인계받은 스크립트가 업그레이드 후 작동을 멈췄을 때 가장 먼저 확인할 점입니다.