검색

16장. vpn RHEL 시스템 역할을 사용하여 IPsec과 VPN 연결 구성

download PDF

vpn 시스템 역할을 사용하면 Red Hat Ansible Automation Platform을 사용하여 RHEL 시스템에서 VPN 연결을 구성할 수 있습니다. 이를 사용하여 호스트 간, 네트워크-네트워크, VPN 원격 액세스 서버 및 메시 구성을 설정할 수 있습니다.

호스트 간 연결의 경우 역할은 필요에 따라 키 생성을 포함하여 vpn_connections 목록에 있는 각 호스트 쌍 간에 VPN 터널을 설정합니다. 또는 나열된 모든 호스트 간에 opportunistic 메시 구성을 생성하도록 구성할 수 있습니다. 이 역할은 호스트에 있는 호스트의 이름이 Ansible 인벤토리에 사용된 호스트의 이름과 동일하고 해당 이름을 사용하여 터널을 구성할 수 있다고 가정합니다.

참고

vpn RHEL 시스템 역할은 현재 IPsec 구현인 Libreswan만 VPN 공급자로 지원합니다.

16.1. vpn 시스템 역할을 사용하여 IPsec으로 호스트 간 VPN 생성

vpn 시스템 역할을 사용하여 제어 노드에서 Ansible 플레이북을 실행하여 인벤토리 파일에 나열된 모든 관리 노드를 구성하여 호스트 간 연결을 구성할 수 있습니다.

사전 요구 사항

절차

  1. 다음 콘텐츠를 사용하여 플레이북 파일(예: ~/playbook.yml )을 생성합니다.

    - name: Host to host VPN
      hosts: managed-node-01.example.com, managed-node-02.example.com
      roles:
        - rhel-system-roles.vpn
      vars:
        vpn_connections:
          - hosts:
              managed-node-01.example.com:
              managed-node-02.example.com:
        vpn_manage_firewall: true
        vpn_manage_selinux: true

    이 플레이북은 시스템 역할에 의해 자동으로 생성되는 키와 함께 사전 공유 키 인증을 사용하여 managed-node-01.example.com-to-managed-node-02.example.com 연결을 구성합니다. vpn_manage_firewallvpn_manage_selinux 둘 다 true 로 설정되므로 vpn 역할은 firewallselinux 역할을 사용하여 vpn 역할에서 사용하는 포트를 관리합니다.

    인벤토리 파일에 나열되지 않은 외부 호스트로의 관리 호스트에서 연결을 구성하려면 다음 섹션을 호스트 vpn_connections 목록에 추가합니다.

        vpn_connections:
          - hosts:
              managed-node-01.example.com:
              <external_node>:
                hostname: <IP_address_or_hostname>

    그러면 하나의 추가 연결을 구성합니다 . managed-node-01.example.com-to-<external_node>

    참고

    연결은 관리형 노드에서만 구성되며 외부 노드에는 구성되어 있지 않습니다.

  2. 선택 사항: vpn_connections 내의 추가 섹션을 사용하여 관리 노드에 대해 여러 VPN 연결을 지정할 수 있습니다(예: 컨트롤 플레인 및 데이터 플레인).

    - name: Multiple VPN
      hosts: managed-node-01.example.com, managed-node-02.example.com
      roles:
        - rhel-system-roles.vpn
      vars:
        vpn_connections:
          - name: control_plane_vpn
            hosts:
              managed-node-01.example.com:
                hostname: 192.0.2.0 # IP for the control plane
              managed-node-02.example.com:
                hostname: 192.0.2.1
          - name: data_plane_vpn
            hosts:
              managed-node-01.example.com:
                hostname: 10.0.0.1 # IP for the data plane
              managed-node-02.example.com:
                hostname: 10.0.0.2
  3. 플레이북 구문을 확인합니다.

    $ ansible-playbook --syntax-check ~/playbook.yml

    이 명령은 구문만 검증하고 잘못되었지만 유효한 구성으로부터 보호하지 않습니다.

  4. 플레이북을 실행합니다.

    $ ansible-playbook ~/playbook.yml

검증

  1. 관리형 노드에서 연결이 성공적으로 로드되었는지 확인합니다.

    # ipsec status | grep <connection_name>

    & lt;connection_name >을 이 노드의 연결 이름으로 바꿉니다(예: managed_node1-to-managed_node 2) .

    참고

    기본적으로 역할은 각 시스템의 관점에서 생성하는 각 연결에 대해 설명이 포함된 이름을 생성합니다. 예를 들어 managed_node1managed_node2 간의 연결을 생성할 때 managed_node1 에 대한 이 연결의 설명 이름은 managed_node1-to-managed_node2 이지만 managed_node2 의 설명 이름은 managed_node2-to-managed_node1 입니다.

  2. 관리형 노드에서 연결이 성공적으로 시작되었는지 확인합니다.

    # ipsec trafficstatus | grep <connection_name>
  3. 선택 사항: 연결이 성공적으로 로드되지 않으면 다음 명령을 입력하여 연결을 수동으로 추가합니다. 이렇게 하면 연결 설정 실패 이유를 나타내는 더 구체적인 정보가 제공됩니다.

    # ipsec auto --add <connection_name>
    참고

    연결을 로드하고 시작하는 동안 발생할 수 있는 오류는 /var/log/pluto.log 파일에 보고됩니다. 이러한 로그는 구문 분석하기 어렵기 때문에 대신 표준 출력에서 로그 메시지를 가져오는 데 수동으로 연결을 추가합니다.

추가 리소스

  • /usr/share/ansible/roles/rhel-system-roles.vpn/README.md 파일
  • /usr/share/doc/rhel-system-roles/vpn/ directory
Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.