일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- ArrayList
- 이벤트
- 네트워킹
- Algorithm
- 라이브러리
- java
- Node.js
- pulsesecurevpn
- 갤럭시북5
- 알고리즘
- 데이터통신
- JavaScript
- 일본어
- 백준
- html
- vpn 에러
- JLPT
- gsap
- 연습문제
- 단어장
- quizlet
- React
- 자바스크립트
- 자바
- ai select
- 함수
- 스크롤
- 한빛아카데미
- 초연결 사회의 데이터통신과 네트워킹
- pulsesecure
- Today
- Total
umilove98의 블로그
Pulse Secure VPN 접속에러 (작업스케줄러 등록 자동화) 본문
신규 구축 프로젝트 진행 중 고객사 자산에 접근하기 위한 Pulse Secure VPN을 전달받았다.
VPN 실행 후 접속설정 후 연결을 하면 즉시 모든 인터넷 통신이 안된다.
함께 프로젝트 하는 팀원분은 아주 정상적으로 잘 활용하고 있는데 고객사 전산팀에도 문의하니 그쪽 회사도 가끔 그런직원 있는데 해결 못하고 있단다...(??)
자사 정보보호팀에도 문의해 보았으나 VPN관리자 설정 문제나 방화벽 문제는 아니라고 하는데...
https://cloudbrothers.info/en/pulse-secure-windows-11/
해결을 위해 열심히 구글링해 보니 Windows11 에서 발생하는 문제라고 한다. (2021년도 글인데 아직도...?)
Pulse Secure 버전은 9.1.13
위 사이트에서 제시된대로 Juniper Network Service 라는 옵션 체크해주니 정상적으로 인터넷 통신이 가능해졌다.
그런데 vpn연결을 종료하면 초기화되기 때문에 매번 vpn연결을 할 때마다 이 옵션을 다시 켜줘야하는 매우 큰 불편함이 있었고 위 사이트에서 PowerShell 스크립트를 통해 자동화 한 내용을 적용하려고 보니 약간의 아쉬움이 있다.
do {
if ( (Get-NetAdapterBinding -InterfaceDescription "Juniper Networks Virtual Adapter" -ComponentID jnprns -ErrorAction SilentlyContinue).Enabled -eq $false ) {
Enable-NetAdapterBinding -ComponentID jnprns -InterfaceDescription "Juniper Networks Virtual Adapter"
"Enabled"
}
} while (1)
파워쉘로 해당 코드를 실행하면 무한 반복하면서 Juniper Network Service의 활성화 여부를 확인하여 활성화해주는 코드였다.
2가지 문제점이 보인다.
1. 컴퓨터를 재부팅하거나 PowerShell을 종료하면 vpn 실행 전 다시 PowerShell을 실행하여 해당 코드를 실행해야한다.
2. 한번 실행하면 종료커맨드를 받기 전까지는 무한루프하므로 pc 리소스 낭비가 발생한다. (큰 낭비는 아니겠지만 기분이 안좋음..)
vpn에서 연결 버튼을 눌렀을 때만 일회성으로 위 일련의 체크과정을 자동화 하기로 함
두 가지 방법
1. 작업스케줄러 설정하여 이벤트 트리거에 맞춰 스크립트를 실행하도록 등록
2. 배치프로그램을 만들어 원클릭으로 스크립트 실행
1. 작업스케줄러 이벤트 트리거 등록
윈도우 검색창에 이벤트뷰어 검색하여 실행 (띄어쓰기 잘해야함)
응용 프로그램 및 서비스 로그 - Pulse Secure - Operational 을 클릭해보면 위와 같은 창이 보인다.
이 상태로 vpn 클라이언트창에서 연결 후 새로고침하면 위 이벤트 뷰어 화면처럼 작업 범주 Connect 라는 로그가 보인다. (이벤트 ID 312)
이 이벤트가 발생했을 때 자동으로 수행할 작업을 연결해야한다.
우클릭 후 이 이벤트에 작업 연결 선택
powershell 프로그램을 실행하여 인수 추가에 지정된 파일 데이터를 수행한다.
다음과 같이 입력했다
바탕화면에 PulseEvent라는 폴더를 생성하고 폴더 안에 Enable_Juniper_Once.ps1 이라는 이름으로 쉘 스크립트 파일을 넣은 후
Enable_Juniper_Once.ps1
# Juniper Networks Virtual Adapter의 네트워크 서비스 활성화
# vpn 네트워크 연결이 완료된 후 동작하도록 연결 종료까지 대기시간 10초
sleep 10
$adapter = Get-NetAdapterBinding -InterfaceDescription "Juniper Networks Virtual Adapter" -ComponentID jnprns -ErrorAction SilentlyContinue
if ($adapter.Enabled -eq $false) {
Enable-NetAdapterBinding -ComponentID jnprns -InterfaceDescription "Juniper Networks Virtual Adapter"
Write-Output "Juniper Network Service Enabled"
} else {
Write-Output "Juniper Network Service is already enabled."
}
( 네트워크 연결 이벤트 시작 직후에 해당 작업이 시작되는데, 네트워크 연결이 완료된 후 작업을 진행해야 정상 적용되므로 여유시간 10초를 주었음. 수정가능 )
인수 추가 : -ExecutionPolicy Bypass -NoProfile -File "C:\Users\mspark\Desktop\PulseEvent\Enable_Juniper_Once.ps1"
시작 위치 : C:\Users\mspark\Desktop\PulseEvent\
이후 마침을 클릭하면 이벤트에 연결된 작업이 생성되고
윈도우 검색창 작업 스케줄러 검색하여 실행 - 이벤트 뷰어 작업 에서 확인 가능하다
우클릭 - 속성 선택시 아래와 같은 창이 보이고 보안옵션 - 가장 높은 수준의 권한으로 실행 체크해야한다.
( 관리자권한으로 파워쉘을 실행하도록 하기 위함 )
이후 vpn 연결 시작시 이와 같은 파워쉘 화면이 실행되며 대기시간(10초가 지나면 Juniper Network Service 옵션을 자동 활성화 한다. )
2. 배치 파일 생성
1) Juniper Network Service 활성화 스크립트
2) 위 스크립트를 실행해주는 배치 스크립트
두 파일을 같은 폴더에 넣고 2) 의 스크립트를 관리자 권한으로 실행하면 1) 의 스크립트를 자동 실행해준다.
하지만... 폴더에 들어가서 관리자 권한으로 실행하는 것이 번거롭다...
바탕화면의 위 Enable_Juniper_Once.bat 의 바로가기를 생성한 후 우클릭 - 속성 - 바로가기탭 - 고급 - 관리자 권한으로 실행 체크
하면 좀 더 간편하게 딸깍이 가능하다.
이거 설정하는 시간에 그냥 매번 제어판 옵션 활성화 했겠다는 생각이 들기도 하지만... 다른 비슷한 귀찮음이 발생할 때 조금 더 원활하게 자동화? 설정을 할 수 있지 않을까?