Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
openvpn-install — 자신만의 OpenVPN 서버를 Debian, Ubuntu, Fedora, CentOS, Arch Linux 등에서 설정하세요 | Kitploit
도구/GitHubGitHub/angristan/openvpn-install
Encryption/Decryption ToolsScripting & AutomationNetwork SecurityPrivacy
GitHubangristan/openvpn-install

openvpn-install

자신만의 OpenVPN 서버를 Debian, Ubuntu, Fedora, CentOS, Arch Linux 등에서 설정하세요

저장소 보기
16.1k3.3k691개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
웹사이트

openvpn-install

Say Thanks!

Debian, Ubuntu, Fedora, openSUSE, CentOS, Amazon Linux, Arch Linux, Oracle Linux, Rocky Linux 및 AlmaLinux용 OpenVPN 설치 프로그램입니다.

이 스크립트를 사용하면 몇 초 만에 자신만의 안전한 VPN 서버를 설정하고 관리할 수 있습니다.

이게 무엇인가요?

이 스크립트는 VPS, 전용 서버, 또는 집에 있는 컴퓨터 등 자신의 서버에서 실행하도록 설계되었습니다.

설정이 완료되면 연결하려는 모든 기기에 대한 클라이언트 구성 파일을 생성할 수 있습니다.

각 클라이언트는 완전히 암호화된 상태로 서버를 통해 인터넷 트래픽을 라우팅할 수 있습니다.```mermaid graph LR A[Phone] -->|Encrypted| VPN B[Laptop] -->|Encrypted| VPN C[Computer] -->|Encrypted| VPN

VPN[OpenVPN Server]

VPN --> I[Internet]

## OpenVPN을 사용하는 이유?

이 스크립트가 생성될 당시 OpenVPN은 오픈소스 VPN의 사실상 표준이었습니다. WireGuard는 나중에 나왔으며 대부분의 사용 사례에서 더 간단하고 빠릅니다. [wireguard-install](https://github.com/angristan/wireguard-install)을 확인하세요.

그러나 OpenVPN은 다음과 같은 경우에 여전히 유효합니다:

- **TCP 지원**: UDP가 차단된 제한적인 환경(회사 네트워크, 공항, 호텔 등)에서 작동
- **비밀번호로 보호된 개인 키**: WireGuard 구성은 개인 키를 평문으로 저장
- **레거시 호환성**: 구형 시스템을 포함한 거의 모든 플랫폼에 클라이언트 존재

## Features

- 사용 가능한 OpenVPN 서버를 설치하고 구성합니다
- 자동화 및 스크립팅을 위한 CLI 인터페이스 (JSON 출력을 지원하는 비대화형 모드)
- 클라이언트 및 서버 인증서 갱신
- 연결된 클라이언트 목록 및 모니터링
- 인증서 폐기 시 즉시 클라이언트 연결 해제 (관리 인터페이스를 통해)
- 가능하면 최신 안정 릴리스를 위해 [공식 OpenVPN 저장소](https://community.openvpn.net/openvpn/wiki/OpenvpnSoftwareRepos) 사용
- 방화벽 규칙 및 포워딩을 원활하게 관리 (네이티브 firewalld 및 nftables 지원, iptables 폴백)
- VPN 서브넷 구성 가능 (IPv4: 기본 `10.8.0.0/24`, IPv6: 기본 `fd42:42:42:42::/112`)
- 터널 MTU 구성 가능 (기본값: `1500`)
- 필요한 경우 스크립트가 구성 및 방화벽 규칙을 포함한 OpenVPN을 깔끔하게 제거
- 암호화 설정 사용자 정의 가능, 향상된 기본 설정 (아래 [보안 및 암호화](#security-and-encryption) 참조)
- 가능한 경우 최신 OpenVPN 기능 사용 (아래 [보안 및 암호화](#security-and-encryption) 참조)
- 클라이언트에 푸시할 다양한 DNS 리졸버
- Unbound를 사용한 자체 호스팅 리졸버 선택 가능 (기존 Unbound 설치 지원)
- TCP와 UDP 중 선택
- 유연한 IPv4/IPv6 지원:
  - IPv4 또는 IPv6 서버 엔드포인트 (클라이언트 연결 방식)
  - IPv4 전용, IPv6 전용 또는 듀얼 스택 클라이언트 (VPN 주소 지정 및 인터넷 액세스)
  - 모든 조합 지원: 4→4, 4→4/6, 4→6, 6→4, 6→6, 6→4/6
  - 자동 누출 방지: 단일 스택 모드에서 원하지 않는 프로토콜 차단
- 권한 없는 모드: `nobody`/`nogroup`으로 실행
- Windows 10에서 DNS 누출 차단
- 무작위 서버 인증서 이름
- 비밀번호로 클라이언트 보호 선택 가능 (개인 키 암호화)
- 여러 장치가 동시에 동일한 클라이언트 프로필을 사용할 수 있는 옵션 (고정 IP 주소 비활성화)
- **피어 지문 인증** (OpenVPN 2.6+): CA 없이 간소화된 WireGuard 스타일 인증
- 기타 여러 작은 기능들!

## Compatibility

이 스크립트는 다음 Linux 배포판을 지원합니다:

|                     | 지원 |
| ------------------- | ------- |
| AlmaLinux >= 8      | ✅ 🤖   |
| Amazon Linux 2023   | ✅ 🤖   |
| Arch Linux          | ✅ 🤖   |
| CentOS Stream >= 8  | ✅ 🤖   |
| Debian >= 11        | ✅ 🤖   |
| Fedora >= 40        | ✅ 🤖   |
| openSUSE Leap >= 16 | ✅ 🤖   |
| openSUSE Tumbleweed | ✅ 🤖   |
| Oracle Linux >= 8   | ✅ 🤖   |
| Rocky Linux >= 8    | ✅ 🤖   |
| Ubuntu >= 18.04     | ✅ 🤖   |

참고 사항:

- 스크립트는 🤖로 표시된 배포판에서만 정기적으로 테스트됩니다.
  - `amd64` 아키텍처에서만 테스트되었습니다.
- 스크립트는 `systemd`를 필요로 합니다.

### Recommended providers

- [Vultr](https://umami.stanislas.cloud/q/1HH9Thp8i): 전 세계 위치, IPv6 지원, 월 \$2.5부터
- [Hetzner](https://umami.stanislas.cloud/q/HdzaOJWq7): 전 세계 위치, IPv6, 20TB 트래픽, 월 €3.59부터
- [Digital Ocean](https://umami.stanislas.cloud/q/sEVh1l79B): 전 세계 위치, IPv6 지원, 월 \$4부터

## Usage

먼저 서버에서 스크립트를 다운로드하고 실행 가능하게 만드세요:```bash
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
chmod +x openvpn-install.sh

