6.14. IPsec 구성 문제 해결


설정이 일치하지 않는 설정, 방화벽 규칙 및 커널 수준 오류로 인해 문제가 발생할 수 있으므로 IPsec 구성 오류를 진단하는 것은 어려울 수 있습니다. 다음 정보는 IPsec VPN 연결의 일반적인 문제를 해결하기 위한 체계적인 접근 방식을 제공합니다.

6.14.1. 기본 연결 문제

VPN 연결 문제는 종종 엔드포인트 간 구성이 일치하지 않기 때문에 발생합니다.

IPsec 연결이 설정되었는지 확인하려면 다음을 입력합니다.

# ipsec trafficstatus
006 #8: "vpn.example.com"[1] 192.0.2.1, type=ESP, add_time=1595296930, inBytes=5999, outBytes=3231, id='@vpn.example.com', lease=198.51.100.1/32

성공적인 연결을 위해 명령은 연결 이름과 세부 정보가 있는 항목을 표시합니다. 출력이 비어 있으면 터널이 설정되지 않습니다.

6.14.3. 일치하지 않는 구성

VPN 연결은 일치하는 인터넷 키 교환(IKE) 버전, 알고리즘, IP 주소 범위 또는 PSK(사전 공유 키)로 끝점이 구성되지 않은 경우 실패합니다. 불일치를 식별하는 경우 문제를 해결하기 위해 두 끝점에 설정을 조정해야 합니다.

remote Peer Not Running IKE/IPsec

연결이 거부되면 ICMP 오류가 표시됩니다.

# ipsec up vpn.example.com
...
000 "vpn.example.com"[1] 192.0.2.2 #16: ERROR: asynchronous network error report on wlp2s0 (192.0.2.2:500), complainant 198.51.100.1: Connection refused [errno 111, origin ICMP type 3 code 3 (not authenticated)]
일치하지 않는 IKE 알고리즘

초기 설정 중에 NO_PROPOSAL_CHOSEN 알림으로 연결이 실패합니다.

# ipsec up vpn.example.com
...
003 "vpn.example.com"[1] 193.110.157.148 #3: dropping unexpected IKE_SA_INIT message containing NO_PROPOSAL_CHOSEN notification; message payloads: N; missing payloads: SA,KE,Ni
일치하지 않는 IPsec 알고리즘

초기 교환 후 NO_PROPOSAL_CHOSEN 오류로 인해 연결이 실패합니다.

# ipsec up vpn.example.com
...
182 "vpn.example.com"[1] 193.110.157.148 #5: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_256 group=MODP2048}
002 "vpn.example.com"[1] 193.110.157.148 #6: IKE_AUTH response contained the error notification NO_PROPOSAL_CHOSEN
일치하지 않는 IP 주소 범위(IKEv2)

원격 피어는 TS_UNACCEP Cryostat 오류로 응답합니다.

# ipsec up vpn.example.com
...
1v2 "vpn.example.com" #1: STATE_PARENT_I2: sent v2I2, expected v2R2 {auth=IKEv2 cipher=AES_GCM_16_256 integ=n/a prf=HMAC_SHA2_512 group=MODP2048}
002 "vpn.example.com" #2: IKE_AUTH response contained the error notification TS_UNACCEPTABLE
일치하지 않는 IP 주소 범위(IKEv1)

빠른 모드에서 연결이 시간 초과되고 피어가 제안을 수락하지 않았음을 나타냅니다.

# ipsec up vpn.example.com
...
031 "vpn.example.com" #2: STATE_QUICK_I1: 60 second timeout exceeded after 0 retransmits.  No acceptable response to our first Quick Mode message: perhaps peer likes no proposal
일치하지 않는 PSK(IKEv2)

피어는 AUTHENTICATION_FAILED 오류와의 연결을 거부합니다.

# ipsec up vpn.example.com
...
003 "vpn.example.com" #1: received Hash Payload does not match computed value
223 "vpn.example.com" #1: sending notification INVALID_HASH_INFORMATION to 192.0.2.23:500
일치하지 않는 PSK(IKEv1)

해시 페이로드가 일치하지 않으므로 IKE 메시지를 읽을 수 없게 만들고 INVALID_HASH_INFORMATION 오류가 발생합니다.

# ipsec up vpn.example.com
...
002 "vpn.example.com" #1: IKE SA authentication request rejected by peer: AUTHENTICATION_FAILED

6.14.4. MTU 문제

최대 전송 단위(MTU) 문제로 인한 간헐적인 IPsec 연결 오류를 진단합니다. 암호화는 패킷 크기를 증가시켜 패킷이 더 큰 데이터 전송에서 볼 때 종종 네트워크의 MTU를 초과할 때 조각화 및 손실될 수 있습니다.

일반적인 원인은 ping과 같은 작은 패킷(예: ping이 올바르게 작동하지만 SSH 세션과 같은 큰 패킷)이 로그인 후 정지된다는 것입니다. 문제를 해결하려면 구성 파일에 mtu=1400 옵션을 추가하여 터널의 MTU를 낮추십시오.

6.14.5. NAT 충돌

IPsec 호스트가 NAT 라우터 역할을 할 때 발생하는 NAT 충돌을 해결합니다. 잘못된 NAT 애플리케이션은 암호화 전에 소스 IP 주소를 변환하여 네트워크를 통해 패킷이 암호화되지 않은 상태로 전송될 수 있습니다.

