Portál AbcLinuxu, 25. dubna 2024 01:52

Jak na OpenVPN server?

12.4.2007 02:42 | Přečteno: 8236× | Linux | Výběrový blog

Nedávno jsem si koupil notebooka, s tím vznikly další požadavky na domácí server. Potřebuji zajistit abych mohl v bezdrátových sítích (běžně velmi špatně zabezpečených) bez problémů pracovat, bez obav o zneužití svých dat, zároveň potřebuji používat jiné služby na sítích kde je dovolen například jen web.

Bylo mi jasné že mé požadavky může splnit VPN, pustil jsem se tedy do instalování, ale jako každý jsem se potýkal s nějakými problémy, ve stručnosti bych sem tedy rád napsal jak vytvořit VPN server (bridgovaný) pomocí programu OpenVPN.

Důležité je mít modul tun, nebo podporu přímo v jádře.

Další postup je relativně snadný, popíšu postup na Debianu a Ubuntu 7.04, v první části není třeba editovat žádné soubory.

apt-get install openvpn liblzo1
mkdir -p /etc/openvpn/easy-rsa
cp -ax /usr/share/doc/openvpn/examples/easy-rsa/2.0/. /etc/openvpn/easy-rsa/
cd /etc/openvpn/easy-rsa/
source ./vars
./clean-all
./build-dh
./pkitool --initca
./pkitool --server server 
./pkitool klient

Vytvoříme soubor bridge.sh a vpn.conf

touch /etc/openvpn/bridge.sh
touch /etc/openvpn/vpn.conf
chmod 755 /etc/openvpn/bridge.sh
Vytvořený soubor bridge.sh upravíme tak aby vypadal takto:
#!/bin/bash

start_bridge () {
    openvpn --mktun --dev tap0
    ifconfig tap0 0.0.0.0 up
    brctl addif br0 tap0
}
stop_bridge () {
    brctl delif br0 tap0
    openvpn --rmtun --dev tap0
}

case "$1" in
    start)
        echo -n "Starting Bridge"
        start_bridge
        ;;
    stop)
        echo -n "Stopping Bridge"
        stop_bridge
        ;;
    restart)
        stop_bridge
        sleep 2
        start_bridge
        ;;
    *)
        echo "Usage: $0 {start|stop|restart}" >&2
        exit 1
        ;;
esac
Tento soubor slouží pro přidání a odebrání zařízení tap0 z bridge, v PC už jeden bridge mám, takže nenahazuji bridge rozhraní a ani mu nepřiděluji žádnou adresu. Část mého souboru /etc/network/interfaces která obsahuje nastavení bridge vypadá takto (atheros musí být v režimu master!!!):
auto br0
iface br0 inet static
    address 10.13.89.250
    netmask 255.255.255.192
    broadcast 10.13.89.255
    gateway 10.13.89.193
    bridge_ports eth0 ath0
    pre-up /etc/network/ath0
Upravíme soubor vpn.conf, tak aby v mém případě vypadal takto:
# Which local IP address should OpenVPN listen on? (optional)
local 10.13.89.250
port 81
proto tcp
dev tap0
push "dhcp-option DNS 10.13.88.2"

dh dh1024.pem
ca ca.crt
cert server.crt
key server.key
ifconfig-pool-persist ipp.txt

# ensure the range of ip addresses you use in the last  two arguments
# of this statement are not in use by  either the DHCP server or any other
# device on your  internal network.
server-bridge 10.13.89.250 255.255.255.192 10.13.89.251 10.13.89.253

#needed to allow communication to internal network
client-to-client
keepalive 10 120
push "route 0.0.0.0 0.0.0.0"
#push "redirect-gateway"
comp-lzo
max-clients 5
persist-key
persist-tun
verb 3

# Uncomment this directive if multiple clients
# might connect with the same certificate/key
# files or common names.  This is recommended
# only for testing purposes.  For production use,
# each client should have its own certificate/key
# pair.
#
# IF YOU HAVE NOT GENERATED INDIVIDUAL
# CERTIFICATE/KEY PAIRS FOR EACH CLIENT,
# EACH HAVING ITS OWN UNIQUE "COMMON NAME",
# UNCOMMENT THIS LINE OUT.
;duplicate-cn
Teď už jen nakopírujeme vygenerované klíče do adresáře /etc/openvpn (ca.crt, ca.key, dh1024.pem, server.crt, server.csr, server.key) a na klientskou stanici (ca.crt, klient.crt, klient.key, klient.csr), kde nezapomeneme správně nastavit práva (hlavně uživatele).

