6.13.3. nmstatectl을 사용하여 IPsec VPN 게이트웨이에 연결하도록 클라이언트 구성
원격 사설 네트워크의 리소스에 액세스하려면 먼저 IPsec VPN 연결을 구성해야 합니다. Nmstate를 사용하면 선언적 API를 사용하여 기존 Libreswan IPsec 게이트웨이와의 연결을 생성할 수 있습니다.
일반적으로 왼쪽 및 오른쪽 이라는 이름의 호스트는 임의의 값입니다. 그러나 NetworkManager는 항상 로컬 호스트에 왼쪽 이라는 용어를 사용하고 원격 호스트에는 right 을 사용합니다.
사전 요구 사항
원격 게이트웨이는 Libreswan IPsec을 실행하며 인증서 기반 인증을 사용한 호스트 간 연결을 위해 준비되었습니다.
NetworkManager-libreswan플러그인의 설계로 인해 Nmstate는 동일한 연결에 이 플러그인을 사용하는 다른 피어와 통신할 수 없습니다.PKCS#12 파일
~/file.p12는 다음 콘텐츠가 있는 클라이언트에 있습니다.- 사용자의 개인 키
- 사용자 인증서
- CA 인증서
- 필요한 경우 중간 인증서
개인 키 및 CSR(인증서 서명 요청) 생성 및 CA에서 인증서를 요청하는 방법에 대한 자세한 내용은 CA 설명서를 참조하십시오.
-
인증서의 확장 키 사용량(EKU)은
TLS 웹 클라이언트 인증으로 설정됩니다.
프로세스
Libreswan이 아직 설치되지 않은 경우:
필수 패키지를 설치합니다.
# dnf install nmstate libreswan NetworkManager-libreswanNetworkManager 서비스를 다시 시작하십시오.
# systemctl restart NetworkManagerNSS(Network Security Services) 데이터베이스를 초기화합니다.
# ipsec initnss이 명령은
/var/lib/ipsec/nss/디렉터리에 데이터베이스를 생성합니다.방화벽에서 IPsec 포트 및 프로토콜을 엽니다.
# firewall-cmd --permanent --add-service="ipsec" # firewall-cmd --reload
PKCS #12 파일을 NSS 데이터베이스로 가져옵니다.
# ipsec import ~/file.p12 Enter password for PKCS12 file: <password> pk12util: PKCS12 IMPORT SUCCESSFUL correcting trust bits for Example-CA사용자 및 CA 인증서의 닉네임을 표시합니다.
# certutil -L -d /var/lib/ipsec/nss/ Certificate Nickname Trust Attributes SSL,S/MIME,JAR/XPI user u,u,u Example-CA CT,, ...Nmstate YAML 파일에 이 정보가 필요합니다.
다음 콘텐츠를 사용하여 YAML 파일(예:
~/ipsec-host-to-site-cert-auth.yml)을 생성합니다.--- interfaces: - name: '<connection_name>' type: ipsec libreswan: ikev2: insist left: <ip_address_or_fqdn_of_left_peer> leftid: '%fromcert' leftcert: <user_certificate_nickname> right: <ip_address_or_fqdn_of_right_peer> rightid: '%fromcert' rightsubnet: 192.0.2.0/24예제에 지정된 설정은 다음과 같습니다.
ikev2: insist- IKEv2 프로토콜을 IKEv1에 대체하지 않고 허용된 유일한 프로토콜로 정의합니다. 이 설정은 Nmstate를 사용하여 호스트 간 구성에서 필수입니다.
left= <ip_address_or_fqdn_of_left_peer> 및right= <ip_address_or_fqdn_of_right_peer>- 피어의 IP 주소 또는 DNS 이름을 정의합니다.
leftid=%fromcert및rightid=%fromcert- 인증서의 고유 이름(DN) 필드에서 ID를 검색하도록 Libreswan을 구성합니다.
leftcert="<server_certificate_nickname>"- NSS 데이터베이스에 사용된 서버 인증서의 닉네임을 설정합니다.
rightsubnet: <subnet>- 게이트웨이에 연결된 CIDR(Classless inter-domain routing) 형식으로 서브넷을 정의합니다.
시스템에 설정을 적용합니다.
# nmstatectl apply ~/ipsec-host-to-site-cert-auth.yml
검증
- 원격 네트워크에서 호스트에 대한 연결을 설정하거나 ping합니다.
문제 해결
NetworkManager가 Libreswan에 전달하는 실제 구성을 표시하려면 다음을 입력합니다.
# nmcli connection export <connection_name>출력은 원격 호스트의 Libreswan 구성과 비교할 때 ID 및 키와 같은 편차하는 설정을 식별하는 데 도움이 될 수 있습니다.
다음 단계
- DHCP 또는 SLAAC(상태 비저장 주소 자동 구성)가 있는 네트워크에서 이 호스트를 사용하는 경우 연결이 리디렉션될 수 있습니다. 자세한 내용 및 완화 단계는 연결이 터널을 우회하지 못하도록 전용 라우팅 테이블에 VPN 연결 할당을 참조하십시오.