6.3. 원시 RSA 키 인증을 사용하여 IPsec 호스트 간 VPN을 수동으로 구성
호스트 간 VPN은 두 장치 간에 직접, 보안 및 암호화된 연결을 설정하여 애플리케이션과 인터넷과 같은 비보안 네트워크를 통해 안전하게 통신할 수 있습니다.
인증을 위해 RSA 키는 대칭 암호화가 공유 보안의 위험을 제거하기 때문에 PSK(사전 공유 키)보다 안전합니다. RSA 키를 사용하면 강력한 피어 투 피어 인증을 제공하면서 CA(인증 기관)의 필요성을 방지하여 배포가 간소화됩니다.
두 호스트 모두에서 단계를 수행합니다.
프로세스
Libreswan이 아직 설치되지 않은 경우 다음 단계를 수행합니다.
libreswan
패키지를 설치합니다.dnf install libreswan
# dnf install libreswan
Copy to Clipboard Copied! Toggle word wrap Toggle overflow NSS(Network Security Services) 데이터베이스를 초기화합니다.
ipsec initnss
# ipsec initnss
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은
/var/lib/ipsec/nss/
디렉터리에 데이터베이스를 생성합니다.ipsec
서비스를 활성화하고 시작합니다.systemctl enable --now ipsec
# systemctl enable --now ipsec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 방화벽에서 IPsec 포트 및 프로토콜을 엽니다.
firewall-cmd --permanent --add-service="ipsec" firewall-cmd --reload
# firewall-cmd --permanent --add-service="ipsec" # firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
RSA 키 쌍을 생성합니다.
ipsec newhostkey
# ipsec newhostkey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ipsec
유틸리티는 키 쌍을 NSS 데이터베이스에 저장합니다.- 피어를 지정합니다. IPsec 터널에서는 하나의 호스트를 왼쪽으로 지정하고 다른 하나는 오른쪽으로 지정해야 합니다. 이는 임의의 선택 사항입니다. 일반적인 방법은 로컬 호스트 왼쪽 과 원격 호스트를 오른쪽으로 호출하는 것입니다.
왼쪽 및 오른쪽 피어 모두에서 인증서 키 속성 ID(CKAID)를 표시합니다.
ipsec showhostkey --list
# ipsec showhostkey --list < 1> RSA keyid: <key_id> ckaid: <ckaid>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 단계에서 두 피어의 CKAID가 필요합니다.
공개 키를 표시합니다.
왼쪽 피어에서 다음을 입력합니다.
ipsec showhostkey --left --ckaid <ckaid_of_left_peer>
# ipsec showhostkey --left --ckaid <ckaid_of_left_peer> # rsakey AwEAAdKCx leftrsasigkey=0sAwEAAdKCxpc9db48cehzQiQD...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 오른쪽 피어에서 다음을 입력합니다.
ipsec showhostkey --right --ckaid <ckaid_of_right_peer>
# ipsec showhostkey --right --ckaid <ckaid_of_right_peer> # rsakey AwEAAcNWC rightrsasigkey=0sAwEAAcNWCzZO+PR1j8WbO8X...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
명령은 구성 파일에서 사용해야 하는 해당 매개 변수가 있는 공개 키를 표시합니다.
/etc/ipsec.d/
디렉터리에 연결에 대한.conf
파일을 만듭니다. 예를 들어 다음 설정을 사용하여/etc/ipsec.d/host-to-host.conf
파일을 만듭니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고두 호스트 모두에서 동일한 구성 파일을 사용할 수 있으며 Libreswan은 내부 정보를 사용하여 왼쪽 또는 오른쪽 호스트에서 작동하는지 확인합니다. 그러나
왼쪽*
매개변수의 모든 값이 하나의 피어에 속하고올바른*
매개변수의 값이 다른 값에 속하는 것이 중요합니다.예제에 지정된 설정은 다음과 같습니다.
conn <connection_name>
- 연결 이름을 정의합니다. 이름은 임의의 이름이며 Libreswan은 연결을 식별하는 데 사용합니다. 이 연결에서 매개 변수를 하나 이상의 공백 또는 탭으로 들여써야 합니다.
auto=<type>
-
연결이 시작되는 방법을 제어합니다.
시작할
값을 설정하면 Libreswan이 서비스가 시작될 때 자동으로 연결을 활성화합니다. authby=rsasig
- 이 연결에 대해 RSA 서명 인증을 활성화합니다.
left= <ip_address_or_fqdn_of_left_peer
> 및right= <ip_address_or_fqdn_of_right_peer
>- 피어의 IP 주소 또는 DNS 이름을 정의합니다.
leftid= <id>
및rightid= <id>
-
각 피어가IKE(Internet Key Exchange) 협상 프로세스 중에 식별되는 방법을 정의합니다. FQDN(정규화된 도메인 이름), IP 주소 또는 리터럴 문자열일 수 있습니다. 후자의 경우 문자열 앞에
@
기호가 있습니다. leftrsasigkey= <public_key
> 및rightrsasigkey= <public_key>
-
피어의 공개 키를 지정합니다. 이전 단계에서
ipsec showhostkey
명령으로 표시되는 값을 사용합니다.
ipsec
서비스를 다시 시작하십시오.systemctl restart ipsec
# systemctl restart ipsec
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 구성 파일에서
auto=start
를 사용하면 연결이 자동으로 활성화됩니다. 다른 방법을 사용하면 연결을 활성화하려면 추가 단계가 필요합니다. 자세한 내용은 시스템의ipsec.conf(5)
도움말 페이지를 참조하십시오.
검증
IPsec 상태를 표시합니다.
ipsec status
# ipsec status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 연결이 성공적으로 설정된 경우 출력에는 다음과 같은 행이 포함됩니다.
인터넷 키 교환 버전 2(IKEv2) 협상의 1단계가 성공적으로 완료되었습니다.
000 #1: "<connection_name>":500 STATE_V2_ESTABLISHED_IKE_SA (established IKE SA); REKEY in 27935s; REPLACE in 28610s; newest; idle;
000 #1: "<connection_name>":500 STATE_V2_ESTABLISHED_IKE_SA (established IKE SA); REKEY in 27935s; REPLACE in 28610s; newest; idle;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 보안 연계(SA)는 이제 자식 SA 또는 2단계 SA로 알려진 실제 데이터 암호화 터널을 협상할 준비가 되었습니다.
하위 SA가 설정되었습니다.
000 #2: "<connection_name>":500 STATE_V2_ESTABLISHED_CHILD_SA (established Child SA); REKEY in 27671s; REPLACE in 28610s; IKE SA #1; idle;
000 #2: "<connection_name>":500 STATE_V2_ESTABLISHED_CHILD_SA (established Child SA); REKEY in 27671s; REPLACE in 28610s; IKE SA #1; idle;
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 데이터 트래픽이 통과하는 실제 터널입니다.
다음 단계
- DHCP 또는 SLAAC(상태 비저장 주소 자동 구성)가 있는 네트워크에서 이 호스트를 사용하는 경우 연결이 리디렉션될 수 있습니다. 자세한 내용 및 완화 단계는 연결이 터널을 우회하지 못하도록 전용 라우팅 테이블에 VPN 연결 할당을 참조하십시오.