우분투 StrongSwan VPN 구축 후 작은 문제가 있습니다...
config setup
strictcrlpolicy=yes
uniqueids=never
conn ikev2-vpn
auto=add
compress=no
type=tunnel
keyexchange=ikev2
fragmentation=yes
forceencaps=yes
ike=aes256gcm16-prfsha512-ecp256,aes256gcm16-prfsha384-ecp256,aes256-sha256-ecp256,aes256-sha2_256-prfsha256-modp1024!
esp=aes256gcm16-ecp256,aes256-sha256-ecp256,aes256-sha1-modp1024!
dpdaction=clear
dpddelay=300s
rekey=no
left=%any
leftid=@domain
leftcert=/etc/ipsec.d/certs/cert.pem
leftsendcert=always
leftsubnet=0.0.0.0/0
right=%any
rightid=%any
rightauth=eap-mschapv2
eap_identity=%identity
rightsourceip=10.10.10.0/24
rightdns=1.1.1.1,1.0.0.1
rightsendcert=never
우선 저의 VPN 설정 정보입니다..
아이폰으로 확인하여 접근은 매우 잘 되고 있고 내부망 접속도 아주 잘됩니다.
SMB 접근은 물론 공유기 페이지까지 너무 잘 되는데!
문제는 웹사이트 입니다.
특정 사이트는 내부망을 통해서만 들어올 수 있도록 하려고 구축하였으나 계속 접근이 불가합니다..
아래는 nginx site conf 설정파일 내용 입니다.
server {
listen 80;
server_name domain;
root /web/test;
server_tokens off;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
charset utf-8;
access_log /var/log/nginx/test.domain.kr.access.log main;
error_log /var/log/nginx/test.domain.kr.error.log error;
set_real_ip_from 10.10.10.0/24; # VPN 서브넷 범위
real_ip_header X-Forwarded-For;
real_ip_recursive on;
allow 172.30.1.0/24;
allow 10.10.10.0/24;
deny all;
location / {
index index.php index.html;
}
}
set_real_ip_from 10.10.10.0/24; # VPN 서브넷 범위
real_ip_header X-Forwarded-For;
real_ip_recursive on;
allow 172.30.1.0/24;
allow 10.10.10.0/24;
deny all;
이 부분은 GPT의 조언을 받아 추가했습니다.
VPN에서 10.10.10.1 을 할당해준것을 확인했고..
위 사이트에서 정상적으로 공인 IP 가 변경된것을 확인했습니다.
210.x.x.x
그러나 VPN을 활성화 한 후 웹사이트에 접근하여 access log를 확인하면 전혀 다른 IP가 등장하여 allow 에서 막히고 있습니다..
아무리 찾아봐도 이유는 안나오고.. 왜 그러는걸까요...
사용중인 OS 정보 [Welcome to Ubuntu 22.04.3 LTS (GNU/Linux 5.15.0-84-generic x86_64)]
사용한 기기 [아이폰8 IOS 16.7]
GPT와 2시간 가량 대화를 하며 확인해봤으나 다양한 이유를 알려주며 해결방안을 전달받았지만 전부 실패하여 질문드립니다.
감사합니다.


좋은답변을 받기위해서는 좋은 질문이 필요합니다.
유의할점⚠️
- 예의를 지켜주세요. 답변자는 답변을 할 의무는 없습니다.
- 질문에 대한 대부분의 답은 검색으로 찾아보실 수 있습니다.
- 답변자가 답변을 하면서 대개 많은 경우는 다시 질문을 하는 경우가 많이 있습니다.
- (질문의 대한 정보가 부족합니다. ~일 경우 결과물이 어떻게 됩니까? 등등)
질문방법🙏
자신의 상황을 최대한 자세히 설명해주세요.
상황이 정확하고 많을 수록 답변의 정확도가 올라갑니다.
ex) 헤놀로지라면 어떠한 로더의 이미지를 사용했는지.(arpl-i18n, mshell), 어떤 버전을 사용했는지 문제가있다면 어떠한것인지 스크린샷을 동반하고 에러의 경우 에러로그를 출력해서 주시면 좋습니다.
*가능하면 최신버전 OS/SW를 이용해주세요
답변에대한 피드백을 주세요.
정보가 질문에 모두 담겨있지않다면 대부분의 답변이 다른정보를 요구합니다.
이러한 답변에 대해 명확한 피드백을 주시면 도움이 됩니다.
이유는 도메인으로 접속을 한다면 네임서버를 거치게 되고 이에 사용자님의 ip는 접속하는 서버에서는 내부가 아니라 외부망 아이피로 찍히게 됩니다.
당연히 allow를 사용자님의 외부 아이피로만 하시게 되면 사용이 가능하십니다. 특정 VPN에서 접속하시려한다면 운영하시는 vpn에 주소를 allow하시면 되겠습니다
여러가지로 시도해보고 있는데 VPN을 활성화 후 https://ip.pe.kr/ 에 접속하면 제 공인 IP가 정상적으로 나오는걸 확인했습니다.
말씀해주신 방법대로 allow 규칙에 제 공인 IP를 추가했습니다..
allow 172.30.1.0/24;
allow 10.10.10.0/24;
allow 210.*.*.*;
그래도 여전히 접근이 불가합니다.
사이트 access.log 및 error.log를 확인해보면 VPN의 공인 IP가 아닌 외부 PC의 공인IP로 접근하여 allow 규칙을 통과하지못하고 403 에러가 발생하는걸로 확인했습니다.
서버 환경이 PHP이며 $_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP 로 확인해보았으나 VPN을 활성화했음에도 불구하고 다른 공인 IP가 나오네요.
네 그렇습니다.
클라우드플레어 이용중이며 DNS 전용으로 쓰고있습니다.
해당 깃허브를 참초하셔서 nginx conf를 변경하시면 좋을듯합니다
클라우드플레어에서 DNS only 만 활성화하고 있어서 클라우드플레어의 IP가 넘어오진않습니다.
테스트중인 외부 PC 사설 IP - 221.147.*.*
VPN 의 사설 IP - 210.95.*.*
클라우드플레어를 사용하지않고 다른네임서버를 이용하는 서버는 VPN의 IP가 정상적으로 출력되나..
클라우드플레어 네임서버를 이용하고있는 도메인은 사용중인 PC의 사설 IP가 나와버리네요. ( 221.147.*.* )
https://github.com/hwdsl2/setup-ipsec-vpn/issues/486
저와 완전 동일한 증상을 가진분이 있던데.. AD DNS 를 통해서 해결했다고 하나 무슨내용인지 전혀 모르겠네요..
cmt alert