Portál AbcLinuxu, 30. dubna 2025 12:39

Debian Etch - OpenVPN klient/server

7.6.2007 23:22 | Přečteno: 16314× | Výběrový blog | poslední úprava: 8.6.2007 12:36

Konfigurace OpenVPN jako klient/server s certifikátem chráněným heslem.

Nejprve nainstalujeme potřebné balíčky.

apt-get install openvpn liblzo1 liblzo2-2

Certifikáty:

Zkopírujeme si skripty pro tvorbu certifikátů.

cp -R /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn

Nastavíme přístupová práva pouze pro roota.

chmod 0700 /etc/openvpn/easy-rsa

Nastavíme si proměnné pro vytváření certifikátů.

vim /etc/openvpn/easy-rsa/vars

export KEY_SIZE=2048
export KEY_COUNTRY=CZ
export KEY_PROVINCE="Czech Republic"
export KEY_CITY="City"
export KEY_ORG="OpenVPN-company"
export KEY_EMAIL="vpn@domain.com"

Aktivace proměnných.

cd /etc/openvpn/easy-rsa
. ./vars

Vymazání všech klíčů z adresáře ./keys.

./clean-all

Vytvoření certifikační autority.

./build-ca
Country Name (2 letter code) [CZ]:
State or Province Name (full name) [Czech Republic]:
Locality Name (eg, city) [City]:
Organization Name (eg, company) [OpenVPN-company]:
Organizational Unit Name (eg, section) []:company Team
Common Name (eg, your name or your server's hostname) []:domain.com
Email Address [vpn@domain.com]:

Vytvoření certifikátu a privátního klíče pro server.

./build-key-server server
Country Name (2 letter code) [CZ]:
State or Province Name (full name) [Czech Republic]:
Locality Name (eg, city) [City]:
Organization Name (eg, company) [OpenVPN-company]:
Organizational Unit Name (eg, section) []:company Team
Common Name (eg, your name or your server's hostname) []:domain.com
Email Address [vpn@domain.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Vytvoření klientského certifikátu chráněného heslem. Soubory client1.crt, client1.csr, client1.key, ca.crt z adresáře ./keys nakopírujeme bezpečnou formou do /etc/openvpn na klienta.

./build-key-pass client1
./build-key-pass client2
...
Enter PEM pass phrase: password
Verifying - Enter PEM pass phrase: again password

Country Name (2 letter code) [CZ]:
State or Province Name (full name) [Czech Republic]:
Locality Name (eg, city) [City]:
Organization Name (eg, company) [OpenVPN-company]:
Organizational Unit Name (eg, section) []:company Team
Common Name (eg, your name or your server's hostname) []:domain.com
Email Address [vpn@domain.com]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

Vytvoření Diffie Hellman parametrů.

./build-dh

Kopírování z ./keys do /etc/openvpn a nastavení přístupových práv pouze na roota. (na straně serveru)

cp /etc/openvpn/easy-rsa/keys/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn

chmod 600 /etc/openvpn/{ca.crt,server.crt,server.key,dh2048.pem} /etc/openvpn

Konfigurace pro server:

vim /etc/openvpn/vpn_server.conf
# server
mode server

# tls jako server
tls-server

# port, 1194 = default
port 1194

# protokol, tcp/udp
proto tcp-server

# nastavi zarizeni
dev tap0

# adresa serveru
ifconfig 10.0.1.100 255.255.255.0

# rozsah adres pro klienty
ifconfig-pool 10.0.1.1 10.0.1.20 255.255.255.0

# soucasne prihlaseni vice klientu
duplicate-cn

# certifikat certifikacni autority
ca /etc/openvpn/ca.crt

# certifikat serveru
cert /etc/openvpn/server.crt

# klic serveru
key /etc/openvpn/server.key

# parametry pro Diffie-Hellman protokol
dh /etc/openvpn/dh2048.pem

# logy serveru
log-append /var/log/openvpn.log

# status serveru
status /var/run/vpn.status 10

# uzivatel pod kterym bezi server
user nobody

# skupina pod kterou bezi server
group nogroup

# udrzuje spojeni nazivu, 10 (ping) a 120 (ping-restart)
keepalive 10 120

# komprese prenasenych dat
comp-lzo

# ukecanost serveru
verb 3

Konfigurace pro klienta:

vim /etc/openvpn/vpn_client.conf
# server ke kteremu se pripojujeme
remote domain.com

# tls jako klient
tls-client

# port, 1194 = default
port 1194

# protokol, tcp/udp
proto tcp-client

# nastaveni zarizeni
dev tap

# povoluje stazeni konfigurace ze severu
pull

# certifikat certifikacni autority
ca ca.crt

# certifikat klienta
cert client1.crt

# certifikat klienta
key client1.key

# uzivatel pod kterym bezi klient
user nobody

# skupina pod kterou bezi klient
group nogroup

# opakovani radku v logu
mute 10

# logy klienta
log-append /var/log/openvpn.log

# status klienta
status /var/run/vpn.status 10

# komprese prenasenych dat
comp-lzo

# ukecanost klienta
verb 3

Testování:

Spustíme daemony OpenVPN na serveru a na klientovi.

/etc/init.d/openvpn start

Takto by měl vypadat start na straně serveru.

Starting virtual private network daemon: vpn_server(OK).

Na straně klienta po zadání správného hesla.

Starting virtual private network daemon: vpn_clientEnter Private Key Password:
(OK).

Test spojení

ping 192.168.100.1
       

Hodnocení: 100 %

        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

8.6.2007 08:19 kajencik | skóre: 8 | blog: kajencik | Hradec Králové
Rozbalit Rozbalit vše Re: Debian Etch - OpenVPN klient/server
Odpovědět | Sbalit | Link | Blokovat | Admin
OpenVPN má jednu zajímavou vlastnost, která se projeví když chcete routovat sítě, zejména za klientem.... Není to tak přímočaré jak by se zdálo, už si to příliš nepamatuju, ale vyžaduje to nastavení v konfiguraci openvpn tak aby vědělo co má kam posílat. ip route add xxx.xxx.xxx.xxx/xx via tun0 ani nezkoušejte ;-)
8.6.2007 10:15 Knedla | skóre: 8 | Havířov
Rozbalit Rozbalit vše Re: Debian Etch - OpenVPN klient/server
já to dělám v konfiguraci serveru pomocí
push "route sit maska"
je to dobře popsané v tom ukázkovém konfiguráku
8.3.2008 16:22 dan | skóre: 9 | blog: paranoia | JO60WA
Rozbalit Rozbalit vše Re: Debian Etch - OpenVPN klient/server
Odpovědět | Sbalit | Link | Blokovat | Admin
V logu /var/log/openvpn.log na klientu se obevovala dve varovani
WARNING: you are using user/group/chroot without persist-key/persist-tun -- this may cause restarts to fail
WARNING: No server certificate verification method has been enabled.  See http://openvpn.net/howto.html#mitm for more info.
Podle navodu zde a zde, je resenim pridat do /etc/openvpn/vpn_client.conf na klientu tyto tri radky
persist-key
persist-tun
ns-cert-type server
Víra se nikdy nezrodí jako výsledek racionální argumentace
Dalibor Smolík avatar 23.5.2008 14:33 Dalibor Smolík | skóre: 54 | blog: Postrehy_ze_zivota | 50°5'31.93"N,14°19'35.51"E
Rozbalit Rozbalit vše Re: Debian Etch - OpenVPN klient/server
Odpovědět | Sbalit | Link | Blokovat | Admin
Podle tohoto návodu jsem úspěšně nainstaloval OpenVPN v Debianu (server i klient). Nyní jsem potřeboval klienta pro Windows. (OpenVPN 2.0.9). Nemá někdo funkční konfigurák? Mám k dispozici certifikáty client1.crt, ca.crt, client1.key, client1.csr a pro linuxového klienta to stačí. Ve vzorovém konfiguráku pro win je soubor cacert.pem, který k dispozici nemám a log při pokusu o připojení vyhazuje chybu. Musím totiž se občas připojit i z Windows, tak se omlouvám za tento nepatřičný dotaz :-). Díky
Rozdíly v řeči a ve zvyklostech neznamenají vůbec nic, budeme-li mít stejné cíle a otevřená srdce.
10.6.2009 08:50 nbmbnm
Rozbalit Rozbalit vše parametr dh
Odpovědět | Sbalit | Link | Blokovat | Admin

Koukam na to, ze v konfiguraci serveru se odkazuje parametrem dh na nejaky soubor *.pem. K cemu to tam je? Nemusi byt byt totez i v konfiguraci klienta?

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.