웹사이트 검색

CentOS/RHEL 8에서 Strongswan을 사용하여 IPsec 기반 VPN을 설정하는 방법


StrongSwan은 인터넷 키 교환(IKEv1 모두)을 완벽하게 지원하는 Linux용 오픈 소스, 다중 플랫폼, 현대적이고 완전한 IPsec 기반 VPN 솔루션입니다. IKEv2)를 사용하여 두 피어 간에 보안 연결(SA)을 설정합니다. 모든 기능을 갖춘 모듈식 설계이며 핵심 기능을 향상시키는 수십 개의 플러그인을 제공합니다.

관련 기사: Debian 및 Ubuntu에서 Strongswan을 사용하여 IPsec 기반 VPN을 설정하는 방법

이 문서에서는 CentOS/RHEL 8 서버에서 strongSwan을 사용하여 사이트 간 IPsec VPN 게이트웨이를 설정하는 방법을 알아봅니다. 이를 통해 피어는 강력한 사전 공유 키(PSK)를 사용하여 서로를 인증할 수 있습니다. 사이트 간 설정은 각 보안 게이트웨이 뒤에 서브넷이 있음을 의미합니다.

테스트 환경

가이드를 따르는 동안 구성 중에 실제 IP 주소를 사용하는 것을 잊지 마십시오.

사이트 1 게이트웨이
Public IP: 192.168.56.7
Private IP: 10.10.1.1/24
Private Subnet: 10.10.1.0/24
사이트 2 게이트웨이
Public IP:  192.168.56.6
Private IP: 10.20.1.1/24
Private Subnet: 10.20.1.0/24

1단계: CentOS 8에서 커널 IP 전달 활성화

1. 두 VPN 게이트웨이의 /etc/sysctl.conf 구성 파일에서 커널 IP 전달 기능을 활성화하여 시작합니다.

vi /etc/sysctl.conf

파일에 다음 줄을 추가하십시오.

net.ipv4.ip_forward = 1 
net.ipv6.conf.all.forwarding = 1 
net.ipv4.conf.all.accept_redirects = 0 
net.ipv4.conf.all.send_redirects = 0 

2. 변경 사항을 파일에 저장한 후 다음 명령을 실행하여 런타임에 새 커널 매개변수를 로드합니다.

sysctl -p

3. 다음으로 두 보안 게이트웨이의 /etc/sysconfig/network-scripts/route-eth0 파일에 영구 정적 경로를 만듭니다.

vi /etc/sysconfig/network-scripts/route-eth0

파일에 다음 줄을 추가합니다.

#Site 1 Gateway
10.20.1.0/24  via 192.168.56.7

#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6

4. 그런 다음 네트워크 관리자를 다시 시작하여 새로운 변경 사항을 적용합니다.

systemctl restart NetworkManager

2단계: CentOS 8에 StrongSwan 설치

5. strongswan 패키지는 EPEL 저장소에 제공됩니다. 이를 설치하려면 EPEL 저장소를 활성화한 다음 두 보안 게이트웨이 모두에 Strongwan을 설치해야 합니다.

dnf install epel-release
dnf install strongswan

6. 두 게이트웨이 모두에 설치된 strongswan 버전을 확인하려면 다음 명령을 실행하세요.

strongswan version

7. 다음으로 strongswan 서비스를 시작하고 시스템 부팅 시 자동으로 시작되도록 활성화합니다. 그런 다음 두 보안 게이트웨이의 상태를 확인합니다.

systemctl start strongswan 
systemctl enable strongswan
systemctl status strongswan

참고: CentOS/REHL 8strongswan 최신 버전은 swanctl을 모두 지원합니다. (vici 플러그인을 사용하여 IKE 데몬 Charon을 구성, 제어 및 모니터링하는 데 사용되는 StrongSwan 5.2.0에 도입된 새로운 휴대용 명령줄 유틸리티) 및 스타터 Strong>(또는 ipsec) 유틸리티는 더 이상 사용되지 않는 스트로크 플러그인을 사용합니다.

8. 기본 구성 디렉터리는 두 플러그인에 대한 구성 파일이 포함된 /etc/strongswan/입니다.

ls /etc/strongswan/

이 가이드에서는 strongswan 명령과 스트로크 인터페이스를 사용하여 호출되는 IPsec 유틸리티를 사용합니다. 따라서 다음 구성 파일을 사용합니다.

  • /etc/strongswan/ipsec.conf – StrongSwan IPsec 하위 시스템에 대한 구성 파일입니다.
  • /etc/strongswan/ipsec.secrets – 비밀 파일.

3단계: 보안 게이트웨이 구성

9. 이 단계에서는 /etc/strongswan/ipsec.conf Strongswan 구성 파일을 사용하여 각 사이트의 각 보안 게이트웨이에 연결 프로필을 구성해야 합니다.

사이트 1 연결 프로필 구성

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

다음 구성을 복사하여 파일에 붙여넣습니다.

config setup
        charondebug="all"
        uniqueids=yes
