OpenVPN 은 TLS 위에서 동작하는 오픈소스 SSL VPN 이다. 라우팅(TUN) 또는 브리지(TAP) 구성으로 원격 접속(Road Warrior)과 사이트 간(Site-to-Site) 터널을 만들며, 인증서(PKI) · 사용자 이름/비밀번호 · 정적 키로 상대를 인증한다. UDP 하나로 NAT 와 방화벽을 넘기 쉽고 거의 모든 OS 에 클라이언트가 있다. GNU GPL 로 배포된다.
현재 커뮤니티 버전은 2.7.7 이다[1]. 2.7 에서 바뀐 것 중 설정에 직접 닿는 것은 다음이다[2].
| 항목 | 2.7 |
|---|---|
| 데이터 암호 | --data-ciphers 로 협상. --cipher 는 TLS 모드에서 무시된다 |
| 압축 | 송신 압축이 제거됐다. comp-lzo · compress 는 넣지 않는다 |
| 정적 키 모드 | --secret 기본 빌드에서 제거. TLS 모드만 쓴다 |
| DH | --dh none 이 기본. ECDH 를 쓴다 |
| 토폴로지 | 서버 기본이 subnet. net30 은 더 이상 기본이 아니다 |
| 제어 채널 보호 | tls-crypt(암호화) 를 tls-auth(서명만) 보다 권한다 |
같은 제품을 다른 자리에서 올리는 문서는 그쪽에 있다 — OPNsense OpenVPN · docker-compose. 다른 VPN 과의 비교와 개념은 VPN 에 있다.
net.ipv4.ip_forward=1 과 NAT(masquerade) — 클라이언트가 내부망 · 인터넷으로 나가려면 필요하다.| 파일 · 설정 | 역할 |
|---|---|
/etc/openvpn/server/server.conf |
서버 설정. EL 패키지는 openvpn-server@<이름>.service 가 이 디렉터리의 <이름>.conf 를 읽는다 |
ca.crt |
CA 인증서. 서버 · 모든 클라이언트가 같은 것을 가진다 |
server.crt · server.key |
서버 인증서와 키 |
client.crt · client.key |
클라이언트별 인증서와 키. .ovpn 에 인라인으로 넣는다 |
ta.key |
tls-crypt 정적 키. 제어 채널을 암호화해 포트 스캔 · DoS 를 막는다 |
crl.pem |
폐기 목록. 퇴사 · 분실 시 easyrsa revoke 뒤 갱신 |
ipp.txt · openvpn-status.log |
클라이언트 IP 고정 · 현재 접속 상태 |
최신 버전 2.7.7 — 2026-09-20 확인. https://openvpn.net/community-downloads/ · https://github.com/OpenVPN/openvpn/releases/latest ↩︎ ↩︎
OpenVPN Changes.rst (release/2.7) — 2026-09-20 확인. https://raw.githubusercontent.com/OpenVPN/openvpn/release/2.7/Changes.rst · Hardening guide https://openvpn.net/community-docs/hardening-openvpn-security.html ↩︎
Fedora Packages — openvpn: epel9 2.5.11, epel10 2.7.7. 2026-09-20 확인. https://packages.fedoraproject.org/pkgs/openvpn/openvpn/ ↩︎
Easy-RSA 최신 3.2.7 — 2026-09-20 확인. https://github.com/OpenVPN/easy-rsa/releases/latest ↩︎