스크립트를 루트로 실행하고 TUN 모듈이 활성화되어 있어야 합니다.

대화형 모드

시작하는 가장 쉬운 방법은 대화형 메뉴입니다:```bash ./openvpn-install.sh interactive

이 가이드는 설치 및 클라이언트 관리를 안내합니다.

홈 디렉토리에는 `.ovpn` 파일이 있습니다. 이 파일들은 클라이언트 구성 파일입니다. 서버에서 (예: `scp`를 사용하여) 다운로드한 후 선호하는 OpenVPN 클라이언트를 사용하여 연결하세요.

질문이 있으시면 먼저 [FAQ](#faq)를 확인하세요. 도움이 필요하면 [토론](https://github.com/angristan/openvpn-install/discussions)을 열 수 있습니다. 기존 이슈 및 토론을 먼저 검색해 주세요.

### CLI 모드

> [!WARNING]
> API 호환성은 보장되지 않습니다. 버전 간에 호환되지 않는 변경이 발생할 수 있습니다. 이 스크립트를 프로그래밍 방식(예: 자동화 또는 CI/CD)으로 사용하는 경우 master 브랜치 대신 특정 커밋에 고정하세요.

자동화 및 스크립팅을 위해 CLI 인터페이스를 사용하세요:```bash
# Install with defaults
./openvpn-install.sh install