conn ateway1-to-gateway2
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.7
        leftsubnet=10.10.1.1/24
        right=192.168.56.6
        rightsubnet=10.20.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

사이트 2 연결 프로필 구성

cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
vi /etc/strongswan/ipsec.conf

다음 구성을 복사하여 파일에 붙여넣습니다.

config setup
        charondebug="all"
        uniqueids=yes
conn 2gateway-to-gateway1
        type=tunnel
        auto=start
        keyexchange=ikev2
        authby=secret
        left=192.168.56.6
        leftsubnet=10.20.1.1/24
        right=192.168.56.7
        rightsubnet=10.10.1.1/24
        ike=aes256-sha1-modp1024!
        esp=aes256-sha1!
        aggressive=no
        keyingtries=%forever
        ikelifetime=28800s
        lifetime=3600s
        dpddelay=30s
        dpdtimeout=120s
        dpdaction=restart

위의 각 구성 매개변수를 간략하게 설명하겠습니다.

  • config setup – 모든 연결에 적용되는 IPSec에 대한 일반 구성 정보를 정의합니다.
  • charondebug – Charon 디버깅 출력을 기록할 양을 지정합니다.
  • uniqueids – 특정 참가자 ID를 고유하게 유지해야 하는지 여부를 정의합니다.
  • conn Gateway1-to-gateway2 – 연결 이름을 설정하는 데 사용됩니다.
  • 유형 – 연결 유형을 정의합니다.
  • 자동 – IPSec이 시작되거나 다시 시작될 때 연결을 처리하는 방법을 선언하는 데 사용됩니다.
  • keyexchange – 사용할 IKE 프로토콜 버전을 선언합니다.
  • authby – 피어가 서로를 인증하는 방법을 지정합니다.
  • 왼쪽 – 왼쪽 참가자의 공용 네트워크 인터페이스의 IP 주소를 선언합니다.
  • leftsubnet – 왼쪽 참가자 뒤에 있는 개인 서브넷을 선언합니다.
  • right – 올바른 참가자의 공용 네트워크 인터페이스의 IP 주소를 선언합니다.
  • rightsubnet – 왼쪽 참가자 뒤에 있는 개인 서브넷을 선언합니다.
  • ike – 사용할 IKE/ISAKMP SA 암호화/인증 알고리즘 목록을 선언하는 데 사용됩니다. 이는 쉼표로 구분된 목록일 수 있습니다.
  • esp – 연결에 사용할 ESP 암호화/인증 알고리즘 목록을 지정합니다.
  • 공격적 – 공격적 모드를 사용할지 기본 모드를 사용할지 선언합니다.
  • keyingtries – 연결 협상을 위해 시도해야 하는 횟수를 선언합니다.
  • ikelifetime – 재협상되기 전에 연결의 키잉 채널이 지속되어야 하는 기간을 지정합니다.
  • 수명 – 성공적인 협상부터 만료까지 특정 연결 인스턴스가 지속되어야 하는 기간을 지정합니다.
  • dpddelay – R_U_THERE 메시지/INFORMATIONAL 교환이 피어에 전송되는 시간 간격을 선언합니다.
  • dpdtimeout – 시간 초과 간격을 선언하는 데 사용되며, 그 이후에는 활동이 없을 경우 피어에 대한 모든 연결이 삭제됩니다.
  • dpdaction – DPD(Dead PeerDetection) 프로토콜을 사용하여 연결을 관리하는 방법을 지정합니다.

ipsec.conf 매뉴얼 페이지를 읽으면 StrongSwan IPsec 하위 시스템의 모든 구성 매개변수에 대한 설명을 찾을 수 있습니다.

man ipsec.conf

4단계: P2P 인증을 위한 PSK 구성

10. 다음으로 피어가 인증에 사용할 강력한 PSK를 생성해야 합니다.

head -c 24 /dev/urandom | base64

11. 두 보안 게이트웨이의 /etc/strongswan/ipsec.conf 파일에 PSK를 추가합니다.

vi /etc/strongswan/ipsec.secrets

파일에 다음 줄을 입력합니다.

#Site 1 Gateway
192.168.56.7  192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

#Site 1 Gateway
192.168.56.6  192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"

12. 그런 다음 strongsan 서비스를 시작하고 연결 상태를 확인합니다.

systemctl restart strongswan
strongswan status

13. ping 명령을 실행하여 보안 게이트웨이 중 하나에서 프라이빗 서브넷에 액세스할 수 있는지 테스트합니다.

ping 10.20.1.1
ping 10.10.1.1

14. 마지막으로 연결을 수동으로 시작/중단하는 strongswan 명령에 대해 자세히 알아보려면 Strongswan 도움말 페이지를 참조하세요.

strongswan --help

지금은 여기까지입니다! 귀하의 생각을 우리와 공유하거나 질문하려면 아래 피드백 양식을 통해 우리에게 연락하십시오. 새로운 swanctl 유틸리티와 더욱 유연한 새 구성 구조에 대해 자세히 알아보려면 StrongSwan 사용자 문서를 참조하세요.