웹사이트 검색

Ubuntu에서 사전 공유 및 RSA 키를 사용하는 Libreswan 기반 Ipsec VPN


이 페이지에서

  1. 리브레스완의 특징
  2. IPsec 서비스 시작
  3. LibreSwan 구성
    1. 사전 공유 키 VPN의 상태

    이 튜토리얼에서는 LibreSwan이 Ubuntu 플랫폼에 설치됩니다. LibreSwan은 IPsec 프로토콜의 오픈 소스 구현이며 FreeSwan 프로젝트를 기반으로 하며 RedHat 기반 Linux 배포판에서 패키지를 바로 사용할 수 있습니다. 그러나 다른 Linux 플랫폼에서 컴파일하기 위한 자세한 지침은 프로젝트의 소스 코드에 제공됩니다. 설치 프로세스 후에는 송신자에서 수신자 피어로의 데이터를 보호하기 위해 게이트웨이 기반 IPsec VPN에 대한 게이트웨이가 구성됩니다.

    IPsec 프로토콜에 대한 세부정보는 이전 문서에 나와 있습니다. 그러나 LibreSwan과 관련된 IPsec 프로토콜의 두 부분에 대한 간략한 정보는 아래에 설명되어 있습니다.

    IPsec 기반 VPN은 Internet Keying Exchange 프로토콜과 ESP(Encapsulating Security Payload) 프로토콜로 구성됩니다.

    --> 이케

    이름에서 알 수 있듯이 IKE 프로토콜의 목적은 VPN 피어를 인증하고(사전 공유 키, 공개 키 암호화, freeradius 사용) 키를 동적으로 생성하고 VPN 피어와 키를 공유하는 것입니다. IPsec의 두 번째 단계에 대한 암호화 키도 IKE에 종속됩니다. Libreswan은 프로젝트의 pluto 프로그램을 사용하여 IKE 프로토콜을 구현합니다.

    --> ESP

    ESP 프로토콜은 Linux 커널(NETEY/XFRM) IPsec 스택에서 구현되는 피어 합의 정책의 실제 사양입니다.

    Libreswan 기능

    • 사전 공유 키 기반 인증 지원.
    • 공개 키 기반 인증 지원.
    • IKE v1/v2 버전의 키 교환을 모두 지원합니다.\n
    • NSS 암호화 라이브러리가 지원됩니다.\n
    • Xauth 및 DNSSec도 지원됩니다.

    Ubuntu 16.04용 필수 패키지

    LibreSwan을 성공적으로 컴파일하려면 Ubuntu에 다음 패키지를 설치해야 합니다. LibreSwan을 설치할 때 플러그인/기능 및 명령을 활성화 또는 비활성화하는 방법에 대한 간략한 정보도 소스 코드에 제공됩니다.

    apt-get -y update
    apt-get install  libunbound-dev libevent-dev  libsystemd-dev libnss3-dev libnspr4-dev pkg-config \ libpam0g-dev libcap-ng-dev libcap-ng-utils libselinux1-dev libcurl4-nss-dev flex bison gcc make libnss3-tools

    필요한 패키지의 설치는 아래와 같습니다.

    IPsec 도구의 최신 소스 코드는 wget 명령을 사용하여 다운로드하고 다음 tar 명령을 사용하여 추출합니다.

    wget https://download.libreswan.org/libreswan-3.20.tar.gz
    tar -xzf libreswan-3.20.tar.gz
    cd libreswan-3.20

    구성 명령을 실행할 필요가 없습니다. 아래와 같이 LibreSwan을 빌드하는 두 가지 방법을 보여주는 make 명령을 실행하기만 하면 됩니다.

    마지막으로 make all 명령을 실행하여 플랫폼에서 LibreSwan을 빌드합니다.

    make all

    이제 make install 명령을 실행하여 IPsec 프로그램을 설치합니다.

    IPsec 서비스 시작

    위의 스크린샷과 같이 Ubuntu 플랫폼에서 다음 명령을 사용하여 IPSec 서비스를 활성화해야 합니다.

    systemctl enable ipsec.service

    IPsec 서비스를 시작하기 전에 NSS 암호화 라이브러리를 초기화해야 합니다. IPsec VPN에서 암호화 알고리즘 사용을 위해 LibreSwan에서 사용합니다.

    IPsec initnss

    마지막으로 다음 명령을 사용하여 IPSec 서비스를 시작합니다.

    ipsec setup start

    Ubuntu 플랫폼에서 LibreSwan의 설정을 보려면 ipsec status 명령을 실행하십시오.

    ipsec status

    LibreSwan 구성

    이 자습서에서는 미리 공유한 키와 RSA 키(공용/개인 키 쌍)를 사용하여 피어 간에 IPsec VPN을 설정합니다. 두 피어(왼쪽/오른쪽)의 구성은 다음과 같습니다.

    사전 공유 키 기반 VPN

    ipsec.conf (configuration file of left VM)              ipsec.secrets  (configuration file of left VM)

    버전 2 192.168.15.145 192.168.15.245: PSK \vpn_psk>12

    구성 설정
    protostack=netkey
    conn vpn_psk

    ike=aes256-sha256;modp4096
    phase2alg=aes256-sha256;modp4096
    왼쪽=192.1645.

    leftsubnet=172.16.10.0/24

    right=192.168.15.245
    rightsubnet=192.169.50.0/24 > authby=secret
    type=tunnel
    auto=start

    ipsec.conf (configuration file of right VM)              ipsec.secrets  (configuration file of right VM)

    버전 2 192.168.15.245 192.168.15.145: PSK \vpn_psk123\

    구성 설정
    protostack=netkey
    conn vpn_psk

    ike=aes256-sha256;modp4096
    phase2alg=aes256-sha256;modp4096
    left=192.168.15.245
    <
    leftsubnet=192.169.50.0/24

    right=192.168.15.145
    rightsubnet=172.16.10.0/24
    authby=secret
    type=tunnel
    auto=start

    ipsec.conf 및 ipsec.secrets 파일에서 위의 구성을 설정한 후 양쪽에서 다음 명령을 실행하여 IPSec 협상 프로세스를 시작합니다.

    ipsec restart

    사전 공유 키 VPN 상태

    ipsec status 및 setkey -D 명령의 출력은 아래와 같습니다.

    ipsec status
    setkey -D

    RSA(공개/개인) 키 기반 VPN

    두 시스템 모두에 대한 RSA 키를 생성하고 이를 구성 파일에 포함해야 합니다. RSA 키의 축소된 버전이 이 자습서에 표시됩니다. 또한 포함된 공개 키가 한 줄이어야 합니다.

    RSA 키 생성

    아래와 같이 두 피어에 대한 키를 생성하는 데 다음 명령이 사용됩니다.

     ipsec newhostkey --output /etc/ipsec.secrets

    생성된 공개 키는 아래와 같이 ipsec.secrets 파일에 추가됩니다.

    마찬가지로 RSA 키는 다음 스냅샷에 표시된 대로 오른쪽 머신에 대해 동일한 명령을 사용하여 생성됩니다.

    위에 표시된 것처럼 키 생성 명령은 두 피어 시스템의 /etc/ipsec.secrets에 RSA 공개 키를 자동으로 포함합니다. RSA의 개인 키는 /etc/ipsec.d/*.db 파일 아래의 NSS 데이터베이스에 저장됩니다.

    RSA 키를 생성한 후 다음 단계에서는 ipsec.conf 파일에서 두 시스템의 구성을 변경합니다.

    ipsec.conf (configuration file of left VM)             

    버전 2

    구성 설정
    protostack=netkey
    conn vpn_rsa

    ike=aes256-sha256;modp4096
    phase2alg=aes256-sha256;modp4096
    왼쪽=192.1645.

    leftsubnet=172.16.10.0/24

    right=192.168.15.245
    rightsubnet=192.169.50.0/24 > authby=rsasig
    leftrsasigkey=0SAQPGMUJAB8QOQAJ1FTKIQF3F [........] ALQNXUF $
    rightrsasigkey=0SAQOS7APH6LPPUGGC454+W [........] FSD2ZQE

    type=tunnel
    auto=start

    ipsec.conf (configuration file of right VM)              

    버전 2

    구성 설정
    protostack=netkey
    conn vpn_rsa

    ike=aes256-sha256;modp4096
    phase2alg=aes256-sha256;modp4096
    left=192.168.15.245
    <
    leftsubnet=192.169.50.0/24

    right=192.168.15.145
    rightsubnet=172.16.10.0/24
    authby=rsasig
    rightrsasigkey=0sAQPgMUjAb8QOQaJ1FTkIQf3f[........]ALQNXUf$
    leftrsasigkey=0sAQOs7aPh6LppUGgC454+W[..... ...]fSd2zQE

    type=tunnel
    auto=start

    LibreSwan 구성 파일을 변경한 후 다음 단계는 다음 명령을 사용하여 두 컴퓨터에서 IPsec 서비스를 다시 시작하는 것입니다.

    ipsec restart

    왼쪽 장치의 IPsec VPN 상태는 다음 스크린샷에 표시됩니다. RSASIG가 정책에서 IPsec 터널의 피어를 인증하는 데 사용됨을 보여줍니다.

    이 자습서의 목적은 IPsec 프로토콜 구현을 제공하는 "LibreSwan"을 탐색하는 것입니다. RedHat 배포판에서 사용할 수 있지만 Ubuntu/Debian과 같은 다른 플랫폼용으로 쉽게 컴파일할 수 있습니다. 이 기사에서는 첫 번째 LibreSwan 도구를 소스에서 빌드한 다음 게이트웨이 장치 간에 사전 공유 및 RSA 키를 사용하여 두 개의 VPN을 구성합니다.