
감사합니다. 모든 개인 인터넷 트래픽을 라우팅하기 위해 EC2 인스턴스에 VPN 서버를 설정하고 싶지만 제대로 작동하지 않습니다. 어떤 도움이라도 주시면 감사하겠습니다.
다음 설정이 있습니다.
Private Network 10.0.0.0/24 | Internet | AWS VPC / Subnet 10.0.1.0/24
PC Fritzbox Router IGW EC2
10.0.0.11 ---- 10.0.0.1 ------| -- MyPublicLocalIP -- EC2PublicIP --| ------ 10.0.1.193
라우터에는 EC2 인스턴스에서 실행되는 Strongswan 인스턴스에 대한 IPSec 연결이 있습니다. EC2 인스턴스의 네트워크 인터페이스에는 소스/대상 확인이 비활성화되어 있습니다. 보안 그룹은 PublicLocalIP 및 서브넷("모든 소스 허용"도 시도함) 및 대상에서 소스가 포함된 모든 트래픽을 허용합니다.
VPN 연결을 설정할 수 있으며 개인 네트워크에서 10.0.1.142 및 10.0.1.1을 ping할 수 있습니다. EC2 인스턴스 자체도 8.8.8.8과 같은 퍼블릭 IP를 ping할 수 있습니다. 하지만 tshark를 사용하여 EC2 인스턴스에서 한 방향으로 이동하는 패킷을 볼 수 있음에도 불구하고 개인 네트워크에서 8.8.8.8 또는 다른 공용 IP를 핑할 수 없습니다.
tshark -f "icmp"
10 7.320371756 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=1/256, ttl=63 11 8.332639368 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=2/512, ttl=63 12 9.356457465 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=3/768, ttl=63 13 10.380464177 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=4/1024, ttl=63 14 11.404715789 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=5/1280, ttl=63 15 12.428989444 10.0.0.11 → 8.8.8.8 ICMP 98 에코(ping) 요청 id=0x0034, seq=6/1536, ttl=63
EC2 ipsec.conf입니다.
구성 설정 연결 %기본값 유형=터널 왼쪽=%모두 leftid=EC2PublicIP 왼쪽서브넷=0.0.0.0/0 자동=추가 조각화=예 forceencaps=아니요 모바이크=예 왼쪽 인증=psk 오른쪽 인증=psk 페이스북 ike=aes256-sha-modp1024 esp=aes256-sha1-modp1024 오른쪽=MyPublicLocalFQ.net [이메일 보호됨] 오른쪽서브넷=10.0.0.0/24 rightdns=8.8.8.8,8.8.4.4 ikelifetime=3600초 키 수명=3600초
이것은 Fritzbox 라우터 IPSec 구성입니다.
vpncfg { 연결 { 활성화 = 아니요; 편집 가능 = 예; conn_type = conntype_lan; 이름 = "EC2VPN"; boxuser_id = 0; Always_renew = 예; accept_not_encrypted = 아니요; dont_filter_netbios = 예; 로컬립 = 0.0.0.0; local_virtualip = 0.0.0.0; 원격IP = 0.0.0.0; 원격_가상립 = 0.0.0.0; keepalive_ip = 0.0.0.0; 지역 ID { fqdn = "MyPublicLocalFQ.net"; } 원격 ID { fqdn = "EC2PublicIP"; } 모드 = Phase1_mode_idp; Phase1ss = "전체/전체/전체"; 키 유형 = connkeytype_pre_shared; 키 = "THE_PSK_KEY"; cert_do_server_auth = 아니요; use_nat_t = 예; use_xauth = 아니오; use_cfgmode = 아니오; Phase2localid { IP넷 { ipaddr = 10.0.0.0; 마스크 = 255.255.255.0; } } Phase2remoteid { IP넷 { ipaddr = 10.0.1.0; 마스크 = 255.255.255.0; } } Phase2ss = "esp-all-all/ah-none/comp-all/pfs"; accesslist = "모든 IP 허용"; } ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500", "udp 0.0.0.0:4500 0.0.0.0:4500"; }
IPsec 상태 전체
IKE charon 데몬 상태(strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64): 가동 시간: 91초, 2020년 12월 13일 01:57:01 이후 malloc: sbrk 1622016, mmap 0, 사용된 648096, 무료 973920 작업자 스레드: 유휴 16개 중 11개, 작업 중 5/0/0/0, 작업 대기열: 0/0/0/0, 예약됨: 3 로드된 플러그인: charon aesni aes rc2 sha2 sha1 md5 mgf1 무작위 nonce x509 취소 제약 조건 pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp 에이전트 xcbc hmac gcm drbg attr kernel-netlink 해결 소켓 기본 connmark 스트로크 업다운 eap-mschapv2 xauth -일반 카운터 수신 IP 주소: 10.0.1.193 사이: fb: %모든...MyPublicLocalFQ IKEv1/2 fb: local: [EC2PublicIP]는 사전 공유 키 인증을 사용합니다. fb: 원격: [MyPublicLocalFQ]는 사전 공유 키 인증을 사용합니다. fb: 하위: 0.0.0.0/0 === 10.0.0.0/24 터널 보안 연결(1개, 0개 연결): fb[2]: 90초 전에 설정됨, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ] fb[2]: IKEv1 SPI: c1c1ef074becc316_i 3e3007efcc116605_r*, 43분 내에 사전 공유 키 재인증 fb[2]: IKE 제안: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024 fb{1}: 설치됨, 터널, 필수 ID 1, UDP SPI의 ESP: cba035a9_i 4fbe83d8_o fb{1}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 5610 bytes_i(83 pkts, 74초 전), 840 bytes_o(10 pkts, 74초 전), 43분 후 키 재생성 fb{1}: 10.0.1.0/24 === 10.0.0.0/24
iptables-저장
# 2020년 12월 13일 일요일 02:30:39에 iptables-save v1.8.4에 의해 생성됨 *압착 롤러 :라우팅 사전 승인 [214:19671] :입력 수락 [163:15822] :앞으로 수락 [0:0] :출력 수락 [82:7863] :포스트라우팅 수락 [82:7863] -A FORWARD -s 10.0.0.0/24 -o eth0 -p tcp -m 정책 --dir in --pol ipsec -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1361:1536 -j TCPMSS --set-mss 1360 저지르다 # 2020년 12월 13일 일요일 02:30:39 완료 # 2020년 12월 13일 일요일 02:30:39에 iptables-save v1.8.4에 의해 생성됨 *낫 :라우팅 사전 승인 [51:3849] :입력 수락 [0:0] :출력 수락 [4:361] :포스트라우팅 수락 [4:361] -A POSTROUTING -s 10.0.0.0/24 -o eth0 -m 정책 --dir out --pol ipsec -j ACCEPT -A 포스트라우팅 -s 10.0.0.0/24 -o eth0 -j 마스커레이드 저지르다 # 2020년 12월 13일 일요일 02:30:39 완료 # 2020년 12월 13일 일요일 02:30:39에 iptables-save v1.8.4에 의해 생성됨 *필터 :입력 드롭 [0:0] :앞으로 드롭 [0:0] :출력 승인 [0:0] :ufw-이후-앞으로 - [0:0] :ufw-입력 후 - [0:0] :ufw-로그인 후-앞으로 - [0:0] :ufw-로깅 후-입력 - [0:0] :ufw-로깅 후-출력 - [0:0] :ufw-출력 후 - [0:0] :ufw-앞-앞으로 - [0:0] :ufw-입력 전 - [0:0] :ufw-전-로깅-포워드 - [0:0] :ufw-로깅 전-입력 - [0:0] :ufw-로깅 전-출력 - [0:0] :ufw-출력 전 - [0:0] :ufw-로깅-허용 - [0:0] :ufw-로깅-거부 - [0:0] :ufw-not-local - [0:0] :ufw-거부-전달 - [0:0] :ufw-거부-입력 - [0:0] :ufw-거부-출력 - [0:0] :ufw-정책 전달로 건너뛰기 - [0:0] :ufw-정책 입력으로 건너뛰기 - [0:0] :ufw-skip-to-policy-output - [0:0] :ufw-트랙-앞으로 - [0:0] :ufw-트랙-입력 - [0:0] :ufw-트랙-출력 - [0:0] :ufw-사용자-전달 - [0:0] :ufw-사용자 입력 - [0:0] :ufw-사용자 제한 - [0:0] :ufw-사용자 제한-수락 - [0:0] :ufw-사용자-로깅-포워드 - [0:0] :ufw-사용자-로깅-입력 - [0:0] :ufw-사용자-로깅-출력 - [0:0] :ufw-사용자-출력 - [0:0] -A 입력 -j ufw-로깅 전-입력 -A 입력 -j 입력 전 ufw -A 입력 -j 입력 후 ufw -A 입력 -j ufw-로깅 후-입력 -A 입력 -j ufw-거부-입력 -A 입력 -j ufw-트랙-입력 -A FORWARD -j ufw-로깅 전-포워드 -A FORWARD -j ufw-앞으로-앞으로 -A FORWARD -j ufw-이후-앞으로 -A FORWARD -j ufw-로그인 후-앞으로 -A FORWARD -j ufw-거부-전달 -A FORWARD -j ufw-트랙 포워드 -A 출력 -j ufw-로깅 전-출력 -A 출력 -j 출력 전 ufw -A 출력 -j 출력 후 ufw -A 출력 -j ufw-로깅 후-출력 -A 출력 -j ufw-거부-출력 -A 출력 -j ufw-트랙-출력 -A ufw-입력 후 -p udp -m udp --dport 137 -j ufw-skip-to-policy-input -A ufw-입력 후 -p udp -m udp --dport 138 -j ufw-skip-to-policy-input -A ufw-입력 후 -p tcp -m tcp --dport 139 -j ufw-skip-to-policy-input -A ufw-입력 후 -p tcp -m tcp --dport 445 -j ufw-skip-to-policy-input -A ufw-입력 후 -p udp -m udp --dport 67 -j ufw-skip-to-policy-input -A ufw-입력 후 -p udp -m udp --dport 68 -j ufw-skip-to-policy-input -A ufw-입력 후 -m addrtype --dst-type BROADCAST -j ufw-skip-to-policy-input -A ufw-logging-forward -m 제한 --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " -A ufw-logging-input -m 제한 --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " -A ufw-before-forward -s 10.0.0.0/24 -m 정책 --dir in --pol ipsec --proto esp -j ACCEPT -A ufw-before-forward -d 10.0.0.0/24 -m 정책 --dir out --pol ipsec --proto esp -j ACCEPT -A ufw-before-forward -m conntrack --ctstate 관련, 설정됨 -j 수락 -A ufw-before-forward -p icmp -m icmp --icmp-type 3 -j 수락 -A ufw-before-forward -p icmp -m icmp --icmp-type 11 -j 수락 -A ufw-before-forward -p icmp -m icmp --icmp-type 12 -j 수락 -A ufw-before-forward -p icmp -m icmp --icmp-type 8 -j 수락 -A ufw-전달 전 -j ufw-사용자-전달 -A 입력 전 ufw -i lo -j 수락 -입력 전 ufw -m conntrack --ctstate 관련, 설정됨 -j 수락 -A ufw-입력 전 -m conntrack --ctstate INVALID -j ufw-logging-deny -A ufw-before-input -m conntrack --ctstate INVALID -j DROP -A 입력 전 ufw -p icmp -m icmp --icmp-type 3 -j 수락 -A 입력 전 ufw -p icmp -m icmp --icmp-type 11 -j 수락 -A 입력 전 ufw -p icmp -m icmp --icmp-type 12 -j 수락 -A 입력 전 ufw -p icmp -m icmp --icmp-type 8 -j 수락 -A 입력 전 ufw -p udp -m udp --sport 67 --dport 68 -j 수락 -입력 전 ufw -j ufw-not-local -A 입력 전 ufw -d 224.0.0.251/32 -p udp -m udp --dport 5353 -j 수락 -A 입력 전 ufw -d 239.255.255.250/32 -p udp -m udp --dport 1900 -j 수락 -A ufw-입력 전 -j ufw-사용자-입력 -A 출력 전 ufw -o lo -j 수락 -A ufw-before-output -m conntrack --ctstate 관련, 설정됨 -j 수락 -A ufw-출력 전 -j ufw-사용자-출력 -A ufw-logging-allow -m 제한 --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] " -A ufw-logging-deny -m conntrack --ctstate INVALID -m Limit --limit 3/min --limit-burst 10 -j RETURN -A ufw-logging-deny -m 제한 --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] " -A ufw-not-local -m addrtype --dst-type LOCAL -j RETURN -A ufw-not-local -m addrtype --dst-type MULTICAST -j RETURN -A ufw-not-local -m addrtype --dst-type BROADCAST -j RETURN -A ufw-not-local -m 제한 --limit 3/min --limit-burst 10 -j ufw-logging-deny -A ufw-not-local -j DROP -A ufw-정책 전달로 건너뛰기 -j DROP -A ufw-정책 입력으로 건너뛰기 -j DROP -A ufw-정책 출력으로 건너뛰기 -j 수락 -A ufw-track-output -p tcp -m conntrack --ctstate NEW -j 수락 -A ufw-트랙-출력 -p udp -m conntrack --ctstate NEW -j 수락 -A ufw-user-input -p tcp -m tcp --dport 22 -m comment --comment "\'dapp_OpenSSH\'" -j ACCEPT -A ufw-user-input -p udp -m multiport --dports 500,4500 -j 수락 -A ufw-user-limit -m 제한 --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] " -A ufw-user-limit -j REJECT --reject-with icmp-port-unreachable -A ufw-사용자 제한-수락 -j 수락 저지르다 # 2020년 12월 13일 일요일 02:30:39 완료
IP 경로
10.0.1.1 dev eth0 proto dhcp src 10.0.1.193 메트릭 100을 통한 기본값 10.0.1.0/24 dev eth0 proto 커널 범위 링크 src 10.0.1.193 10.0.1.1 dev eth0 proto dhcp 범위 링크 src 10.0.1.193 미터법 100
EC2는 Ubuntu 20.04.1 LTS 이미지를 사용합니다.
rightsourceip=10.10.10.0/24
또한 pahse2remoteid.ipnet.ipaddr을 table-save 출력의 ipaddr = 10.10.10.0
모든 항목을 table-restore로 바꾸고 사용하는 것으로 대체하여 ipsec에 추가하려고 시도했지만 여전히 작동하지 않았습니다. 풀이 할당되더라도 클라이언트는 VirtualIP를 할당받지 않습니다.10.0.0.0/24
10.10.10.0/24
IKE charon 데몬 상태(strongSwan 5.8.2, Linux 5.4.0-1029-aws, x86_64): 가동 시간: 32분, 2020년 12월 13일 01:09:10 이후 malloc: sbrk 1622016, mmap 0, 사용된 728048, 무료 893968 작업자 스레드: 유휴 16개 중 11개, 작업 중 5/0/0/0, 작업 대기열: 0/0/0/0, 예약됨: 3 로드된 플러그인: charon aesni aes rc2 sha2 sha1 md5 mgf1 무작위 nonce x509 취소 제약 조건 pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp 에이전트 xcbc hmac gcm drbg attr kernel-netlink 해결 소켓 기본 connmark 스트로크 업다운 eap-mschapv2 xauth -일반 카운터 가상 IP 풀(크기/온라인/오프라인): 10.10.10.0/24: 254/0/0 수신 IP 주소: 10.0.1.193 사이: fb: %모든...MyPublicLocalFQ.net IKEv1/2 fb: local: [EC2PublicIP]는 사전 공유 키 인증을 사용합니다. fb: 원격: [MyPublicLocalFQ.net]은 사전 공유 키 인증을 사용합니다. fb: 하위: 0.0.0.0/0 === 10.0.0.0/24 터널 라우팅된 연결: fb{1}: 라우팅됨, 터널, 필수 ID 1 fb{1}: 0.0.0.0/0 === 10.0.0.0/24 보안 연결(1개, 0개 연결): fb[2]: 32분 전에 설정됨, 10.0.1.193[EC2PublicIP]...MyPublicLocalIP[MyPublicLocalFQ.net] fb[2]: IKEv1 SPI: 0da6b7368f560272_i 166b8161eae230c8_r*, 12분 내에 사전 공유 키 재인증 fb[2]: IKE 제안: AES_CBC_256/HMAC_SHA1_96/PRF_HMAC_SHA1/MODP_1024 fb{2}: 설치됨, 터널, 필수 ID 2, UDP SPI의 ESP: cda4bbc0_i 1ea590b2_o fb{2}: AES_CBC_256/HMAC_SHA1_96/MODP_1024, 170072 bytes_i(2601 pkts, 26초 전), 1344 bytes_o(16 pkts, 26초 전), 12분 후 키 재설정 fb{2}: 10.0.1.0/24 === 10.0.0.0/24
어떤 아이디어라도 환영합니다.