Portál AbcLinuxu, 1. května 2025 05:52
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.shVytvoř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 ;; esacTento 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/ath0Upraví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-cnTeď 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-openvpnV 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škrtnulToť vše, teď by mělo VPN spojení po jeho zapnutí na klientovi fungovat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.