예를 들어 IPsec 암호화를 적용하기 전에 패킷의 소스 IP 주소가 masquerade 규칙에 의해 변환되면 패킷의 소스 소스가 더 이상 IPsec 정책과 일치하지 않으며 Libreswan은 네트워크를 통해 암호화되지 않은 상태로 보냅니다.

이 문제를 해결하려면 NAT에서 IPsec 서브넷 간 트래픽을 제외하는 방화벽 규칙을 추가합니다. 이 규칙은 POSTROUTING 체인의 시작 부분에 삽입하여 일반 NAT 규칙보다 먼저 처리되도록 해야 합니다.

예 6.1. nftables 프레임워크 사용 방법

다음 예제에서는 nftables 를 사용하여 주소 변환에서 192.0.2.0/24와 198.51.100.0/24 서브넷 간의 트래픽을 제외하는 기본 NAT 환경을 설정합니다.

# nft add table ip nat
# nft add chain ip nat postrouting { type nat hook postrouting priority 100 \; }
# nft add rule ip nat postrouting ip saddr 192.0.2.0/24 ip daddr 198.51.100.0/24 return

6.14.6. 커널 수준 IPsec 문제

VPN 터널이 설정되었지만 트래픽 흐름이 없는 경우 커널 수준 IPsec 문제를 해결합니다. 이 경우 커널의 IPsec 상태를 검사하여 터널 정책 및 암호화 키가 올바르게 설치되었는지 확인합니다.

이 프로세스에는 다음 두 가지 구성 요소를 확인하는 작업이 포함됩니다.

  • SPD(Security Policy Database): 커널에 암호화할 트래픽을 지시하는 규칙입니다.
  • 보안 연결 데이터베이스(SAD): 커널에 해당 트래픽을 암호화하는 방법을 지시하는 키입니다.

먼저 SPD에 올바른 정책이 있는지 확인합니다.

# ip xfrm policy
src 192.0.2.1/32 dst 10.0.0.0/8
	dir out priority 666 ptype main
	tmpl src 198.51.100.13 dst 203.0.113.22
		proto esp reqid 16417 mode tunnel

출력에는 왼쪽subnet 및 rightsubnet 매개변수와 일치하는 정책이 포함되어 있어야 합니다. 트래픽에 대한 정책이 표시되지 않으면 Libreswan이 커널 규칙을 생성하지 못하고 트래픽이 암호화되지 않습니다.

정책이 존재하는 경우 SAD에 해당 키 세트가 있는지 확인합니다.

# ip xfrm state
src 203.0.113.22 dst 198.51.100.13
	proto esp spi 0xa78b3fdb reqid 16417 mode tunnel
	auth-trunc hmac(sha1) 0x3763cd3b... 96
	enc cbc(aes) 0xd9dba399...
주의

이 명령은 개인 암호화 키를 표시합니다. 공격자가 VPN 트래픽을 해독하는 데 사용할 수 있으므로 이 출력을 공유하지 마십시오.

정책이 존재하지만 동일한 reqid 를 가진 해당 상태가 없는 경우 일반적으로 인터넷 키 교환(IKE) 협상에 실패했습니다. 두 VPN 엔드 포인트가 일련의 키에 동의할 수 없었습니다.

자세한 진단을 위해 명령 중 하나와 함께 -s 옵션을 사용합니다. 이 옵션은 커널에서 특정 규칙으로 패킷을 처리하는지 확인하는 데 도움이 될 수 있는 트래픽 카운터를 추가합니다.

6.14.7. 커널 IPsec 하위 시스템 버그

커널의 IPsec 하위 시스템의 결함으로 인해 IKE 데몬과 동기화가 손실될 수 있습니다. 이로 인해 협상된 보안 연결과 실제 IPsec 정책 시행 사이에 불일치가 발생하여 보안 네트워크 통신이 중단될 수 있습니다.

커널 수준 오류를 확인하려면 변환(XFRM) 통계를 표시합니다.

# cat /proc/net/xfrm_stat

XfrmInError 와 같은 출력의 카운터 중 하나가 0이 아닌 값을 표시하는 경우 커널 하위 시스템에 문제가 있음을 나타냅니다. 이 경우 지원 케이스 를 열고 해당 IKE 로그와 함께 명령의 출력을 연결합니다.

6.14.8. Libreswan 로그 표시

IPsec 서비스 이벤트 및 문제를 진단하고 해결하기 위해 Libreswan 로그를 표시합니다. ipsec 서비스의 저널에 액세스하여 연결 상태 및 잠재적인 문제에 대한 통찰력을 얻습니다.

저널을 표시하려면 다음을 입력합니다.

# journalctl -xeu ipsec

기본 로깅 수준이 충분한 세부 정보를 제공하지 않는 경우 /etc/ipsec.conf 파일의 config setup 섹션에 다음 설정을 추가하여 포괄적인 디버그 로깅을 활성화합니다.

plutodebug=all
logfile=/var/log/pluto.log

디버그 로깅은 많은 항목을 생성할 수 있으므로 메시지를 전용 로그 파일로 리디렉션하면 journaldsystemd 서비스가 메시지를 속도가 제한되지 않을 수 있습니다.

Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2026 Red Hat
맨 위로 이동