6.12. RHEL 시스템 역할을 사용하여 IPsec VPN 연결 구성


신뢰할 수 없는 네트워크를 통해 암호화된 터널을 설정하고 전송 중 데이터의 무결성을 보장하도록 IPsec VPN 연결을 구성합니다. RHEL 시스템 역할을 사용하면 지사 사무실을 본사에 연결하는 것과 같은 사용 사례에 맞게 설정을 자동화할 수 있습니다.

참고

vpn RHEL 시스템 역할은 PSK(사전 공유 키) 또는 인증서를 사용하여 피어를 서로 인증하는 VPN 구성만 생성할 수 있습니다.

호스트 간 VPN은 두 장치 간에 암호화된 연결을 설정하여 애플리케이션이 안전하지 않은 네트워크를 통해 안전하게 통신할 수 있도록 합니다. vpn RHEL 시스템 역할을 사용하면 IPsec 호스트 간 연결 생성 프로세스를 자동화할 수 있습니다.

인증을 위해 PSK(사전 공유 키)는 두 피어에만 알려진 공유 시크릿을 사용하는 간단한 방법입니다. 이 접근 방식은 쉽게 배포가 가능한 우선 순위인 기본 설정에 적합합니다. 그러나 키를 엄격하게 기밀로 유지해야 합니다. 키에 대한 액세스 권한이 있는 공격자는 연결을 손상시킬 수 있습니다.

사전 요구 사항

  • 컨트롤 노드와 관리형 노드를 준비했습니다.
  • 관리 노드에서 플레이북을 실행할 수 있는 사용자로 제어 노드에 로그인되어 있습니다.
  • 관리 노드에 연결하는 데 사용하는 계정에는 이러한 노드에 대한 sudo 권한이 있습니다.

프로세스

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

    ---
    - name: Configuring VPN
      hosts: managed-node-01.example.com, managed-node-02.example.com
      tasks:
        - name: IPsec VPN with PSK authentication
          ansible.builtin.include_role:
            name: redhat.rhel_system_roles.vpn
          vars:
            vpn_connections:
              - hosts:
                  managed-node-01.example.com:
                  managed-node-02.example.com:
                auth_method: psk
                auto: start
            vpn_manage_firewall: true
            vpn_manage_selinux: true

    예제 플레이북에 지정된 설정은 다음과 같습니다.

    호스트: &lt ;list>

    VPN을 구성하려는 피어를 사용하여 YAML 사전을 정의합니다. 항목이 Ansible 관리형 노드가 아닌 경우 hostname 매개변수에서 FQDN(정규화된 도메인 이름) 또는 IP 주소를 지정해야 합니다. 예를 들면 다음과 같습니다.

              ...
              - hosts:
                  ...
                  external-host.example.com:
                    hostname: 192.0.2.1

    역할은 각 관리 노드에서 VPN 연결을 구성합니다. 연결 이름은 < peer_A> -to- <peer_B >입니다(예: managed-node-01.example.com-to-managed-node-02.example.com ). 역할은 외부(관리되지 않음) 노드에 Libreswan을 구성할 수 없습니다. 이러한 피어에 구성을 수동으로 생성해야 합니다.

    auth_method: psk
    피어 간 PSK 인증을 활성화합니다. 역할은 제어 노드에서 openssl 을 사용하여 PSK를 생성합니다.
    auto: <startup_method>
    연결의 시작 메서드를 지정합니다. 유효한 값은 add,ondemand,startignore 입니다. 자세한 내용은 Libreswan이 설치된 시스템의 ipsec.conf(5) 도움말 페이지를 참조하십시오. 이 변수의 기본값은 null이며 자동 시작 작업이 없음을 의미합니다.
    vpn_manage_firewall: true
    역할이 관리 노드의 firewalld 서비스에서 필요한 포트를 열도록 정의합니다.
    vpn_manage_selinux: true
    역할이 IPsec 포트에 필요한 SELinux 포트 유형을 설정하도록 정의합니다.

    플레이북에 사용되는 모든 변수에 대한 자세한 내용은 제어 노드의 /usr/share/ansible/roles/rhel-system-roles.vpn/README.md 파일을 참조하십시오.

  2. 플레이북 구문을 확인합니다.

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

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

  3. Playbook을 실행합니다.

    $ ansible-playbook ~/playbook.yml

검증

  • 연결이 성공적으로 시작되었는지 확인합니다. 예를 들면 다음과 같습니다.

    # ansible managed-node-01.example.com -m shell -a 'ipsec trafficstatus | grep "managed-node-01.example.com-to-managed-node-02.example.com"'
    ...
    006 #3: "managed-node-01.example.com-to-managed-node-02.example.com", type=ESP, add_time=1741857153, inBytes=38622, outBytes=324626, maxBytes=2^63B, id='@managed-node-02.example.com'

    이 명령은 VPN 연결이 활성화된 경우에만 성공합니다. 플레이북의 auto 변수를 start 이외의 값으로 설정하는 경우 먼저 관리 노드에서 연결을 수동으로 활성화해야 할 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 소개

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

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

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

Red Hat 문서 정보

Legal Notice

Theme

© 2026 Red Hat
맨 위로 이동