일반 사용자로서 높은 권한으로 OpenVPN을 수정하는 방법은 무엇입니까?

일반 사용자로서 높은 권한으로 OpenVPN을 수정하는 방법은 무엇입니까?
checking tap-windows.h presence... no
checking for tap-windows.h... no
checking whether TUNSETPERSIST is declared... yes
checking for setcon in -lselinux... yes
checking for pam_start in -lpam... no
checking for OPENSSL_CRYPTO... yes
checking for OPENSSL_SSL... yes
checking for EVP_CIPHER_CTX_set_key_length... yes
checking for ENGINE_load_builtin_engines... yes
checking for ENGINE_register_all_complete... yes
checking for ENGINE_cleanup... yes
checking for ssl_init in -lpolarssl... no
checking for aes_crypt_cbc in -lpolarssl... no
checking for lzo1x_1_15_compress in -llzo2... no
checking for lzo1x_1_15_compress in -llzo... no
checking for PKCS11_HELPER... no
checking git checkout... yes
configure: error: libpam required but missing
[mirror@innov openvpn]$ ./configure --help | grep libpam
  --enable-pam-dlopen     dlopen libpam [default=no]
              C compiler flags for libpam
  LIBPAM_LIBS linker flags for libpam
[mirror@xxx openvpn]$ ./configure --prefix=/home/mirror/build/ins/ins_vpn --disable-lzo 

오류: libpam이 필요하지만 누락되었습니다.

libpam이라는 패키지를 설치할 권한이 없는데 libpam을 빌드하고 홈 디렉터리에 설치한 다음 이를 기반으로 openvpn을 빌드할 수 있나요?

답변1

예, 물론 일반 사용자로서 항목을 컴파일하고 이를 구성 스크립트로 지정할 수 있습니다. 실행하면 및 와 configure --help같은 환경 변수 설정에 대해 설명하는 부분을 볼 수 있습니다 . 컴파일된 libpam의 공유 라이브러리(.so 파일) 및 헤더(.h 파일)가 있는 위치로 이를 수동으로 설정합니다.LIBPAM_LIBSLIBPAM_CFLAGS

openvpn과 모든 종속성을 집계할 수 있는 "로컬 접두사"를 설정하는 것이 좋습니다. 이 접두어를 자신의 /usr디렉터리로 생각하세요.

설정에서 이미 --prefix를 /home/mirror/build/ins/ins_vpn으로 설정한 것 같으므로 /home/mirror/build/ins/ins_vpn/include가 환경 변수에 설정할 값이 됩니다. LIBPAM_CFLAGS/home/mirror/build/ins/ins_vpn/lib는 환경 변수에 설정할 값입니다 LIBPAM_LIBS. 물론, 환경변수 이름은 무엇을 configure --help말하느냐에 따라 달라질 수 있습니다. 그러니 실행해서 읽어보세요.

PKG_CONFIG_PATH환경 변수를 /home/mirror/build/ins/ins_vpn/lib/pkg-configlibpam 으로 설정할 수도 있습니다 .make install 단계~해야 한다설치 시 libpam.pc를 해당 디렉토리에 푸시합니다( 로 구성한 경우 --prefix=/home/mirror/build/ins/ins_vpn). PKG_CONFIG_PATH를 설정하면 해당 디렉토리에서 프로그램의 컴파일 및 링크 플래그에 대한 데이터가 포함된 파일을 pkg-config찾도록 유틸리티에 지시하게 됩니다 . .pc많은 표준 라이브러리는 pkg-config 및 autoconfig를 사용하므로 다른 패키지에 대해 이 단계를 반복할 수 있습니다.

적절한 버전의 libpam 소스를 얻는 것은 아마도 소스 rpm을 다운로드하고 소스 압축을 풀거나 배포판이 사용하는 libpam 업스트림 버전을 파악하고 해당 버전을 가져오는 것(또는 이후 버전도 작동할 것임)일 것입니다.

상자에 대한 루트 액세스 권한이 없기 때문에 아마도 장치를 조작할 수 없으므로 tun( tap시스템 관리자가 권한을 부여하지 않는 한) 어쨌든 루트 없이는 유용한 VPN 터널을 만들 수 없을 것입니다. openvpn을 컴파일하더라도 :)

답변2

yum install gcc make rpm-build autoconf.noarch zlib-devel pam-devel openssl-devel -y

그러면 모든 종속성이 해결됩니다.

답변3

OpenVPN 2.3.0을 설치하려고 했습니다../configure libpam이 필요하지만 누락되었다는 동일한 오류가 발생했습니다. 패키지를 설치했어요libpam0g-dev다시 성공적으로 실행했습니다 ./configure.

루트가 없다고 말씀하신 건 알지만 해당 패키지를 설치할 수 있다면 ./configure하려는 작업을 완료할 수 있을 것입니다.

관련 정보