Poslední důležité nastavení na serveru je správně spouštět soubor bridge.sh, zeditujeme tedy soubor /etc/init.d/openvpn, tak aby na začátků procedury start_vpn () byl spouštěn příkaz "/etc/openvpn/bridge.sh start" a na konci procedury stop_vpn () byl spouštěn příkaz "/etc/openvpn/bridge.sh stop"

Pokud jste tedy vše udělali správně tak můžete spustit openvpn server.

U klienta je nastavení ještě jednodušší

sudo su
apt-get install openvpn network-manager-openvpn
V network manageru by se měla objevit nová položka "VPN Connections", zde naklikáme naše VPN spojení. V mém případě jsem změnil tato nastavení:
Gateway Address 10.13.89.250
Gateway Port 81
Typ připojení X.509 certifikáty
Zadal jsem správné cesty k certifikátům
Kompresi LZO jsem zaškrtnul
Použít TAB zařízení jsem zaškrtnul
Použít TCP spojení jsem zaškrtnul
Toť vše, teď by mělo VPN spojení po jeho zapnutí na klientovi fungovat.

       

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ář

Max avatar 12.4.2007 07:19 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
Odpovědět | Sbalit | Link | Blokovat | Admin
Jojo, také jsem se s tímto před nějakým časem potýkal. Ale jelikož je na netu opravdu hodně návodů a pěkných, tak to byla otázka půlhodinky (hledání + samotná instalace a konfigurace). teď, když člověk ví, jak na to, tak je to brnkačka :)
Zdar Max
Měl jsem sen ... :(
12.4.2007 11:04 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
Mě dělalo problém hlavně vygenerovat klíče pro uživatele a potom vůbec rozchodit ten režim bridge pro VPN :)
Max avatar 12.4.2007 18:00 Max | skóre: 72 | blog: Max_Devaine
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
Viz níže, taky nevím, proč bridge :-/. Není to zbytečná věc? Když máš dobře nastaveno routování, tak ti pojede všechno, včetně komunikace mezi samotnýma vpn klientama ...
Zdar Max
PS: taky jsem pořádně nevěděl, jak na ty klíče, ale google vyhodil jasný a stručný návod, tak bylo hned vymalováno :)
Měl jsem sen ... :(
multi avatar 12.4.2007 11:03 multi | skóre: 38 | blog: JaNejsemOdsut
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
Odpovědět | Sbalit | Link | Blokovat | Admin
SUT-prezentace
Fitness ajťák: kutilův web; bezdrátová čidla teploty vývoj softwaru linux server
12.4.2007 16:35 milos
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
Odpovědět | Sbalit | Link | Blokovat | Admin
K čemu bridge? já mám něco podobného domu, mám tedy jiný rozsah adres přes vpn, ale jenom si přidám routy a jedu, jako bych seděl doma..

Mě to nějakou výhodu bridgovat?
12.4.2007 18:34 Thunder.m | skóre: 35 | blog: e17
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
No abych řekl pravdu, tak to předělávám na nebridgované vpn :) Chtěl jsem ušetřit rozsah a zároveň zjednodušit routy, protože používám dynamické routování a na tomhle serveru ho kvuli openvpn nechci mít.
12.4.2007 18:36 milos
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
taky jsem se všiml, že máte přenost přes TCP, lepší je UDP.
13.4.2007 09:26 melkors | skóre: 13 | blog: kdo_chce_kam
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
S UDP mam, prirodazel, spatne zkusenosti. Obcas se najde umelec, ktery zakaze routovani UDP, a pak je vymalovano. Tyka se predevsim malych ISP, typicky WiFi.
13.4.2007 21:59 milos
Rozbalit Rozbalit vše Re: Jak na OpenVPN server?
to je fakt, ale nic to neměni na faktu, že UDP je pro VPN lepši něž TCP.

Založit nové vláknoNahoru

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