PPTP/MS-CHAPv2 폐기: 레거시 VPN 런북
비밀번호를 길게 해도 MS-CHAPv2를 쓰는 PPTP가 개선되지는 않습니다. 인벤터리, 마이그레이션, 검증, 자격 증명 정리 단계를 순서대로 진행하세요.
매달 교체하고 금고에 보관하는 스무 자짜리 비밀번호도 MS-CHAPv2로 동작하는 PPTP 서버를 현대적인 VPN으로 바꾸지 못합니다. 비밀번호는 취약점이 교환 자체에 있는 교환의 입력값일 뿐입니다. 이 런북은 그 서버를 물려받아, 의존하는 사이트를 끊지 않으면서 사용자를 옮겨야 하는 사람을 위한 것입니다. 각 단계는 나중에 누군가 접근 권한이 왜 갑자기 바뀌었는지 물을 때 필요한 기록을 남기므로 단계를 순서대로 진행하세요.
무엇이든 손대기 전에 스택을 적어 두세요
PPTP라는 단어에는 세 계층이 겹쳐 있고, 각각은 자기 방식으로 실패합니다. 터널은 PPTP 자체이며 GRE와 TCP 1723입니다. 인증은 서버가 제공하는 PPP 방식이고 여기서는 MS-CHAPv2입니다. 링크 보호는 MPPE이며 그 키는 이 인증 교환에서 파생됩니다. 셋을 모두 이름 붙이면 나중의 수정이 엉뚱한 계층에 떨어지지 않습니다.
위키 페이지를 믿지 말고 살아 있는 구성을 읽고, 파일과 리스너, 마지막으로 인증된 세션을 기록하세요.
grep -RniE 'mschap|mppe|require-mppe' /etc/ppp/options.pptpd /etc/pptpd.conf
ss -lntp 'sport = :1723'
journalctl -u pptpd -n 40 --no-pager
Windows 원격 액세스 역할에서는 같은 인벤터리가 두 명령에서 나오며, 역할은 여러 방식을 동시에 광고할 수 있지만 현장의 클라이언트는 언제나 가장 약한 방식만 협상하므로 두 번째가 중요합니다.
Get-VpnAuthProtocol
netstat -ano | findstr :1723
오늘 터널이 실제로 무엇을 나르는지 결정하세요
대체를 고르기 전에 들고 다니는 노트북, 지사 라우터, 결제 단말, 현장 태블릿 묶음 같은 사용자를 나열하세요. 내부 호스트 하나에만 닿으면 되는 사용자는 옮기기 쉽습니다. 다시 플래시할 수 없는 하드웨어에 박혀 있는 사용자는 클라이언트 업그레이드 대신 중간 게이트웨이가 필요할 수 있으며, 그 결정은 전환 도중이 아니라 계획에 속합니다.
다음으로 로그인 교환을 관찰하거나 영향을 줄 수 있는 공격자가 무엇을 얻는지 물으세요. MS-CHAPv2에서는 사용자의 비밀번호를 오프라인으로 복구할 수 있는 재료가 답에 포함되며, 길이와 교체가 설계를 고치지 못하는 이유가 바로 그것입니다: 복구된 비밀은 사용자가 재사용한 모든 시스템에서 유효합니다.
MPPE도, 키가 그 교환에서 나오기 때문에 같은 약점을 물려받으며, 현대 AEAD 암호가 주는 패킷 단위 무결성과 재전송 처리를 제공하지 않습니다. 깨끗하게 인증된 세션은 설정된 검사와의 호환성만 증명했을 뿐입니다.
짧은 점심시간도 사용자가 적다는 것도 암호학적 속성을 정책적 속성으로 바꾸지 못합니다.
마이그레이션은 하나의 유지보수 창 안에서 실행하세요
대체를 세우고 파일럿 그룹 하나로 증명한 다음, 옛 리스너를 조용한 대비책으로 남기지 말고 중지하세요. 누구나 여전히 닿을 수 있는 대비책은 마이그레이션이 아니며, 전환을 번거로워하지 않는 사용자에게 약한 교환을 그대로 열어 둡니다.
sudo systemctl disable --now pptpd
sudo ss -lntp | grep -E ':(1723|1194|51820)\b'
sudo nft list ruleset | grep -i gre
같은 창에서 방화벽 경로를 닫으세요. GRE에는 기억할 포트가 없으므로 번호로 프로토콜 47을 허용하는 규칙은 놓치기 쉽고, 데몬이 사라진 뒤에도 서비스를 닿을 수 있게 남깁니다. 제거한 규칙과 이전 위치, 이유를 기록해 두면 이후 변경 검토가 그것을 실수로 되살리지 않습니다.
자격 증명은 구성과 분리해 다루세요. 클라이언트 프로필 제거는 폐기가 아니며, 다른 곳에서 여전히 인증되는 계정은 폐기되지 않은 것입니다.
대체가 PPTP가 하던 일을 하는지 검증하세요
체크리스트는 “연결되는가”가 아닙니다. 인증, 주소 할당, DNS 확인, 경로 선택, 재연결 동작, 피어 검증이 모두 대체 아래에서 성립하는가입니다. 각 항목을 파일럿 기기에서 그 순서대로 시험하고, 관찰한 결과를 기대치 옆에 적으세요.
ip -4 addr show tun0
ip route get 198.51.100.23
resolvectl query intranet.example.net
인터페이스의 주소는 협상이 끝났음을 증명합니다. 원격 쪽이 기대한 경로를 승인했다는 뜻은 아니며, 위의 조회는 이 호스트에만 답하고 전달된 LAN에는 답하지 않습니다. 리졸버 응답은 리졸버에 닿는다는 것만 증명하며, 분할 DNS 정책이 올바른 이름을 그리로 보낸다는 것까지는 아닙니다.
재연결은 대부분의 대체가 바로 그 지점에서 후퇴하므로, 노트북을 절전 상태로 두고 네트워크를 바꾼 뒤 오래된 경로를 남기지 않고 터널이 다시 서는지 확인하며 마지막에 검증하세요.
롤백, 폐기, 그리고 남기는 기록
롤백은 서비스를 되돌릴 뿐 보안을 되돌리지 않으며, 그 차이는 창이 열리기 전에 소리 내어 말해야 합니다. 새 경로가 실패하면 모두에게 PPTP를 다시 켜는 대신 두 번째 현대적 엔드포인트나 임시 게이트웨이로 사용자를 돌려보내세요. 옛 프로토콜에 비상 경로를 하나 남겨 두면 방금 문서화한 노출이 넓어집니다.
전환 후 PPTP로 인증한 계정을 폐기하고, 저장된 프로필이 만료되게 두고, 아무도 기억하지 못하는 재해 복구 사본까지 포함해 모든 엣지 장비에서 GRE 규칙이 사라졌음을 확인하세요.
짧은 기록으로 발견한 프로토콜, 각 리스너가 멈춘 날짜, 대체가 지원하는 클라이언트 버전, 결정을 다시 열 수 있는 소유자를 남기세요. 비밀번호 위생은 그 뒤로도 중요하지만, 그에 걸맞은 프로토콜 위의 위생으로서이며, 옛것을 살려 둘 근거로서는 아닙니다.