gavika.openvpn
gavika.openvpn
Zainstaluj i skonfiguruj OpenVPN. Zbuduj i zarządzaj własnym serwerem OpenVPN.
https://www.techchorus.net/blog/run-your-own-openvpn-server/
Zobacz także katalog examples
.
Wymagania
Rola powinna być używana razem z gavika.easy_rsa
.
Zmienne roli
Zmienna | Wartość domyślna | Opis | Wymagana? |
---|---|---|---|
easy_rsa_local_pool_directory | /tmp/ca_openvpn_pool | Katalog do tymczasowego przechowywania żądań certyfikatów, certyfikatów itp. | Tak |
openvpn_client_users | [] | Lista nazw użytkowników klientów OpenVPN. Zaleca się używanie tylko znaków alfanumerycznych. | Nie |
openvpn_port | 1194 | Port, na którym działa serwer OpenVPN | Tak |
openvpn_protocol | Domyślnie: udp Wybory: tcp lub udp | Protokół sieciowy do użycia | Tak |
openvpn_server_ip_address | Adres IP serwera OpenVPN | Wartość używana w generowanych certyfikatach klientów | Tak |
openvpn_generated_configurations_local_pool | false. Boolean. | Czy skopiować wygenerowane konfiguracje klientów do lokalnego katalogu (na maszyny kontrolnej, na której jest uruchamiane ansible-playbook). | Tak |
openvpn_route_all_traffic | True. Boolean. | Kieruj cały ruch internetowy przez serwer OpenVPN | Tak |
openvpn_use_opendns_public_dns | True. Boolean. | Przekaż serwery DNS OpenDNS klientom | Tak |
openvpn_additional_configs | [] | Dodatkowa konfiguracja serwera OpenVPN. Lista słowników. Każdy element listy to para klucz, wartość. Przykład openvpn_additional_configs: - push: "topology subnet" - push: "route 192.168.4.5 255.255.255.255" |
Tak |
openvpn_default_firewalld_zone | public | Nazwa strefy do użycia w konfiguracji Firewalld. Dotyczy tylko EL | Tak |
Aby zbudować serwer CA i serwer OpenVPN, korzystając z gavika.easy_rsa
i
gavika.openvpn
, musisz wykonać role kilka razy w zależności od swoich potrzeb. Jesteś odpowiedzialny za wykonanie ról wymaganą liczbę razy i w wymaganej kolejności. Przykłady są dostępne w dokumentacji. Zwykle będziesz musiał wykonać open-vpn-playbook.yml
dwa razy i easy-rsa-playbook.yml
raz.
Przepływ wykonania playbooka:
Pełny rozmiar diagramu
Oto przykład wykonywania playbooków:
# openvpn: konfiguracja lokalnych katalogów, instalacja openvpn, utworzenie żądania serwera,
# utworzenie żądań klientów
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
# easy_rsa: zbudowanie serwera CA, importowanie i podpisanie żądań, pobranie certyfikatów CA
ansible-playbook -i my-inventory.yml easy-rsa-playbook.yml
# openvpn: użycie podpisanych żądań, konfiguracja openvpn, generowanie konfiguracji klientów
ansible-playbook -i my-inventory.yml openvpn-playbook.yml
Zależności
Rola gavika.openvpn
zależy od gavika.easy_rsa
.
Wymagane są następujące kolekcje:
community.aws
Wymagana jest biblioteka Pythona boto3
.
Rola gavika.openvpn
powinna być używana razem z gavika.easy_rsa
.
Przykładowy playbook do skonfigurowania serwera CA: easy-rsa-playbook.yml
---
- hosts: ca_server
become: true
vars:
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Bangalore"
easy_rsa_req_org: "Gavika"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "Gavika"
easy_rsa_local_pool_directory: /tmp/ca_openvpn_pool # Bez ukośnika na końcu /
easy_rsa_server_request_to_import: "server.req"
easy_rsa_ca_server_mode: true
roles:
- role: gavika.easy_rsa
Przykładowy playbook do instalacji serwera OpenVPN: openvpn-playbook.yml
---
- hosts: openvpn_server
become: true
vars:
openvpn_client_users:
- janedoe
- johndoe
easy_rsa_req_country: "IN"
easy_rsa_req_province: "KA"
easy_rsa_req_city: "Bangalore"
easy_rsa_req_org: "Moja Organizacja"
easy_rsa_req_email: "[email protected]"
easy_rsa_req_ou: "Jednostka Organizacyjna"
roles:
- role: gavika.easy_rsa
- role: gavika.openvpn
Przykładowa inwentarz: my-inventory
:
all:
hosts:
placeholder
children:
ca_server:
hosts:
dev-ca-01.example.com:
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.5
easy_rsa_ca_server_mode: true
ansible_python_interpreter: /usr/bin/python3
openvpn_server:
hosts:
dev-vpn-01.example.com:
ansible_python_interpreter: /usr/bin/python3
ansible_become: true
ansible_user: ubuntu
ansible_host: 192.168.3.6
openvpn_server_ip_address: 192.168.3.6
Licencja
Licencja Apache, Wersja 2.0
Informacje o autorze
Sudheera Satyanarayana
Gavika: https://www.gavika.com
Twitter: https://www.twitter.com/bngsudheer
Github: https://github.com/bngsudheer
Role to install and configure OpenVPN server and generate client configurations
ansible-galaxy install gavika.openvpn