# Add a client
./openvpn-install.sh client add alice

# List clients
./openvpn-install.sh client list

# Revoke a client (immediately disconnects if connected)
./openvpn-install.sh client revoke alice

명령어```text

openvpn-install [options]

Commands: install Install and configure OpenVPN server uninstall Remove OpenVPN server client Manage client certificates server Server management interactive Launch interactive menu

Global Options: --verbose Show detailed output --log Log file path (default: openvpn-install.log) --no-log Disable file logging --no-color Disable colored output -h, --help Show help

Run `./openvpn-install.sh <command> --help`를 실행하여 명령별 옵션을 확인하세요.

#### 클라이언트 관리```bash
# Add a new client
./openvpn-install.sh client add alice

# Add a password-protected client
./openvpn-install.sh client add bob --password

# Revoke a client
./openvpn-install.sh client revoke alice

# Renew a client certificate
./openvpn-install.sh client renew bob --cert-days 365

모든 클라이언트 나열:```text $ ./openvpn-install.sh client list ══ Client Certificates ══ [INFO] Found 3 client certificate(s)

Name Status Expiry Remaining


alice Valid 2035-01-15 3650 days bob Valid 2035-01-15 3650 days charlie Revoked 2035-01-15 unknown

스크립팅을 위한 JSON 출력:```text
$ ./openvpn-install.sh client list --format json | jq
{
  "clients": [
    {
      "name": "alice",
      "status": "valid",
      "expiry": "2035-01-15",
      "days_remaining": 3650
    },
    {
      "name": "bob",
      "status": "valid",
      "expiry": "2035-01-15",
      "days_remaining": 3650
    },
    {
      "name": "charlie",
      "status": "revoked",
      "expiry": "2035-01-15",
      "days_remaining": null
    }
  ]
}

서버 관리```bash

Renew server certificate

./openvpn-install.sh server renew

Uninstall OpenVPN

./openvpn-install.sh uninstall

연결된 클라이언트 표시 (데이터는 60초마다 새로고침됩니다):```text
$ ./openvpn-install.sh server status
══ Connected Clients ══
[INFO] Found 2 connected client(s)

   Name    Real Address          VPN IP      Connected Since   Transfer
   ----    ------------          ------      ---------------   --------
   alice   203.0.113.45:52341    10.8.0.2    2025-01-15 14:32  ↓1.2M ↑500K
   bob     198.51.100.22:41892   10.8.0.3    2025-01-15 09:15  ↓800K ↑200K

[INFO] Note: Data refreshes every 60 seconds.

설치 옵션

install 명령어는 다양한 사용자 지정 옵션을 지원합니다:```bash

Custom port and protocol

./openvpn-install.sh install --port 443 --protocol tcp

Custom DNS provider

./openvpn-install.sh install --dns quad9

Custom encryption settings

./openvpn-install.sh install --cipher AES-256-GCM --cert-type rsa --rsa-bits 4096

Custom VPN subnet

./openvpn-install.sh install --subnet-ipv4 10.9.0.0

Enable dual-stack (IPv4 + IPv6) for clients

./openvpn-install.sh install --client-ipv4 --client-ipv6

IPv6-only clients (no IPv4)

./openvpn-install.sh install --no-client-ipv4 --client-ipv6

IPv6 endpoint (server listens on IPv6, clients connect via IPv6)

./openvpn-install.sh install --endpoint-type 6 --endpoint 2001:db8::1

Custom IPv6 subnet for dual-stack setup

./openvpn-install.sh install --client-ipv6 --subnet-ipv6 fd00🔢5678::

Skip initial client creation

./openvpn-install.sh install --no-client

Full example with multiple options

./openvpn-install.sh install
--port 443
--protocol tcp
--dns cloudflare
--cipher AES-256-GCM
--client mydevice
--client-cert-days 365

**네트워크 옵션:**
도구 다운로드