티스토리 툴바


리눅스(Gentoo)2012/01/12 08:44
UIOWA에서는 학내 컴퓨터에 원격 데스크탑을 이용해서 접속하려면 Cisco에서 배포하는 AnyConnect VPN client가 필요하다. 다행히 Multiplatform을 지원하는지라 Windows뿐만 아니라 Mac과 Linux도 지원하고 있었다. 학교 ITS help 사이트에서 링크해놓은 곳에서 설치파일을 다운받는다.

설치파일이 어떤 linux 배포판을 기준으로 했는지 알 수 없으나 vpn_install.sh을 실행해보면 일부 파일의 경로가 달라서 설치가 중단된다. (Gentoo를 사용하는 내 랩탑의 경우는 lsmod가 /sbin이 아니라 /bin 으로 되어있다.) vpn_install.sh과 vpnagentd_init 파일을 열어서 파일 경로가 다른 부분을 내 설정에 맞게 고쳐준다. 그리고 다시 설치해보면 /opt/cisco/vpn에 파일들이 설치가 되는데 vpnui를 실행해보면 프로그램이 실행이 안되는 문제가 있다. 이 문제를 해결하려면 설치파일 압축을 푼 곳에 가서 vpnagentd_init 파일과 vpnagentd 파일을 /opt/cisco/vpn/bin 에 복사해준다. 그리고 나중에 필요할 때마다 구동시켜주기 위해서 vpnagentd_init 파일을 /etc/init.d에도 복사해준다.

앞으로 원격접속해야할 경우, /etc/init.d/vpnagentd_init start 명령으로 vpnagentd 데몬을 실행시킬 수 있고 이 다음에 vpnui를 구동하면 학교로 접속할 수 있는 준비가 끝난 것이다.

데스크탑에 원격 접속하기 위해서는 rdesktop을 설치한 후에 desktop ip주소를 이용해서 접속하면 된다.

현재 Gentoo가 /etc/init.d 아래에 있는 스크립트 제어방법을 기존에 사용되던 rc-update에서 eselect 기능에 통합시켰다. 그래서 rc-update로 하던 방식을 eselect rc 로 대신해서 사용하길 추천한다. 하지만 vpnagentd_init 스크립트를 eselect에서 인식하지 못해서 eselect rc 명령으로 제어는 못하고 있다. 어떻게 하는 거지?

P.S.1
vpnagentd_init script를 eselect rc에서 사용할 수 있는 방법을 찾았다. eselect rc 명령을 실행하면 실제로는 /usr/share/eselect/modules/rc.eselect 가 실행되는데 이 파일을 열어보면 init script 인지 확인하기 위해 script의 첫번째 라인을 검사한다. 보통 script 파일은

#!/bin/bash 나 #!/bin/sh 로 되어있는데 /etc/init.d 에 있는 script들은 #!/sbin/runscript 로 시작된다. 따라서 vpnagentd_init 파일의 첫번째 라인을 #!/bin/sh 에서 #!/sbin/runscript 로 변경해주면 eselect 에서 제어가 가능해진다.

P.S.2
vpnagentd_init 파일을 첫 라인만 #!/sbin/runscript 로 바꾸는 걸로는 eselect rc 명열으로 script가 정상적으로 동작을 하지 않았다. 그래서 직접 init script를 작성을 시도해보았다. /etc/init.d 에서 vim으로 파일을 만드니 신기하게도 기본틀을 만들어서 넣어준다. 그래서 vpnagentd_init 파일에서 start() 와 stop() 함수 내용만을 복사해서 내가 만든 script 파일의 start(), stop() 함수에 붙여넣어주고 script의 functions script 호출 블록을 depend()에 넣어주니 제대로 동작한다.
Posted by 다루치기